server: DriverNodeManager prefers IAlarmSource ack over IWritable (PR B.3) #414
Reference in New Issue
Block a user
Delete Branch "track-b3-prefer-driver-native-alarm"
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
Thirteenth PR of the alarms-over-gateway epic (docs/plans/alarms-over-gateway.md). Depends on PR B.2 (#413, merged).
When
DriverNodeManagerregisters anAlarmConditionStatewithAlarmConditionService, it now picks the acknowledger:IAlarmSource→DriverAlarmSourceAcknowledgerroutes the operator comment throughIAlarmSource.AcknowledgeAsyncvia the existingAlarmSurfaceInvoker(Phase 6.1 resilience pipeline, no-retry per decision #143). Preserves operator-comment fidelity end-to-end — the value-driven sub-attribute write collapses the comment into a single string write that loses MxAccess metadata.IAlarmSource→DriverWritableAcknowledgerfallback (existing behaviour for AbCip / Modbus / S7 / etc).The dedup logic that prefers driver-native transitions over sub-attribute synthesis lives in
AlarmConditionServiceand is already in place — drivers that surfaceOnAlarmEvent(B.2) feed the service directly, while sub-attribute writes still flow through DriverNodeManager'sConditionSinkso a Galaxy template without$Alarmextensions stays functional.Test plan
DriverAlarmSourceAcknowledgerRoutingTestspin the IAlarmSource detectionAlarmSurfaceInvokerwrapping satisfied)Follow-up