IgH EtherCAT Master  1.6.0-rc1
fsm_slave.c File Reference

EtherCAT slave (SDO) state machine. More...

Go to the source code of this file.

Functions

void ec_fsm_slave_state_idle (ec_fsm_slave_t *fsm, ec_datagram_t *datagram )
 Slave state: IDLE. More...
 
void ec_fsm_slave_state_ready (ec_fsm_slave_t *fsm, ec_datagram_t *datagram )
 Slave state: READY. More...
 
int ec_fsm_slave_action_process_sdo (ec_fsm_slave_t *fsm, ec_datagram_t *datagram )
 Check for pending SDO requests and process one. More...
 
void ec_fsm_slave_state_sdo_request (ec_fsm_slave_t *fsm, ec_datagram_t *datagram )
 Slave state: SDO_REQUEST. More...
 
int ec_fsm_slave_action_process_reg (ec_fsm_slave_t *fsm, ec_datagram_t *datagram )
 Check for pending register requests and process one. More...
 
void ec_fsm_slave_state_reg_request (ec_fsm_slave_t *fsm, ec_datagram_t *datagram )
 Slave state: Register request. More...
 
int ec_fsm_slave_action_process_foe (ec_fsm_slave_t *fsm, ec_datagram_t *datagram )
 Check for pending FoE requests and process one. More...
 
void ec_fsm_slave_state_foe_request (ec_fsm_slave_t *fsm, ec_datagram_t *datagram )
 Slave state: FOE REQUEST. More...
 
int ec_fsm_slave_action_process_soe (ec_fsm_slave_t *fsm, ec_datagram_t *datagram )
 Check for pending SoE requests and process one. More...
 
void ec_fsm_slave_state_soe_request (ec_fsm_slave_t *fsm, ec_datagram_t *datagram )
 Slave state: SOE_REQUEST. More...
 
int ec_fsm_slave_action_process_eoe (ec_fsm_slave_t *fsm, ec_datagram_t *datagram )
 Check for pending EoE IP parameter requests and process one. More...
 
void ec_fsm_slave_state_eoe_request (ec_fsm_slave_t *fsm, ec_datagram_t *datagram )
 Slave state: EOE_REQUEST. More...
 
int ec_fsm_slave_action_process_dict (ec_fsm_slave_t *fsm, ec_datagram_t *datagram )
 Check for pending dictionary requests and process one. More...
 
void ec_fsm_slave_state_dict_request (ec_fsm_slave_t *fsm, ec_datagram_t *datagram )
 Slave state: DICT_REQUEST. More...
 
void ec_fsm_slave_init (ec_fsm_slave_t *fsm, ec_slave_t *slave)
 Constructor. More...
 
void ec_fsm_slave_clear (ec_fsm_slave_t *fsm)
 Destructor. More...
 
int ec_fsm_slave_exec (ec_fsm_slave_t *fsm, ec_datagram_t *datagram)
 Executes the current state of the state machine. More...
 
void ec_fsm_slave_set_ready (ec_fsm_slave_t *fsm)
 Sets the current state of the state machine to READY. More...
 
int ec_fsm_slave_is_ready (const ec_fsm_slave_t *fsm)
 Returns, if the FSM is currently not busy and ready to execute. More...
 

Detailed Description

EtherCAT slave (SDO) state machine.

Definition in file fsm_slave.c.

Function Documentation

void ec_fsm_slave_state_idle ( ec_fsm_slave_t fsm,
ec_datagram_t datagram 
)

Slave state: IDLE.

Parameters
fsmSlave state machine.
datagramDatagram to use.

Definition at line 199 of file fsm_slave.c.

void ec_fsm_slave_state_ready ( ec_fsm_slave_t fsm,
ec_datagram_t datagram 
)

Slave state: READY.

Parameters
fsmSlave state machine.
datagramDatagram to use.

Definition at line 211 of file fsm_slave.c.

int ec_fsm_slave_action_process_sdo ( ec_fsm_slave_t fsm,
ec_datagram_t datagram 
)

Check for pending SDO requests and process one.

Returns
non-zero, if an SDO request is processed.
Parameters
fsmSlave state machine.
datagramDatagram to use.

Definition at line 267 of file fsm_slave.c.

void ec_fsm_slave_state_sdo_request ( ec_fsm_slave_t fsm,
ec_datagram_t datagram 
)

Slave state: SDO_REQUEST.

Parameters
fsmSlave state machine.
datagramDatagram to use.

Definition at line 317 of file fsm_slave.c.

int ec_fsm_slave_action_process_reg ( ec_fsm_slave_t fsm,
ec_datagram_t datagram 
)

Check for pending register requests and process one.

Returns
non-zero, if a register request is processed.
Parameters
fsmSlave state machine.
datagramDatagram to use.

Definition at line 353 of file fsm_slave.c.

void ec_fsm_slave_state_reg_request ( ec_fsm_slave_t fsm,
ec_datagram_t datagram 
)

Slave state: Register request.

Parameters
fsmSlave state machine.
datagramDatagram to use.

Definition at line 419 of file fsm_slave.c.

int ec_fsm_slave_action_process_foe ( ec_fsm_slave_t fsm,
ec_datagram_t datagram 
)

Check for pending FoE requests and process one.

Returns
non-zero, if an FoE request is processed.
Parameters
fsmSlave state machine.
datagramDatagram to use.

Definition at line 471 of file fsm_slave.c.

void ec_fsm_slave_state_foe_request ( ec_fsm_slave_t fsm,
ec_datagram_t datagram 
)

Slave state: FOE REQUEST.

Parameters
fsmSlave state machine.
datagramDatagram to use.

Definition at line 511 of file fsm_slave.c.

int ec_fsm_slave_action_process_soe ( ec_fsm_slave_t fsm,
ec_datagram_t datagram 
)

Check for pending SoE requests and process one.

Returns
non-zero, if a request is processed.
Parameters
fsmSlave state machine.
datagramDatagram to use.

Definition at line 548 of file fsm_slave.c.

void ec_fsm_slave_state_soe_request ( ec_fsm_slave_t fsm,
ec_datagram_t datagram 
)

Slave state: SOE_REQUEST.

Parameters
fsmSlave state machine.
datagramDatagram to use.

Definition at line 598 of file fsm_slave.c.

int ec_fsm_slave_action_process_eoe ( ec_fsm_slave_t fsm,
ec_datagram_t datagram 
)

Check for pending EoE IP parameter requests and process one.

Returns
non-zero, if a request is processed.
Parameters
fsmSlave state machine.
datagramDatagram to use.

Definition at line 749 of file fsm_slave.c.

void ec_fsm_slave_state_eoe_request ( ec_fsm_slave_t fsm,
ec_datagram_t datagram 
)

Slave state: EOE_REQUEST.

Parameters
fsmSlave state machine.
datagramDatagram to use.

Definition at line 799 of file fsm_slave.c.

int ec_fsm_slave_action_process_dict ( ec_fsm_slave_t fsm,
ec_datagram_t datagram 
)

Check for pending dictionary requests and process one.

Returns
non-zero, if a request is processed.
Parameters
fsmSlave state machine.
datagramDatagram to use.

Definition at line 634 of file fsm_slave.c.

void ec_fsm_slave_state_dict_request ( ec_fsm_slave_t fsm,
ec_datagram_t datagram 
)

Slave state: DICT_REQUEST.

Parameters
fsmSlave state machine.
datagramDatagram to use.

Definition at line 708 of file fsm_slave.c.

void ec_fsm_slave_init ( ec_fsm_slave_t fsm,
ec_slave_t slave 
)

Constructor.

Parameters
fsmSlave state machine.
slaveEtherCAT slave.

Definition at line 66 of file fsm_slave.c.

void ec_fsm_slave_clear ( ec_fsm_slave_t fsm)

Destructor.

Parameters
fsmMaster state machine.

Definition at line 97 of file fsm_slave.c.

int ec_fsm_slave_exec ( ec_fsm_slave_t fsm,
ec_datagram_t datagram 
)

Executes the current state of the state machine.

Returns
1 if datagram was used, else 0.
Parameters
fsmSlave state machine.
datagramNew datagram to use.

Definition at line 145 of file fsm_slave.c.

void ec_fsm_slave_set_ready ( ec_fsm_slave_t fsm)

Sets the current state of the state machine to READY.

Parameters
fsmSlave state machine.

Definition at line 170 of file fsm_slave.c.

int ec_fsm_slave_is_ready ( const ec_fsm_slave_t fsm)

Returns, if the FSM is currently not busy and ready to execute.

Returns
Non-zero if ready.
Parameters
fsmSlave state machine.

Definition at line 186 of file fsm_slave.c.