IgH EtherCAT Master  1.7.0
ec_fsm_mbox Struct Reference

EtherCAT mailbox receive state machine. More...

Data Fields

ec_slave_t * slave
 Slave the FSM runs on. More...
 
ec_mbox_data_t * mbox_data
 Response buffer of the protocol. More...
 
ec_fsm_mbox_mode_t mode
 Receive mode. More...
 
unsigned long jiffies_start
 Reference time for the timeout. More...
 
unsigned long timeout_ms
 Response timeout in [ms]. More...
 
void(* state )(ec_fsm_mbox_t *, ec_datagram_t *)
 State function. More...
 
ec_datagram_t * datagram
 Datagram used in the last step. More...
 
unsigned int retries
 Retries upon datagram timeout. More...
 
int result
 Zero on success, otherwise a negative error code. More...
 

Detailed Description

EtherCAT mailbox receive state machine.

Checks the slave's TX mailbox and fetches its contents, until a message for the protocol in question is stored in the given mailbox response buffer. The messages are distributed to the protocol buffers by the datagram receive path (see ec_master_mbox_dispatch()), so messages of other protocols, which are fetched in the meantime, are not lost.

The slave's mailbox read lock serializes the mailbox checks and fetches of the different protocol state machines. If another state machine holds the lock, the datagram is not used and the state machine waits for the lock or the response.

Definition at line 62 of file fsm_mbox.h.

Field Documentation

◆ slave

ec_slave_t* ec_fsm_mbox::slave

Slave the FSM runs on.

Definition at line 63 of file fsm_mbox.h.

◆ mbox_data

ec_mbox_data_t* ec_fsm_mbox::mbox_data

Response buffer of the protocol.

Definition at line 64 of file fsm_mbox.h.

◆ mode

ec_fsm_mbox_mode_t ec_fsm_mbox::mode

Receive mode.

Definition at line 65 of file fsm_mbox.h.

◆ jiffies_start

unsigned long ec_fsm_mbox::jiffies_start

Reference time for the timeout.

Definition at line 66 of file fsm_mbox.h.

◆ timeout_ms

unsigned long ec_fsm_mbox::timeout_ms

Response timeout in [ms].

Definition at line 67 of file fsm_mbox.h.

◆ state

void(* ec_fsm_mbox::state) (ec_fsm_mbox_t *, ec_datagram_t *)

State function.

Definition at line 68 of file fsm_mbox.h.

◆ datagram

ec_datagram_t* ec_fsm_mbox::datagram

Datagram used in the last step.

Definition at line 69 of file fsm_mbox.h.

◆ retries

unsigned int ec_fsm_mbox::retries

Retries upon datagram timeout.

Definition at line 70 of file fsm_mbox.h.

◆ result

int ec_fsm_mbox::result

Zero on success, otherwise a negative error code.

Definition at line 71 of file fsm_mbox.h.