IgH EtherCAT Master  1.6.0
fsm_change.c File Reference

EtherCAT state change FSM. More...

Go to the source code of this file.

Macros

#define EC_AL_STATE_CHANGE_TIMEOUT   10
 Timeout while waiting for AL state change [s]. More...
 

Functions

void ec_fsm_change_state_start (ec_fsm_change_t *fsm)
 Change state: START. More...
 
void ec_fsm_change_state_check (ec_fsm_change_t *fsm)
 Change state: CHECK. More...
 
void ec_fsm_change_state_status (ec_fsm_change_t *fsm)
 Change state: STATUS. More...
 
void ec_fsm_change_state_start_code (ec_fsm_change_t *fsm)
 Enter reading AL status code. More...
 
void ec_fsm_change_state_code (ec_fsm_change_t *fsm)
 Change state: CODE. More...
 
void ec_fsm_change_state_ack (ec_fsm_change_t *fsm)
 Change state: ACK. More...
 
void ec_fsm_change_state_check_ack (ec_fsm_change_t *fsm)
 Change state: CHECK ACK. More...
 
void ec_fsm_change_state_end (ec_fsm_change_t *fsm)
 State: END. More...
 
void ec_fsm_change_state_error (ec_fsm_change_t *fsm)
 State: ERROR. More...
 
void ec_fsm_change_init (ec_fsm_change_t *fsm, ec_datagram_t *datagram)
 Constructor. More...
 
void ec_fsm_change_clear (ec_fsm_change_t *fsm)
 Destructor. More...
 
void ec_fsm_change_start (ec_fsm_change_t *fsm, ec_slave_t *slave, ec_slave_state_t state)
 Starts the change state machine. More...
 
void ec_fsm_change_ack (ec_fsm_change_t *fsm, ec_slave_t *slave)
 Starts the change state machine to only acknowlegde a slave's state. More...
 
int ec_fsm_change_exec (ec_fsm_change_t *fsm)
 Executes the current state of the state machine. More...
 
int ec_fsm_change_success (ec_fsm_change_t *fsm)
 Returns, if the state machine terminated with success. More...
 

Variables

const ec_code_msg_t al_status_messages []
 Application layer status messages.
 

Detailed Description

EtherCAT state change FSM.

Definition in file fsm_change.c.

Macro Definition Documentation

◆ EC_AL_STATE_CHANGE_TIMEOUT

#define EC_AL_STATE_CHANGE_TIMEOUT   10

Timeout while waiting for AL state change [s].

ETG2000_S_R_V1i0i15 section 5.3.7.2 mentions 10 s as maximum AL state change timeout.

Definition at line 40 of file fsm_change.c.

Function Documentation

◆ ec_fsm_change_state_start()

void ec_fsm_change_state_start ( ec_fsm_change_t fsm)

Change state: START.

Parameters
fsmfinite state machine

Definition at line 147 of file fsm_change.c.

◆ ec_fsm_change_state_check()

void ec_fsm_change_state_check ( ec_fsm_change_t fsm)

Change state: CHECK.

Parameters
fsmfinite state machine

Definition at line 169 of file fsm_change.c.

◆ ec_fsm_change_state_status()

void ec_fsm_change_state_status ( ec_fsm_change_t fsm)

Change state: STATUS.

Parameters
fsmfinite state machine

Definition at line 232 of file fsm_change.c.

◆ ec_fsm_change_state_start_code()

void ec_fsm_change_state_start_code ( ec_fsm_change_t fsm)

Enter reading AL status code.

Parameters
fsmfinite state machine

Definition at line 321 of file fsm_change.c.

◆ ec_fsm_change_state_code()

void ec_fsm_change_state_code ( ec_fsm_change_t fsm)

Change state: CODE.

Parameters
fsmfinite state machine

Definition at line 401 of file fsm_change.c.

◆ ec_fsm_change_state_ack()

void ec_fsm_change_state_ack ( ec_fsm_change_t fsm)

Change state: ACK.

Parameters
fsmfinite state machine

Definition at line 453 of file fsm_change.c.

◆ ec_fsm_change_state_check_ack()

void ec_fsm_change_state_check_ack ( ec_fsm_change_t fsm)

Change state: CHECK ACK.

Parameters
fsmfinite state machine

Definition at line 490 of file fsm_change.c.

◆ ec_fsm_change_state_end()

void ec_fsm_change_state_end ( ec_fsm_change_t fsm)

State: END.

Parameters
fsmfinite state machine

Definition at line 567 of file fsm_change.c.

◆ ec_fsm_change_state_error()

void ec_fsm_change_state_error ( ec_fsm_change_t fsm)

State: ERROR.

Parameters
fsmfinite state machine

Definition at line 556 of file fsm_change.c.

◆ ec_fsm_change_init()

void ec_fsm_change_init ( ec_fsm_change_t fsm,
ec_datagram_t datagram 
)

Constructor.

Parameters
fsmfinite state machine
datagramdatagram

Definition at line 60 of file fsm_change.c.

◆ ec_fsm_change_clear()

void ec_fsm_change_clear ( ec_fsm_change_t fsm)

Destructor.

Parameters
fsmfinite state machine

Definition at line 75 of file fsm_change.c.

◆ ec_fsm_change_start()

void ec_fsm_change_start ( ec_fsm_change_t fsm,
ec_slave_t slave,
ec_slave_state_t  state 
)

Starts the change state machine.

Parameters
fsmfinite state machine
slaveEtherCAT slave
staterequested state

Definition at line 85 of file fsm_change.c.

◆ ec_fsm_change_ack()

void ec_fsm_change_ack ( ec_fsm_change_t fsm,
ec_slave_t slave 
)

Starts the change state machine to only acknowlegde a slave's state.

Parameters
fsmfinite state machine
slaveEtherCAT slave

Definition at line 102 of file fsm_change.c.

◆ ec_fsm_change_exec()

int ec_fsm_change_exec ( ec_fsm_change_t fsm)

Executes the current state of the state machine.

Returns
false, if the state machine has terminated
Parameters
fsmfinite state machine

Definition at line 119 of file fsm_change.c.

◆ ec_fsm_change_success()

int ec_fsm_change_success ( ec_fsm_change_t fsm)

Returns, if the state machine terminated with success.

Returns
non-zero if successful.
Parameters
fsmFinite state machine

Definition at line 134 of file fsm_change.c.