namespace ZB.MOM.WW.OtOpcUa.Driver.Galaxy.Runtime; /// /// Driver-side seam for the gateway's session-less alarm feed. Production wraps /// MxGatewayClient.StreamAlarmsAsync (); /// tests substitute a fake to drive synthetic /// events through 's IAlarmSource bridge without a /// running gateway. /// /// /// The feed is independent of any worker session — the updated gateway serves /// alarms from an always-on central monitor, so the feed survives subscription /// churn and reconnects its own stream on transient transport failures. /// internal interface IGalaxyAlarmFeed : IAsyncDisposable { /// /// Fires for every alarm transition the gateway feed delivers — both the /// entries of the initial active-alarm snapshot and every subsequent live /// raise / acknowledge / clear. The OPC UA severity bucket is already mapped. /// event EventHandler? OnAlarmTransition; /// /// Start consuming the alarm feed on a background task. Idempotent — second /// calls are no-ops while the loop is running. /// void Start(); }