# ethercat v0.5.0 - Table of Contents

> Pure-Elixir EtherCAT master built on OTP. Declarative bus configuration, cyclic process data exchange, CoE SDO transfers, and distributed clocks.

## Pages

- [EtherCAT](readme.md)
- [Changelog](changelog.md)

## Modules

- [EtherCAT](EtherCAT.md): Public runtime API for the EtherCAT protocol boundary.
- [EtherCAT.Backend](EtherCAT.Backend.md): Canonical backend description for master startup, simulator transport, and scan.
- [EtherCAT.Backend.Raw](EtherCAT.Backend.Raw.md): Canonical raw-socket backend description.

- [EtherCAT.Backend.Redundant](EtherCAT.Backend.Redundant.md): Canonical redundant raw backend description.

- [EtherCAT.Backend.Udp](EtherCAT.Backend.Udp.md): Canonical UDP backend description.

- [EtherCAT.Bus](EtherCAT.Bus.md): Public API for the EtherCAT bus scheduler.
- [EtherCAT.Bus.Datagram](EtherCAT.Bus.Datagram.md): An EtherCAT datagram struct and wire-format codec (spec §2.2).
- [EtherCAT.Bus.Link](EtherCAT.Bus.Link.md): Shared scheduling helpers for bus link gen_statem implementations.
- [EtherCAT.Bus.Link.Redundant](EtherCAT.Bus.Link.Redundant.md): Dual-port bus link implemented as a gen_statem.
- [EtherCAT.Bus.Link.RedundantMerge](EtherCAT.Bus.Link.RedundantMerge.md): Pure helpers for redundant exchange interpretation.
- [EtherCAT.Bus.Link.Single](EtherCAT.Bus.Link.Single.md): Single-port bus link implemented as a gen_statem.
- [EtherCAT.Bus.Link.Submission](EtherCAT.Bus.Link.Submission.md): Internal queue item used by `EtherCAT.Bus.Link` scheduling helpers.
- [EtherCAT.Bus.Result](EtherCAT.Bus.Result.md): Result of a single EtherCAT datagram round-trip.
- [EtherCAT.Bus.Transaction](EtherCAT.Bus.Transaction.md): Builder for ordered EtherCAT datagram transactions.
- [EtherCAT.Bus.Transport](EtherCAT.Bus.Transport.md): Behaviour for EtherCAT frame transports.
- [EtherCAT.Bus.Transport.RawSocket](EtherCAT.Bus.Transport.RawSocket.md): Raw AF_PACKET socket transport for EtherCAT.
- [EtherCAT.Bus.Transport.UdpSocket](EtherCAT.Bus.Transport.UdpSocket.md): UDP/IP transport for simulator and integration endpoints.
- [EtherCAT.Capture](EtherCAT.Capture.md): Helpers for interactive slave-capture sessions.
- [EtherCAT.DC](EtherCAT.DC.md): Distributed Clocks initialization and runtime maintenance.
- [EtherCAT.DC.Config](EtherCAT.DC.Config.md): Declarative configuration for master-wide Distributed Clocks infrastructure.
- [EtherCAT.DC.Status](EtherCAT.DC.Status.md): Runtime status snapshot for Distributed Clocks.
- [EtherCAT.Diagnostics](EtherCAT.Diagnostics.md): Session-bound inspection and diagnostic API.
- [EtherCAT.Domain](EtherCAT.Domain.md): Cyclic process image for one logical EtherCAT domain.
- [EtherCAT.Domain.Config](EtherCAT.Domain.Config.md): Declarative configuration struct for a Domain.
- [EtherCAT.Domain.Status](EtherCAT.Domain.Status.md): Current protocol lifecycle and cycle health for one process-data domain.
- [EtherCAT.Driver](EtherCAT.Driver.md): Public protocol/device driver boundary for EtherCAT slaves.
- [EtherCAT.Driver.PDO](EtherCAT.Driver.PDO.md): One discovered PDO supplied to `c:EtherCAT.Driver.signal_model/2`.
- [EtherCAT.Driver.Provisioning](EtherCAT.Driver.Provisioning.md): Optional provisioning extension API for driver-authored mailbox setup.
- [EtherCAT.Driver.Signal](EtherCAT.Driver.Signal.md): Declarative mapping of one logical process-data signal to a PDO or slice of a PDO.
- [EtherCAT.Endpoint](EtherCAT.Endpoint.md): Public protocol description of one decoded signal on a configured slave.

- [EtherCAT.Master](EtherCAT.Master.md): Master orchestrates startup, activation, deactivation, and runtime recovery
for the local EtherCAT session.
- [EtherCAT.Master.Status](EtherCAT.Master.Status.md): Stable machine-readable master runtime status.

- [EtherCAT.Notification](EtherCAT.Notification.md): Protocol-level runtime notification for one configured slave.
- [EtherCAT.Provisioning](EtherCAT.Provisioning.md): Session-bound provisioning and low-level configuration API.
- [EtherCAT.Runtime](EtherCAT.Runtime.md): Host-supervised singleton runtime for EtherCAT.
- [EtherCAT.Sample](EtherCAT.Sample.md): Coherent decoded process-data observation for one slave within one domain cycle.
- [EtherCAT.Scan](EtherCAT.Scan.md): One-shot backend scan that reports observed topology without opening a
master session.
- [EtherCAT.Scan.Result](EtherCAT.Scan.Result.md): Stable observational scan result for one backend probe.

- [EtherCAT.Session](EtherCAT.Session.md): Opaque identity for one started EtherCAT session.
- [EtherCAT.Signals](EtherCAT.Signals.md): Session-bound signal and latch subscriptions.
- [EtherCAT.Simulator](EtherCAT.Simulator.md): Simulated EtherCAT slave segment for deep integration tests, virtual hardware,
and simulator-backed tooling.
- [EtherCAT.Simulator.Adapter](EtherCAT.Simulator.Adapter.md): Optional simulator-side companion for a real `EtherCAT.Driver`.
- [EtherCAT.Simulator.Fault](EtherCAT.Simulator.Fault.md): Builder API for `EtherCAT.Simulator.inject_fault/1`.
- [EtherCAT.Simulator.Slave](EtherCAT.Simulator.Slave.md): Device and signal-level API for simulated EtherCAT slaves.
- [EtherCAT.Simulator.Slave.Definition](EtherCAT.Simulator.Slave.Definition.md): Public authored definition for a simulated EtherCAT slave.
- [EtherCAT.Simulator.Status](EtherCAT.Simulator.Status.md): Stable machine-readable simulator runtime status.
- [EtherCAT.Simulator.Transport](EtherCAT.Simulator.Transport.md): Transport namespace for `EtherCAT.Simulator`.
- [EtherCAT.Simulator.Transport.Raw](EtherCAT.Simulator.Transport.Raw.md): Public raw transport surface for `EtherCAT.Simulator`.
- [EtherCAT.Simulator.Transport.Raw.Fault](EtherCAT.Simulator.Transport.Raw.Fault.md): Builder API for `EtherCAT.Simulator.Transport.Raw.inject_fault/1`.
- [EtherCAT.Simulator.Transport.Udp](EtherCAT.Simulator.Transport.Udp.md): UDP endpoint for `EtherCAT.Simulator`.
- [EtherCAT.Simulator.Transport.Udp.Fault](EtherCAT.Simulator.Transport.Udp.Fault.md): Builder API for `EtherCAT.Simulator.Transport.Udp.inject_fault/1`.
- [EtherCAT.Slave](EtherCAT.Slave.md): Runtime boundary for one physical slave.
- [EtherCAT.Slave.Config](EtherCAT.Slave.Config.md): Declarative configuration for one slave in physical bus order.
- [EtherCAT.Slave.ESC.Registers](EtherCAT.Slave.ESC.Registers.md): EtherCAT Slave Controller (ESC) register map.
- [EtherCAT.Slave.ESC.SII](EtherCAT.Slave.ESC.SII.md): SII EEPROM interface for EtherCAT slaves.
- [EtherCAT.Slave.Mailbox.CoE](EtherCAT.Slave.Mailbox.CoE.md): CANopen over EtherCAT (CoE) mailbox protocol.
- [EtherCAT.Slave.Status](EtherCAT.Slave.Status.md): Current protocol/runtime status for one configured EtherCAT slave.
- [EtherCAT.Slave.Sync.CoE](EtherCAT.Slave.Sync.CoE.md): Helpers for common CoE application sync-mode objects.
- [EtherCAT.Slave.Sync.Config](EtherCAT.Slave.Sync.Config.md): Declarative per-slave sync and latch configuration.
- [EtherCAT.SlaveDescription](EtherCAT.SlaveDescription.md): Public description for one configured slave.
- [EtherCAT.Telemetry](EtherCAT.Telemetry.md): Telemetry integration for the EtherCAT stack.

## Mix Tasks

- [mix ethercat.capture](Mix.Tasks.Ethercat.Capture.md): Boot an interactive PREOP capture session against a live EtherCAT ring.

