Stable machine-readable master runtime status.
Summary
Types
@type configured_domain() :: %{ id: atom(), configured_cycle_time_us: pos_integer(), logical_base: non_neg_integer(), pid: pid() | nil, live_cycle_time_us: pos_integer() | nil }
@type configured_slave() :: %{ name: atom(), station: non_neg_integer() | nil, server: :gen_statem.server_ref(), pid: pid() | nil, driver: module(), config: map(), target_state: :preop | :op, process_data: term(), health_poll_ms: pos_integer() | nil, fault: term() | nil }
@type lifecycle() ::
:stopped
| :idle
| :discovering
| :awaiting_preop
| :preop_ready
| :deactivated
| :operational
| :activation_blocked
| :recovering
@type t() :: %EtherCAT.Master.Status{ activation_failures: %{optional(term()) => term()}, backend: EtherCAT.Backend.t() | nil, bus_status: map() | nil, configured_domains: [configured_domain()], configured_slaves: [configured_slave()], dc_status: EtherCAT.DC.Status.t(), desired_target: :preop | :safeop | :op | nil, last_failure: map() | nil, lifecycle: lifecycle(), reference_clock: %{name: atom() | nil, station: non_neg_integer()} | nil, runtime_faults: %{optional(term()) => term()}, slave_faults: %{optional(term()) => term()} }
Functions
@spec from_runtime( lifecycle(), %EtherCAT.Master{ activatable_slaves: term(), activation_failures: term(), await_callers: term(), await_operational_callers: term(), backend: term(), base_station: term(), bus_ref: term(), dc_config: term(), dc_ref: term(), dc_ref_station: term(), dc_stations: term(), desired_runtime_target: term(), domain_configs: term(), domain_refs: term(), frame_timeout_floor_ms: term(), frame_timeout_override_ms: term(), generation: term(), last_failure: term(), pending_preop: term(), runtime_faults: term(), scan_poll_ms: term(), scan_stable_ms: term(), scan_window: term(), slave_configs: term(), slave_count: term(), slave_faults: term(), slave_refs: term(), slaves: term() }, map() ) :: t()
@spec reference_clock_reply(EtherCAT.DC.Status.t()) :: {:ok, %{name: atom() | nil, station: non_neg_integer()}} | {:error, :dc_disabled | :no_reference_clock}
@spec stopped() :: t()