Sample operator HMI (CIENG_* displays, layouts, user CIENG, live-data feed) and tested findings ISS-068..075 #24

Merged
cliu merged 7 commits from feature/cieng-hmi into main 2026-10-06 11:32:18 +11:00
Owner

Summary

  • Sample operator HMI: 8 generated dark-dashboard displays CIENG_* (HTML mode, desktop + web), generator displays/generator/ (Python + Pillow, with README), layouts CIENG_Operator (header, 5-tab set, banner) and CIENG_Popup (faceplate)
  • Demo user CIENG (empty password via PASSWORD "", factory group OPERATOR, lands in CIENG_Operator / CIENG_Overview); ADMIN unchanged
  • Merged live-data feed feed/cieng_feed.ps1 (replaces trend_feed.ps1; -Seconds, -UntilFlag, -Alarms, -System), installed to C:\Users\Public\CI-Eng-Sample\feed, started/stopped by the header buttons (server-side command); item DEMO.FEED_ON
  • Removed CIENG_Tank, CIENG_Menu, CIENG_TrendLab; add_trend_spares.ps1 kept as a tool; sample README rewritten
  • Knowledge and skills: layouts (tab sets, desktop tab zoom, one layout command at a time, connectionState on the web), writing display XML directly, jwuiutl -v re-saves, trend notes, users with empty password, open session blocks group removal; issues ISS-068..075

Test plan

  • Each stage tested on CI Server R1.03.00 2026-10-06, desktop (Operator Interface) and web
  • Full remove.cmd / load.cmd cycle (load 0 errors); displays bind to the recreated items in a fresh session
  • CIENG logon with empty password (desktop + web), Start/Stop as CIENG and OPER; ADMIN keeps the default layout
  • Test display / test layouts for every new knowledge statement (removed afterwards)
  • Generator reproduces the committed XML; audit: no leftover names, local paths or personal data
  • Not tested: browser zoom values (marked as estimates), desktop re-test of connectionState

🤖 Generated with Claude Code

## Summary - Sample operator HMI: 8 generated dark-dashboard displays `CIENG_*` (HTML mode, desktop + web), generator `displays/generator/` (Python + Pillow, with README), layouts `CIENG_Operator` (header, 5-tab set, banner) and `CIENG_Popup` (faceplate) - Demo user `CIENG` (empty password via `PASSWORD ""`, factory group `OPERATOR`, lands in `CIENG_Operator` / `CIENG_Overview`); ADMIN unchanged - Merged live-data feed `feed/cieng_feed.ps1` (replaces `trend_feed.ps1`; `-Seconds`, `-UntilFlag`, `-Alarms`, `-System`), installed to `C:\Users\Public\CI-Eng-Sample\feed`, started/stopped by the header buttons (server-side command); item `DEMO.FEED_ON` - Removed `CIENG_Tank`, `CIENG_Menu`, `CIENG_TrendLab`; `add_trend_spares.ps1` kept as a tool; sample README rewritten - Knowledge and skills: layouts (tab sets, desktop tab zoom, one layout command at a time, `connectionState` on the web), writing display XML directly, `jwuiutl -v` re-saves, trend notes, users with empty password, open session blocks group removal; issues ISS-068..075 ## Test plan - [x] Each stage tested on CI Server R1.03.00 2026-10-06, desktop (Operator Interface) and web - [x] Full `remove.cmd` / `load.cmd` cycle (load 0 errors); displays bind to the recreated items in a fresh session - [x] `CIENG` logon with empty password (desktop + web), Start/Stop as `CIENG` and `OPER`; ADMIN keeps the default layout - [x] Test display / test layouts for every new knowledge statement (removed afterwards) - [x] Generator reproduces the committed XML; audit: no leftover names, local paths or personal data - [ ] Not tested: browser zoom values (marked as estimates), desktop re-test of `connectionState` 🤖 Generated with [Claude Code](https://claude.com/claude-code)
cliu added 7 commits 2026-10-06 11:30:26 +11:00
- feed/cieng_feed.ps1: -Seconds (default, LEVEL +/-25 %), -UntilFlag (DEMO.FEED_ON for the
  display Start/Stop), -Alarms (+/-33 %, crosses L/H), -System (SYSTEM.* items, skipped while
  the monitoring processes run); single-copy lock; log in %TLS_LST_PATH%\cieng_feed.log
- feed/cieng_feed_start.cmd, feed/install_feed.ps1: installed to C:\Users\Public\CI-Eng-Sample\feed
  (outside the CI Server package) for the server-side display command
- Item CI-Eng-Sample.DEMO.FEED_ON in 02_item_df.qli / 91_remove_item_df.qli
- Tested on CI Server R1.03.00 2026-10-06: default run, single copy, start wrapper with flag
  stop, system items written and skipped with a monitor process present

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- displays/CIENG_{Header,Overview,Control,Trends,Alarms,System,AlarmBanner,TankFaceplate}.xml:
  dark dashboard in HTML mode (desktop + web), generated by displays/generator/build.py
  (cixml.py component library; README.md describes the tool and the R1.03 rules it follows)
- layouts/CIENG_Operator.xml now holds CIENG_Operator (menu, navigation toolbar, header frame,
  5-tab set, alarm banner, status line; navigate commands with stretchDisplay) and CIENG_Popup
  (faceplate); layout.ps1 message updated
- deploy_displays.cmd / remove_displays.cmd for the 8 new displays
- Live-data Start runs C:\Users\Public\CI-Eng-Sample\feed\cieng_feed_start.cmd on the server
- Tested on CI Server R1.03.00 2026-10-06 (ADMIN with ?l=CIENG_Operator / jwuipoi -layout):
  web layout, tabs, popup, faceplate navigation, combo write, server-side Start as CIX_PROCESS;
  desktop layout, stretched tabs, Start/Stop
- Old CIENG_Tank / CIENG_Menu / CIENG_TrendLab still present (removed in the next stage)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Deleted the three old displays; add_trend_spares.ps1 kept as a documented tool
- 19b_audit_item_df.qli: operator writes now come from the Manual / Auto buttons on CIENG_Control
- Tested on CI Server R1.03.00 2026-10-06: remove_displays / deploy_displays cycle leaves exactly
  the 8 new displays; Manual / Auto on CIENG_Control audited as ITEM.VALUE.MODIFY.OPER-INTERFACE
  (user, old/new value)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 08_auth_group_df.qli: + CIENG_OPERATOR (factory OPERATOR actions + EXECUTE_GENERAL_COMMANDS
  for the server-side live-data Start)
- 08b_user_df.qli (new): CIENG, PASSWORD "" given explicitly, layout CIENG_Operator, initial
  display CIENG_Overview; loaded by load.cmd after 08
- 85_remove_auth_group_df.qli: removes CIENG before CIENG_OPERATOR and CIENG_VIEWER
- remove.cmd: log out every CIENG session first (a group with an open session of its user cannot
  be removed: DSSP-E-NODEL in USER_VAL; a retry stopped DSSSDA03 with DUR-F-BAD_SIZE)
- Tested on CI Server R1.03.00 2026-10-06: full remove.cmd / load.cmd (load 0 errors); CIENG
  logon with empty password on web and desktop lands on CIENG_Overview; ADMIN keeps the default
  layout; Start as CIENG; displays bind to the recreated items in a fresh session

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Contents / files: DEMO.FEED_ON, CIENG_OPERATOR, user CIENG, CIENG_* displays, generator, feed;
  old displays and trend_feed.ps1 removed; add_trend_spares.ps1 kept as a tool
- Displays and layout rewritten (install steps, logon as CIENG, display table, screen sizes with
  untested zoom estimates marked, known limits, removal); new Live data section
- remove.cmd note on open CIENG sessions; monitoring / audit / planned additions updated
- Tested on CI Server R1.03.00 2026-10-06: deploy and logon steps (stages 2-4), layout.ps1 -Remove
  restores Layouts.xml byte for byte, install_feed.ps1 -Remove / reinstall

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Group CIENG_OPERATOR dropped (08, 85, load.cmd, README): the live-data Start also works for a
  user in the factory group OPERATOR (tested 2026-10-06 as OPER), so EXECUTE_GENERAL_COMMANDS is
  not needed; 08b_user_df.qli gives CIENG the group OPERATOR
- remove.cmd / README: open CIENG session note reworded
- Generator README / cixml.py: arc angles run clockwise from 3 o'clock on desktop and web (fixed
  and connected; the earlier "mirrored on the desktop" note was wrong); rounding above 1 draws an
  ellipse on both clients
- Tested on CI Server R1.03.00 2026-10-06: CIENG logon (empty password) and Start with group
  OPERATOR; test display with static and connected arcs on both clients

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- layouts.md: tab set must be the last child of its frame set (web); desktop tab frames ignore
  zoom (navigate ... stretchDisplay); web activates the last tab loaded; web tab labels = display
  title; one layout command at a time; connectionState breaks the web layout (corrects 6.3);
  per-user layout verified on desktop and web
- create-display.md: new section "Writing display XML directly" (text size, rounding, arc angles
  clockwise on both clients, Clicked b1, web item attributes, asDateTime, server-side command as
  CIX_PROCESS with group OPERATOR, alarm overview columns / white area)
- deploy-displays.md: 8-display sample scripts; jwuiutl -v re-saves files
- trend.md: CIENG_TrendLab as history, cieng_feed.ps1, 50-pen hairline trade-off, component
  opaque, micro trend "Record not found" without history
- users-groups.md: PASSWORD "" for an empty password; sample user CIENG; open session blocks
  group removal (DSSSDA03 stopped)
- configure-audit.md, L25 / R30 / C50 summaries, SKILL.md, issues ISS-068..075, progress rows
- Every statement tested on CI Server R1.03.00 2026-10-02..06 (desktop and web, test display and
  test layouts removed afterwards)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
cliu merged commit 85824593cc into main 2026-10-06 11:32:18 +11:00
cliu deleted branch feature/cieng-hmi 2026-10-06 11:33:58 +11:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: cliu/ci-server-engineer#24
No description provided.