AbCip: ALMA alarm projection; writes to controller-discovered UDT members #611
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Documented feature deferrals: projection is ALMD-only (ALMA "follow-up"); writes to browse-discovered UDT members deferred (only pre-declared
Members); whole-UDT writes refused. Native writes still need the bench proof (see the bench-controller issue).Sources: AbCipAlarmProjection.cs:16,314-324; docs/drivers/AbCip.md:372-375; NativeAbCipTagRuntime.cs:380.
Filed 2026-10-08 by the pending/deferred-work sweep after the #562–#591 issue sweep.
From #634: driver-gaps item #236 (AbCip) is tracked here.
All three items done on master, pushed 2026-10-09 (merges
bd209785ALMA,6c6800e5member writes; gate docs12aa293c).OperAckAll. Review also found and fixed a pre-existing ALMD defect: it polledInFaulted(input health) instead ofInAlarm— an ALMD would have raised on input faults and never on the alarm. E2E test throughDriverHostActor(AbCipAlmaNativeAlarmEndToEndTests).BadTypeMismatch/BadNotSupported, nothing sent, health untouched) instead of writing stale bytes. ab_server patch 0003 serves member paths. Live gate on Z35162 (user-approved, native, restored):_EmptyTemperatureSegment.ID(DINT) 0→4242→0,.Enable(BIT member) false→true→false,.HoldTime(REAL) 0→42.5→0, all Good; a 10-member snapshot after every write/restore showed only the written member changed.BadNotSupportedbefore any I/O (a whole-struct write overwrites every member incl. hidden/padding bytes; member writes cover the use case). Tested + documented as a decision.Hardware-only residuals moved to #592: ALMA/ALMD on a real controller (Z35162 has none), sibling-bit preservation within one hidden host SINT, the libplctag member-write path on hardware. Full suite green on merged master (13043 passed / 0 failed).