IgH EtherCAT Master  1.6.0-rc1
fsm_slave_scan.c File Reference

EtherCAT slave state machines. More...

Go to the source code of this file.

Functions

void ec_fsm_slave_scan_state_start (ec_fsm_slave_scan_t *fsm)
 Slave scan state: START. More...
 
void ec_fsm_slave_scan_state_address (ec_fsm_slave_scan_t *fsm )
 Slave scan state: ADDRESS. More...
 
void ec_fsm_slave_scan_state_state (ec_fsm_slave_scan_t *fsm )
 Slave scan state: STATE. More...
 
void ec_fsm_slave_scan_state_base (ec_fsm_slave_scan_t *fsm )
 Slave scan state: BASE. More...
 
void ec_fsm_slave_scan_state_dc_cap (ec_fsm_slave_scan_t *fsm )
 Slave scan state: DC CAPABILITIES. More...
 
void ec_fsm_slave_scan_state_dc_times (ec_fsm_slave_scan_t *fsm )
 Slave scan state: DC TIMES. More...
 
void ec_fsm_slave_scan_state_datalink (ec_fsm_slave_scan_t *fsm )
 Slave scan state: DATALINK. More...
 
void ec_fsm_slave_scan_state_assign_sii (ec_fsm_slave_scan_t *fsm )
 Slave scan state: ASSIGN_SII. More...
 
void ec_fsm_slave_scan_state_sii_size (ec_fsm_slave_scan_t *fsm )
 Slave scan state: SII SIZE. More...
 
void ec_fsm_slave_scan_state_sii_data (ec_fsm_slave_scan_t *fsm)
 Slave scan state: SII DATA. More...
 
void ec_fsm_slave_scan_state_mailbox_cleared (ec_fsm_slave_scan_t *fsm)
 Slave scan state: Mailbox cleared. More...
 
void ec_fsm_slave_scan_state_preop (ec_fsm_slave_scan_t *fsm )
 Slave scan state: PREOP. More...
 
void ec_fsm_slave_scan_state_sync (ec_fsm_slave_scan_t *fsm )
 Slave scan state: SYNC. More...
 
void ec_fsm_slave_scan_state_pdos (ec_fsm_slave_scan_t *fsm )
 Slave scan state: PDOS. More...
 
void ec_fsm_slave_scan_state_end (ec_fsm_slave_scan_t *fsm )
 State: END. More...
 
void ec_fsm_slave_scan_state_error (ec_fsm_slave_scan_t *fsm )
 State: ERROR. More...
 
void ec_fsm_slave_scan_enter_datalink (ec_fsm_slave_scan_t *fsm )
 Slave scan entry function: DATALINK. More...
 
void ec_fsm_slave_scan_enter_preop (ec_fsm_slave_scan_t *fsm )
 Enter slave scan state PREOP. More...
 
void ec_fsm_slave_scan_enter_clear_mailbox (ec_fsm_slave_scan_t *fsm )
 Enter slave scan state: Clear Mailbox. More...
 
void ec_fsm_slave_scan_enter_pdos (ec_fsm_slave_scan_t *fsm )
 Enter slave scan state PDOS. More...
 
void ec_fsm_slave_scan_init (ec_fsm_slave_scan_t *fsm, ec_datagram_t *datagram, ec_fsm_slave_config_t *fsm_slave_config, ec_fsm_pdo_t *fsm_pdo)
 Constructor. More...
 
void ec_fsm_slave_scan_clear (ec_fsm_slave_scan_t *fsm)
 Destructor. More...
 
void ec_fsm_slave_scan_start (ec_fsm_slave_scan_t *fsm, ec_slave_t *slave)
 Start slave scan state machine. More...
 
int ec_fsm_slave_scan_running (const ec_fsm_slave_scan_t *fsm)
 
int ec_fsm_slave_scan_exec (ec_fsm_slave_scan_t *fsm)
 Executes the current state of the state machine. More...
 
int ec_fsm_slave_scan_success (const ec_fsm_slave_scan_t *fsm)
 
void ec_fsm_slave_scan_enter_sii_size (ec_fsm_slave_scan_t *fsm)
 Enter slave scan state SII_SIZE. More...
 
void ec_fsm_slave_scan_enter_assign_sii (ec_fsm_slave_scan_t *fsm)
 Enter slave scan state ASSIGN_SII. More...
 

Detailed Description

EtherCAT slave state machines.

Definition in file fsm_slave_scan.c.

Function Documentation

void ec_fsm_slave_scan_state_start ( ec_fsm_slave_scan_t fsm)

Slave scan state: START.

First state of the slave state machine. Writes the station address to the slave, according to its ring position.

Parameters
fsmslave state machine

Definition at line 176 of file fsm_slave_scan.c.

void ec_fsm_slave_scan_state_address ( ec_fsm_slave_scan_t fsm)

Slave scan state: ADDRESS.

Parameters
fsmslave state machine

Definition at line 191 of file fsm_slave_scan.c.

void ec_fsm_slave_scan_state_state ( ec_fsm_slave_scan_t fsm)

Slave scan state: STATE.

Parameters
fsmslave state machine

Definition at line 229 of file fsm_slave_scan.c.

void ec_fsm_slave_scan_state_base ( ec_fsm_slave_scan_t fsm)

Slave scan state: BASE.

Parameters
fsmslave state machine

Definition at line 273 of file fsm_slave_scan.c.

void ec_fsm_slave_scan_state_dc_cap ( ec_fsm_slave_scan_t fsm)

Slave scan state: DC CAPABILITIES.

Parameters
fsmslave state machine

Definition at line 347 of file fsm_slave_scan.c.

void ec_fsm_slave_scan_state_dc_times ( ec_fsm_slave_scan_t fsm)

Slave scan state: DC TIMES.

Parameters
fsmslave state machine

Definition at line 392 of file fsm_slave_scan.c.

void ec_fsm_slave_scan_state_datalink ( ec_fsm_slave_scan_t fsm)

Slave scan state: DATALINK.

Parameters
fsmslave state machine

Definition at line 494 of file fsm_slave_scan.c.

void ec_fsm_slave_scan_state_assign_sii ( ec_fsm_slave_scan_t fsm)

Slave scan state: ASSIGN_SII.

Parameters
fsmslave state machine

Definition at line 536 of file fsm_slave_scan.c.

void ec_fsm_slave_scan_state_sii_size ( ec_fsm_slave_scan_t fsm)

Slave scan state: SII SIZE.

Parameters
fsmslave state machine

Definition at line 572 of file fsm_slave_scan.c.

void ec_fsm_slave_scan_state_sii_data ( ec_fsm_slave_scan_t fsm)

Slave scan state: SII DATA.

Parameters
fsmslave state machine

Definition at line 649 of file fsm_slave_scan.c.

void ec_fsm_slave_scan_state_mailbox_cleared ( ec_fsm_slave_scan_t fsm)

Slave scan state: Mailbox cleared.

Parameters
fsmslave state machine

Definition at line 1100 of file fsm_slave_scan.c.

void ec_fsm_slave_scan_state_preop ( ec_fsm_slave_scan_t fsm)

Slave scan state: PREOP.

Parameters
fsmslave state machine

Definition at line 989 of file fsm_slave_scan.c.

void ec_fsm_slave_scan_state_sync ( ec_fsm_slave_scan_t fsm)

Slave scan state: SYNC.

Parameters
fsmslave state machine

Definition at line 1008 of file fsm_slave_scan.c.

void ec_fsm_slave_scan_state_pdos ( ec_fsm_slave_scan_t fsm)

Slave scan state: PDOS.

Parameters
fsmslave state machine

Definition at line 1140 of file fsm_slave_scan.c.

void ec_fsm_slave_scan_state_end ( ec_fsm_slave_scan_t fsm)

State: END.

Parameters
fsmslave state machine

Definition at line 1173 of file fsm_slave_scan.c.

void ec_fsm_slave_scan_state_error ( ec_fsm_slave_scan_t fsm)

State: ERROR.

Parameters
fsmslave state machine

Definition at line 1163 of file fsm_slave_scan.c.

void ec_fsm_slave_scan_enter_datalink ( ec_fsm_slave_scan_t fsm)

Slave scan entry function: DATALINK.

Parameters
fsmslave state machine

Definition at line 431 of file fsm_slave_scan.c.

void ec_fsm_slave_scan_enter_preop ( ec_fsm_slave_scan_t fsm)

Enter slave scan state PREOP.

Parameters
fsmslave state machine

Definition at line 950 of file fsm_slave_scan.c.

void ec_fsm_slave_scan_enter_clear_mailbox ( ec_fsm_slave_scan_t fsm)

Enter slave scan state: Clear Mailbox.

Parameters
fsmslave state machine

Definition at line 1079 of file fsm_slave_scan.c.

void ec_fsm_slave_scan_enter_pdos ( ec_fsm_slave_scan_t fsm)

Enter slave scan state PDOS.

Parameters
fsmslave state machine

Definition at line 1124 of file fsm_slave_scan.c.

void ec_fsm_slave_scan_init ( ec_fsm_slave_scan_t fsm,
ec_datagram_t datagram,
ec_fsm_slave_config_t fsm_slave_config,
ec_fsm_pdo_t fsm_pdo 
)

Constructor.

Parameters
fsmSlave scanning state machine.
datagramDatagram to use.
fsm_slave_configSlave configuration state machine to use.
fsm_pdoPDO configuration machine to use.

Definition at line 81 of file fsm_slave_scan.c.

void ec_fsm_slave_scan_clear ( ec_fsm_slave_scan_t fsm)

Destructor.

Parameters
fsmslave state machine

Definition at line 101 of file fsm_slave_scan.c.

void ec_fsm_slave_scan_start ( ec_fsm_slave_scan_t fsm,
ec_slave_t slave 
)

Start slave scan state machine.

Parameters
fsmslave state machine
slaveslave to configure

Definition at line 113 of file fsm_slave_scan.c.

int ec_fsm_slave_scan_running ( const ec_fsm_slave_scan_t fsm)
Returns
false, if state machine has terminated
Parameters
fsmslave state machine

Definition at line 128 of file fsm_slave_scan.c.

int ec_fsm_slave_scan_exec ( ec_fsm_slave_scan_t fsm)

Executes the current state of the state machine.

If the state machine's datagram is not sent or received yet, the execution of the state machine is delayed to the next cycle.

Returns
false, if state machine has terminated
Parameters
fsmslave state machine

Definition at line 143 of file fsm_slave_scan.c.

int ec_fsm_slave_scan_success ( const ec_fsm_slave_scan_t fsm)
Returns
true, if the state machine terminated gracefully
Parameters
fsmslave state machine

Definition at line 161 of file fsm_slave_scan.c.

void ec_fsm_slave_scan_enter_sii_size ( ec_fsm_slave_scan_t fsm)

Enter slave scan state SII_SIZE.

Parameters
fsmslave state machine

Definition at line 449 of file fsm_slave_scan.c.

void ec_fsm_slave_scan_enter_assign_sii ( ec_fsm_slave_scan_t fsm)

Enter slave scan state ASSIGN_SII.

Parameters
fsmslave state machine

Definition at line 470 of file fsm_slave_scan.c.