29#ifndef __EC_FSM_MASTER_H__
30#define __EC_FSM_MASTER_H__
EtherCAT datagram structure.
EtherCAT FoE request structure.
struct ec_fsm_change ec_fsm_change_t
struct ec_fsm_coe ec_fsm_coe_t
struct ec_fsm_eoe ec_fsm_eoe_t
struct ec_fsm_master ec_fsm_master_t
void ec_fsm_master_reset(ec_fsm_master_t *)
Reset state machine.
void ec_fsm_master_clear(ec_fsm_master_t *)
Destructor.
void ec_fsm_master_init(ec_fsm_master_t *, ec_master_t *, ec_datagram_t *)
Constructor.
int ec_fsm_master_exec(ec_fsm_master_t *)
Executes the current state of the state machine.
int ec_fsm_master_idle(const ec_fsm_master_t *)
EtherCAT PDO configuration state machine structures.
struct ec_fsm_pdo ec_fsm_pdo_t
struct ec_fsm_sii ec_fsm_sii_t
EtherCAT slave configuration state machine.
struct ec_fsm_slave_config ec_fsm_slave_config_t
EtherCAT slave scanning state machine.
struct ec_fsm_slave_scan ec_fsm_slave_scan_t
struct ec_fsm_soe ec_fsm_soe_t
Global definitions and macros.
ec_slave_state_t
State of an EtherCAT slave.
struct ec_slave ec_slave_t
ec_device_index_t
Master devices.
ec_internal_request_state_t
Generic request state.
struct ec_soe_request ec_soe_request_t
struct ec_sdo_request ec_sdo_request_t
struct ec_master ec_master_t
EtherCAT CANopen SDO request structure.
EtherCAT SoE request structure.
Finite state machine of an EtherCAT master.
unsigned int slaves_responding[EC_MAX_NUM_DEVICES]
Number of responding slaves for every device.
ec_sii_write_request_t * sii_request
SII write request.
unsigned int rescan_required
A bus rescan is required.
ec_fsm_coe_t fsm_coe
CoE state machine.
void(* state)(ec_fsm_master_t *)
master state function
ec_sdo_request_t * sdo_request
SDO request to process.
ec_datagram_t * datagram
datagram used in the state machine
ec_soe_request_t * soe_request
SoE request to process.
ec_fsm_change_t fsm_change
State change state machine.
uint8_t link_state[EC_MAX_NUM_DEVICES]
Last link state for every device.
unsigned int retries
retries on datagram timeout.
ec_slave_state_t slave_states[EC_MAX_NUM_DEVICES]
AL states of responding slaves for every device.
ec_fsm_pdo_t fsm_pdo
PDO configuration state machine.
int idle
state machine is in idle phase
ec_slave_t * slave
current slave
ec_fsm_eoe_t fsm_eoe
EoE state machine.
ec_device_index_t dev_idx
Current device index (for scanning etc.).
ec_fsm_soe_t fsm_soe
SoE state machine.
ec_fsm_slave_config_t fsm_slave_config
slave state machine
unsigned long scan_jiffies
beginning of slave scanning
off_t sii_index
index to SII write request data
ec_fsm_sii_t fsm_sii
SII state machine.
ec_fsm_slave_scan_t fsm_slave_scan
slave state machine
ec_master_t * master
master the FSM runs on
struct list_head list
List head.
ec_slave_t * slave
EtherCAT slave.
ec_internal_request_state_t state
State of the request.
const uint16_t * words
Pointer to the data words.
size_t nwords
Number of words.
uint16_t offset
SII word offset.