How EtherCAT frames get to the SubDevices and back: the behaviour of a transport, which an
EtherCAT.MainDevice opens and owns.
EtherCAT.Transport.Packet, raw Ethernet on Linux, through OTP's:socketEtherCAT.Transport.BPF, raw Ethernet on macOS, through a small program of its ownEtherCAT.Transport.UDP, EtherCAT frames in UDP datagrams to port 0x88A4, as the spec allows
A transport takes and gives EtherCAT frames, from their header of two bytes on; the Ethernet or
UDP around them is its own business. What it receives comes to the process that opened it as
messages, which that process hands to handle/2.
Summary
Callbacks
Closes the transport.
Takes a message the process received: the EtherCAT frames it brought, none or more, with the
transport's state; an error when the transport is gone; or :ignore for a message that isn't the
transport's.
Opens the transport, in the process that will receive its frames.
Sends an EtherCAT frame.
Functions
The transport for an interface on this operating system: EtherCAT.Transport.Packet on Linux and
EtherCAT.Transport.BPF on macOS.
Types
@type t() :: term()
A transport's own state.
Callbacks
@callback close(t()) :: :ok
Closes the transport.
Takes a message the process received: the EtherCAT frames it brought, none or more, with the
transport's state; an error when the transport is gone; or :ignore for a message that isn't the
transport's.
Opens the transport, in the process that will receive its frames.
Sends an EtherCAT frame.
Functions
@spec raw() :: module()
The transport for an interface on this operating system: EtherCAT.Transport.Packet on Linux and
EtherCAT.Transport.BPF on macOS.