Phase 2 PR 9 — thread IsAlarm discovery flag end-to-end #8
Reference in New Issue
Block a user
Delete Branch "phase-2-pr9-alarms"
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?
Summary
Thread
IsAlarmdiscovery flag end-to-end:GalaxyRepository→ IPCGalaxyAttributeInfo→DriverAttributeInfo. The SQL has emittedis_alarmalongsideis_historizedsince the PR 5 repository port (via theprimitive_name='AlarmExtension'join), but the flag was silently dropped at theMapAttributehelper because the IPC message had no field to carry it.Changes
GalaxyAttributeInfo.IsAlarmat[Key(6)]— appended afterIsHistorizedfor wire-compat (MessagePack treats missing keys as default).MxAccessGalaxyBackend.MapAttribute+DbBackedGalaxyBackend.MapAttribute— copyrow.IsAlarminto the IPC shape.DriverAttributeInforecord gains anIsAlarmpositional parameter with defaultfalse— positional-record change with default, so non-Galaxy drivers don't need to flow a flag they don't produce.GalaxyProxyDriver.DiscoverAsyncpassesattr.IsAlarmthrough.Scope
Discovery-side foundation only. The full alarm subsystem — subscription to
<tag>.InAlarm+.Priority+.DescAttrName+.Acked, state-machine tracking for Active / Unacknowledged / Confirmed / Inactive, OPC UA Part 9 event emission, write-to-AckMsg ack path — is PR 10+. That layer lives in the generic node-manager, so it's orthogonal to the IPC wiring this PR covers.Tests
IsAlarm=truesurvives MessagePack serialize + deserialize.IsAlarm=falsedefault path.IsAlarm) deserializes cleanly withIsAlarm=false— so a rolling upgrade where the Proxy ships first can talk to an old Host during the window.Test plan
dotnet build ZB.MOM.WW.OtOpcUa.slnx— 0 errors, 38 pre-existing warningsdotnet test tests/.../Host.Tests/ --filter "Category=Unit"— 27/27 passGalaxyAttributeInfohasIsAlarm=truefor a tag known to have anAlarmExtensionprimitive.Merge order
Branches off
phase-2-pr5-historian. Fast-forwards once PR 5 merges; otherwise rebase.🤖 Generated with Claude Code