61 lines
3.4 KiB
Markdown
61 lines
3.4 KiB
Markdown
---
|
||
task: Build a display in the Edit Module and check the saved file
|
||
version: R1.03
|
||
source: IM 36K10C50-01EN §1.2, §1.7, §2, §4.8.1; practiced on CI-Eng-Sample (display CIENG_Tank) 2026-10-01
|
||
status: verified
|
||
---
|
||
|
||
# Build a display (Edit Module)
|
||
|
||
The user draws; Claude gives the steps and checks the result. Example = the sample display
|
||
`examples/CI-Eng-Sample/displays/CIENG_Tank.xml`.
|
||
|
||
## Steps for the user
|
||
|
||
1. Start the Edit Module and log in.
|
||
2. *File > New Display*, name `<DisplayName>`; tick **HTML display** if it should also run in a
|
||
browser (the editor then hides unsupported components and properties).
|
||
3. Add components from the component bar, for example:
|
||
- **Text** — title.
|
||
- **Number field** — in the Properties sheet click **Value**, open the connection dialog,
|
||
*Items* tab, pick `<Section>.<Tag>`.
|
||
- **Alarm Overview** — right-click > *Component Properties*; *Filter* tab for an ASA, section
|
||
or tag filter; *Types* tab for current/historical.
|
||
- **Trend** — component properties, pen 1 = `<Section>.<Tag>` (a new trend has 5 empty pens;
|
||
the item must be in a storage group).
|
||
4. *File > Save* (or *Save with Revision Information*). Close the tab when done: an open
|
||
display is locked (`<DisplayName>.lck`) and `jwuiutl` skips it.
|
||
|
||
## Check the saved file
|
||
|
||
Folder `%TLS_WAP_PATH%\cfg\operatorInterfaces\DEPLOY\displays\` (and with HTML mode also
|
||
`%TLS_WAP_PATH%\mobileoperator\operatorInterfaces\DEPLOY\displays\<DisplayName>.html`).
|
||
|
||
```
|
||
grep -n "<html>\|<width>\|<height>\|itemName\|itemId\|<source" <DisplayName>.xml
|
||
```
|
||
|
||
- `<html>true</html>` = HTML mode; `<width>`/`<height>` must be set for the HTML display.
|
||
- Item connections: `<itemName>` + `<itemId>` (node.group.number…); trend pens:
|
||
`<source type="sourceID" uri="ci:/item/<item>"/>` (`uri=""` = empty pen).
|
||
- Write a fixed value with a button (verified in the HTML display, `CIENG_Tank` *Manual (0)* /
|
||
*Auto (1)*): `<button>` › `<data>` › `<action type="actionSetItemAttribute">` with
|
||
`<event type="event" event="On action"/>`, `<filter type="filter"><value>1.0</value></filter>`
|
||
and a `<connection>` with `<direction>2</direction>`, `<itemName>`, `<itemAttribute>ItemValue`
|
||
(the factory popups use `ItemValueOW`, presumably the overwrite variant like `itmval -o`; not tested). The factory popup `AOG_SetNumberPV` uses the
|
||
same action behind its *Apply* button.
|
||
- After the item is deleted and loaded again it gets a **new id**; the display still validates,
|
||
but on 2026-10-01 the HTML display showed **0** and the popup `ITM-E-NO_MAIN, No main item
|
||
found` for a number field whose stored `<itemId>` was stale, also in a fresh session. Deleting
|
||
the `<itemId>` line (keeping `<itemName>`) and redeploying fixed it: the field binds by name.
|
||
Sample displays therefore carry no `<itemId>`; for displays made in the Edit Module, reconnect
|
||
or remove the ids after reloading items (ISS-052).
|
||
|
||
## Verified (CIENG_Tank, 2026-10-01)
|
||
|
||
Text `CI-Eng-Sample Tank 1`, number field on `TANK1.LEVEL` (live: 72 → 61), alarm overview
|
||
(no filter; listed the TANK1.LEVEL alarms), trend pen `TANK1.LEVEL` (legend
|
||
`CI-Eng-Sample.TANK1.LEVEL [CIENG_SCAN10S]` = highest-priority storage group). In the HTML
|
||
display the trend drew no line: a trend needs 50 visible pens to draw on the web (ISS-041;
|
||
workaround and all trend settings in `trend.md`). The sample file is now padded with
|
||
`add_trend_spares.ps1` (49 spares) and draws in the browser too.
|