Add description formulas reference

This commit is contained in:
2026-03-31 09:18:40 -05:00
parent 05a551018d
commit 74bb4497ab
@@ -0,0 +1,264 @@
# MPM Description Assembly Formulas
These formulas define exactly how to construct each output field from the decoded model components.
They replicate the logic in the MPM_Display_Model_Bible.xlsx spreadsheet and Display-Description-Builder-Skill.md.
---
## Required Inputs
Before assembling any description, you need these values (decoded from the model number or provided by the user):
| Field | Source |
|-------|--------|
| `ModelNumber` | The raw model code (e.g., M24, MR27vs, M29sw-Dual) |
| `Family` | M, MR, MLP, IX, EX, EXD, I, LM, LC |
| `Size` | Screen diagonal in inches for LCD; mm ratio (e.g., 960x480) for LM/LC |
| `Aspect` | Aspect ratio string (e.g., 16:9, 9:16, 32:9, 48:9) |
| `Resolution` | e.g., 1920x1080, 1080x1920, 1920x540 |
| `Controller` | MP185, MP190, MP200, MP210, SDI, USB, etc. |
| `Generation` | Integer (e.g., 5) |
| `PanelText` | Looked up from panel-descriptions.md by [Family + Resolution] |
| `PanelPurchase` | Short purchase line from panel-descriptions.md |
| `ControllerText` | Looked up from controller-descriptions.md by [Controller] |
---
## 0. Family Pattern Rules
These values are looked up by Family Code and used across all output formulas.
**Source of truth:** MPM-Display-Description-Pattern-Template.xlsx (Pattern Rules sheet)
| Family | Prefix1 | Model Type | Family Display Text | Warranty Text |
|--------|---------|-----------|---------------------|---------------|
| M | MP.TV Ruggedized | Bus | Display with | Includes Standard One Year Parts and Labor Depot Warranty |
| MR | MP.TV Ruggedized | Rail | Certified Display with | Includes Standard One Year Parts and Labor Depot Warranty |
| MLP | MP.TV Ruggedized | Bus | Display with | Includes Standard One Year Parts and Labor Depot Warranty |
| I | MP.TV | Indoor | Display with | Includes Standard One Year Parts and Labor Depot Warranty |
| IX | MP.TV Ruggedized | Indoor | Commercial Display with | Includes Standard One Year Parts and Labor Depot Warranty |
| E | MP.TV Commercial | (omit) | Semi-Outdoor Display with | Includes Standard One Year Parts and Labor Component Warranty |
| EX | MP.TV Ruggedized | (omit) | Outdoor Display with | Includes Standard One Year Parts and Labor Component Warranty |
| EXD | MP.TV Design Series | (omit) | Specialty Outdoor Display with | Includes Standard One Year Parts and Labor Component Warranty |
| LM | MP.TV Modular LED | LED | Modular Display with | Includes Standard One Year Parts and Labor Depot Warranty |
| LC | MP.TV LED Cabinet | LED | Cabinet Display with | Includes Standard One Year Parts and Labor Component Warranty |
**Intelligence** = "Intelligent" if Controller starts with "MP"; "Secondary" if Controller is SDI, USB, or any non-MP controller.
> **Note on E/EX/EXD:** The Family Display Text for these families already implies the environment, so the Model Type token is omitted (marked "(omit)") to avoid redundancy.
---
## 1. Part Number
```
"MPTV-" + ModelFix + "-G" + Generation
```
Where `ModelFix` = ModelNumber with "-Dual" replaced by "d"
(e.g., M24-Dual → MPTV-M24d-G1, M24 → MPTV-M24-G5)
---
## 2. Display Description (Full Marketing Text)
### Standard (M, MR, MLP, I, IX, LM, LC):
```
ModelNumber + " - " + Prefix1 + " " + Intelligence + " " + ModelType + " " + FamilyDisplayText + " " + Size + " Inch " + PanelText + ". " + ControllerText + WarrantyText
```
### For E, EX, EXD (ModelType omitted):
```
ModelNumber + " - " + Prefix1 + " " + Intelligence + " " + FamilyDisplayText + " " + Size + " Inch " + PanelText + ". " + ControllerText + WarrantyText
```
**Examples:**
M family (M24 / MP190 / Gen 5):
> M24 - MP.TV Ruggedized Intelligent Bus Display with 24 Inch Vehicle Rated FHD (1920x1080) 16:9 LCD Display Panel with 500 NIT High Brightness LED Backlight, Automatic Brightness Control Sensor, Integrated 3mm Anti-Reflective Safety Glass for IK7 Rated Impact Protection. Embedded MP190 Controller with 1.8Ghz 64 Bit Hexa Core ARM Big/Little Architecture CPU 2xA72 and 4xA53 Cores, T-864 Dedicated GPU, 2 GB RAM, 16 GB Content Cache (Expandable to 128 GB via SD Card), 802.11 b/g/n/ac Wifi, Gigabit Ethernet, USB 3.0, GPIO, LVDS & HDMI Output Up to 4K UHD, Supports MP-TV OS 7. Includes Standard One Year Parts and Labor Depot Warranty
MR family (MR29sws / SDI / Gen 1):
> MR29sws - MP.TV Ruggedized Secondary Rail Certified Display with 29 Inch Rail Rated Display Super-Wide 32:9 (1920x540) hHD LCD Panel with 700 NIT High Brightness LED Backlight, Automatic Brightness Control Sensor, Integrated 3+3mm Laminated Anti-Reflective Safety Glass for IK10 Rated Impact Protection. Embedded Dual Port SDI Controller with One SDI Input and one SDI Loop Output. SDI Cabling allows for latency free HDMI class performance over BNC Coax Cabling suitable for vehicle use and can be daisy-chained up to 128 displays from one primary controller. Includes Standard One Year Parts and Labor Depot Warranty
IX family (IX55 / MP205 / Gen 2):
> IX55 - MP.TV Ruggedized Intelligent Indoor Commercial Display with 55 Inch [PanelText]. [ControllerText]. Includes Standard One Year Parts and Labor Depot Warranty
EX family (EX49 / MP210 / Gen 3):
> EX49 - MP.TV Ruggedized Intelligent Outdoor Display with 49 Inch [PanelText]. [ControllerText]. Includes Standard One Year Parts and Labor Component Warranty
I family (I43 / MP200 / Gen 1):
> I43 - MP.TV Intelligent Indoor Display with 43 Inch [PanelText]. [ControllerText]. Includes Standard One Year Parts and Labor Depot Warranty
---
## 3. Purchase Description (Short Line for Procurement/PO)
```
ModelNumber + " - " + Size + " Inch " + DisplayType + " Display - " + Aspect + " @ " + Resolution + " Resolution - With " + Controller + ChipsetSuffix + " Controller - HS Code: " + HSCode + " - Display Details: " + PanelPurchase
```
Where:
- `DisplayType` by Family:
- M → "Bus LCD"
- MR → "Rail LCD"
- MLP → "Bus E-Ink"
- I → "Indoor LCD"
- IX → "Indoor Commercial LCD"
- E → "Semi-Outdoor LCD"
- EX → "Outdoor LCD"
- EXD → "Outdoor Specialty LCD"
- LM → "LED Modular"
- LC → "LED Cabinet"
- `ChipsetSuffix` = " RK3566" for MP185, " RK3399" for MP190, " RK3568" for MP200, " RK3588" for MP210, "" for all others
- `HSCode`:
- If Controller starts with "MP": **8471.41.0150**
- If Controller is SDI or USB:
- Size < 30": **8528.72.7220**
- Size 30-34": **8528.72.7230**
- Size 35-44": **8528.72.7240**
- Size 45"+: **8528.72.7260**
**Example (M24 / MP190 / Gen 5):**
> M24 - 24 Inch Bus LCD Display - 16:9 @ 1920x1080 Resolution - With MP190 RK3399 Controller - HS Code: 8471.41.0150 - Display Details: 500+ NIT - 3mm AR Glass
**Example (MR29sws / SDI / Gen 1, 29"):**
> MR29sws - 29 Inch Rail LCD Display - 32:9 @ 1920x540 Resolution - With SDI Controller - HS Code: 8528.72.7220 - Display Details: 700+ NIT - 3+3mm Laminated AR/AG Glass
---
## 4. KB Article -- HTML Output for Odoo
The KB article must be generated as **clean HTML suitable for pasting into Odoo's WYSIWYG editor**.
Rules:
- Use `<h2>` for the top title, `<h3>` for section headers
- Use `<table>`, `<thead>`, `<tbody>`, `<tr>`, `<td>`, `<th>` for all tables
- Use `<ul>`, `<li>` for bullet lists
- Use `<p>` for paragraphs, `<strong>` for bold, `<em>` for italics
- **Do NOT include `<html>`, `<head>`, `<body>`, or `<DOCTYPE>` tags**
- Placeholder text for images and links uses `<em>[instruction]</em>` in italics
- **Always use HTML entities for special characters -- never paste raw Unicode characters:**
- Em dash → `&mdash;` (NOT the literal — character)
- En dash → `&ndash;` (NOT the literal -- character)
- Ampersand → `&amp;`
- Non-breaking space → `&nbsp;`
- Degree sign → `&deg;` (NOT °)
- Multiplication sign → `&times;`
- Smart/curly quotes → `&ldquo;` `&rdquo;` `&lsquo;` `&rsquo;`
- This prevents garbled characters (e.g., â€") when Odoo reads the HTML
The master template is in `assets/KB-Article-Template.html`. Follow it section by section.
### Section-by-Section Fill Guide
**Title & Header line:**
```html
<h2>MPTV-[ModelFix] -- [Size]" [Intelligence] [ModelType] Display</h2>
<p><em>Part Number: MPTV-[ModelFix]-G[Generation]</em> &nbsp;|&nbsp; <em>Model Family: [Family]</em> &nbsp;|&nbsp; <em>Category: [CategoryFull]</em></p>
```
Where `CategoryFull`:
- M → "Mobile Bus"
- MR → "Mobile Rail -- Rail Certified"
- MLP → "Mobile Low Power"
- IX → "Indoor Extreme"
- I → "Indoor Standard"
- E → "Semi-Outdoor / External"
- EX → "Outdoor Extreme"
- EXD → "Outdoor Designer"
- LM → "LED Modular"
- LC → "LED Cabinet"
**Display Image:** Leave the placeholder comment as-is.
**Display Description:** Insert full text from Formula #2 verbatim in a `<p>` tag.
**Controller Specifications table:** Populate from the structured specs table in `controller-descriptions.md` for the matching controller code. For SDI/USB secondary displays, all N/A fields still appear in the table.
**Display Panel Specifications table:** Populate from:
- Screen Size, Resolution, Aspect Ratio, Orientation, Panel Technology: decoded from model
- Brightness, Brightness Control, Cover Glass, Impact Rating: from `panel-descriptions.md`
- Operating Temp Range: from Model Bible if available, otherwise `[To be confirmed]`
- Max Power Draw: from Model Bible if available, otherwise `[To be confirmed]`
Orientation: Landscape if resolution width > height, Portrait if height > width.
Panel Technology: LCD for M/MR/IX/EX/E/I families; E-Paper for MLP; LED for LM/LC.
Brightness Control: "Automatic Brightness Sensor" for M/MR/EX/E families; "N/A" for IX/I.
**Physical Dimensions table:** Populate from Model Bible data if available; otherwise use `[To be confirmed]` for all cells.
**Deployment Type & Installation Notes:**
- M → "Mobile -- Bus"
- MR → "Mobile -- Rail (Streetcar / Train / Subway)"
- MLP → "Mobile -- Low Power / E-Paper"
- IX → "Indoor -- Extreme / Commercial"
- I → "Indoor -- Standard"
- E → "Semi-Outdoor -- External (requires overhead cover)"
- EX → "Outdoor -- Extreme"
- EXD → "Outdoor -- Designer / Custom"
- LM → "Outdoor -- LED Modular"
- LC → "Outdoor -- LED Cabinet"
Include 2-3 model-specific installation notes based on known deployment context. If unknown, use `[To be confirmed]`.
**Connectivity & Integration:** Populate based on controller type:
- MP controllers: Primary = Gigabit Ethernet, Secondary = WiFi; Protocol = MP-TV OS CMS push; Remote = MP-TV OS OTA/Dashboard
- SDI: Primary = SDI BNC Coax daisy-chain (up to 128 displays); Protocol = SDI chain from primary intelligent display. Note: No independent connectivity -- requires primary MP-controller display.
- USB: Primary = USB 3.0 to primary ELP display; Protocol = Mirrored output.
ITxPT, Cellular/LTE: Use `[To be confirmed]` unless known.
**Logical Component Block Diagram:** Leave placeholder as-is. Note: diagram to be created separately using Excalidraw or Draw.io.
**Shop Diagram:** Leave placeholder link as-is. Note: link to be added when shop drawing is available.
**Current Generation:** Fill in the generation number. For key changes, use `[To be confirmed -- provide generation history to populate]` if the user hasn't provided change notes.
**Generation Change Log:** Start with G1 row = "Initial release". Fill subsequent rows only if generation history is known; otherwise leave as a single row.
**Warranty & Support:** Use standard text verbatim from template. Leave RMA link as `[LINK]`.
**Compliance & Certifications:**
- HS Code: populate from Formula #3 logic
- Environmental:
- EX/EXD: "IP54 minimum" (confirm actual rating)
- M/MR: "Vehicle rated"
- E: "IP54 (requires overhead cover)"
- IX/I: "N/A (indoor use)"
- LM/LC: "IP65 modules (confirm cabinet rating)"
- Transit Certifications: For MR (rail) = "EN 50155, EN 45545-2 (fire/smoke)". For M (bus) = confirm. Others = `[To be confirmed]`
- Safety/EMC and ADA: `[To be confirmed]` unless known.
**Ordering & Stock Information table:** Populate from Model Bible:
- Part Number: from Formula #1
- Factory: from Model Bible (e.g., HMX)
- Stock Status: decode the code -- CS=Current Stock, SO=Special Order, RP=Regular Production, PR=Pre-Release
- Lead Time: `[Contact sales]` unless known
**Related Items:** List sibling models (e.g., the SDI secondary variant, portrait variant, dual variant, larger size in same family). Use `[LINK]` placeholders -- Odoo links will be added when articles exist.
**Internal Notes:** Leave the HTML comment block as-is (hidden from Odoo view by default).
---
## Notes on Secondary Models ("s" suffix)
Models ending in "s" (e.g., M24s, MR27vs) are **Secondary displays** with SDI or USB controllers.
- Always include a prominent note in Connectivity & Integration that these require a primary Intelligent display
- In the Controller Specifications table, all fields show "N/A (Secondary Display)"
- The Purchase Description `DisplayType` is the same as the primary (Bus LCD, Rail LCD, etc.)
---
## Notes on Dual Models ("-Dual" suffix)
Models with "-Dual" (e.g., M29sw-Dual) are two-sided displays.
- Part Number: replace "-Dual" with "d" → M29sw-Dual → MPTV-M29swd-G2
- Mention dual-sided nature in the title, Display Description context, and Installation Notes
- Use cases should emphasize back-to-back or opposing-side passenger viewing
---
## Notes on LED Families (LM, LC)
LM and LC models use LED panel technology, not LCD.
- Screen "Size" is expressed as a physical module dimension ratio in mm (e.g., 960x480), not diagonal inches
- Resolution depends on pixel pitch -- confirm from Model Bible or user interview
- Panel Technology in KB article = "LED (Modular)" for LM, "LED (Cabinet)" for LC
- Brightness is typically expressed in nits/m2 for LED; confirm from reference data or user