Protocol-level runtime notification for one configured slave.
Notifications report EtherCAT runtime facts only. They do not infer machine availability, command completion, or semantic events.
A subscriber receives :slave_state_changed when the slave runtime enters a
different EtherCAT state and :domain_status_changed when the lifecycle or
cycle health of an attached process-data domain changes.
observed_at is a host monotonic timestamp in microseconds, not wall-clock
time or EtherCAT distributed-clock time. Compare it only within the same VM.
Summary
Types
@type details() :: %{ previous_state: EtherCAT.Slave.Status.state(), current: EtherCAT.Slave.Status.t() } | %{current: EtherCAT.Domain.Status.t()}
@type kind() :: :slave_state_changed | :domain_status_changed