Main Page | Modules | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

fsm.c File Reference


Detailed Description

EtherCAT finite state machines.

Definition in file fsm.c.

Go to the source code of this file.

Functions

void ec_fsm_master_start (ec_fsm_t *fsm)
 Master state: START.
void ec_fsm_master_broadcast (ec_fsm_t *fsm)
 Master state: BROADCAST.
void ec_fsm_master_read_states (ec_fsm_t *fsm)
 Master state: READ STATES.
void ec_fsm_master_acknowledge (ec_fsm_t *fsm)
 Master state: ACKNOWLEDGE.
void ec_fsm_master_validate_vendor (ec_fsm_t *fsm)
 Master state: VALIDATE_VENDOR.
void ec_fsm_master_validate_product (ec_fsm_t *fsm)
 Master state: VALIDATE_PRODUCT.
void ec_fsm_master_rewrite_addresses (ec_fsm_t *fsm)
 Master state: REWRITE ADDRESS.
void ec_fsm_master_configure_slave (ec_fsm_t *fsm)
 Master state: CONFIGURE SLAVES.
void ec_fsm_master_scan_slaves (ec_fsm_t *fsm)
 Master state: SCAN SLAVES.
void ec_fsm_master_write_eeprom (ec_fsm_t *fsm)
 Master state: WRITE EEPROM.
void ec_fsm_master_sdodict (ec_fsm_t *fsm)
 Master state: SDODICT.
void ec_fsm_master_sdo_request (ec_fsm_t *fsm)
 Master state: SDO REQUEST.
void ec_fsm_master_end (ec_fsm_t *fsm)
 State: END.
void ec_fsm_master_error (ec_fsm_t *fsm)
 State: ERROR.
void ec_fsm_slavescan_start (ec_fsm_t *fsm)
 Slave scan state: START.
void ec_fsm_slavescan_address (ec_fsm_t *fsm)
 Slave scan state: ADDRESS.
void ec_fsm_slavescan_state (ec_fsm_t *fsm)
 Slave scan state: STATE.
void ec_fsm_slavescan_base (ec_fsm_t *fsm)
 Slave scan state: BASE.
void ec_fsm_slavescan_datalink (ec_fsm_t *fsm)
 Slave scan state: DATALINK.
void ec_fsm_slavescan_eeprom_size (ec_fsm_t *fsm)
 Slave scan state: EEPROM SIZE.
void ec_fsm_slavescan_eeprom_data (ec_fsm_t *fsm)
 Slave scan state: EEPROM DATA.
void ec_fsm_slaveconf_state_start (ec_fsm_t *fsm)
 Slave configuration state: START.
void ec_fsm_slaveconf_state_init (ec_fsm_t *fsm)
 Slave configuration state: INIT.
void ec_fsm_slaveconf_state_clear_fmmus (ec_fsm_t *fsm)
 Slave configuration state: CLEAR FMMU.
void ec_fsm_slaveconf_state_sync (ec_fsm_t *fsm)
 Slave configuration state: SYNC.
void ec_fsm_slaveconf_state_preop (ec_fsm_t *fsm)
 Slave configuration state: PREOP.
void ec_fsm_slaveconf_state_sync2 (ec_fsm_t *fsm)
 Slave configuration state: SYNC2.
void ec_fsm_slaveconf_state_fmmu (ec_fsm_t *fsm)
 Slave configuration state: FMMU.
void ec_fsm_slaveconf_state_sdoconf (ec_fsm_t *fsm)
 Slave configuration state: SDOCONF.
void ec_fsm_slaveconf_state_saveop (ec_fsm_t *fsm)
 Slave configuration state: SAVEOP.
void ec_fsm_slaveconf_state_op (ec_fsm_t *fsm)
 Slave configuration state: OP.
void ec_fsm_slaveconf_enter_sync (ec_fsm_t *fsm)
void ec_fsm_slaveconf_enter_preop (ec_fsm_t *fsm)
void ec_fsm_slaveconf_enter_sync2 (ec_fsm_t *fsm)
void ec_fsm_slaveconf_enter_fmmu (ec_fsm_t *fsm)
void ec_fsm_slaveconf_enter_sdoconf (ec_fsm_t *fsm)
void ec_fsm_slaveconf_enter_saveop (ec_fsm_t *fsm)
void ec_fsm_slave_state_end (ec_fsm_t *fsm)
 State: END.
void ec_fsm_slave_state_error (ec_fsm_t *fsm)
 State: ERROR.
int ec_fsm_init (ec_fsm_t *fsm, ec_master_t *master)
 Constructor.
void ec_fsm_clear (ec_fsm_t *fsm)
 Destructor.
int ec_fsm_exec (ec_fsm_t *fsm)
 Executes the current state of the state machine.
int ec_fsm_running (ec_fsm_t *fsm)
int ec_fsm_success (ec_fsm_t *fsm)
void ec_fsm_master_action_process_states (ec_fsm_t *fsm)
 Master action: PROC_STATES.
void ec_fsm_master_action_next_slave_state (ec_fsm_t *fsm)
 Master action: Get state of next slave.
void ec_fsm_master_action_addresses (ec_fsm_t *fsm)
 Master action: ADDRESS.


Function Documentation

void ec_fsm_master_start ec_fsm_t fsm  ) 
 

Master state: START.

Starts with getting slave count and slave states.

Definition at line 184 of file fsm.c.

void ec_fsm_master_broadcast ec_fsm_t fsm  ) 
 

Master state: BROADCAST.

Processes the broadcast read slave count and slaves states.

Parameters:
fsm  finite state machine

Definition at line 198 of file fsm.c.

void ec_fsm_master_read_states ec_fsm_t fsm  ) 
 

Master state: READ STATES.

Fetches the AL- and online state of a slave.

Parameters:
fsm  finite state machine

Definition at line 471 of file fsm.c.

void ec_fsm_master_acknowledge ec_fsm_t  ) 
 

Master state: ACKNOWLEDGE.

Parameters:
fsm  finite state machine

Definition at line 537 of file fsm.c.

void ec_fsm_master_validate_vendor ec_fsm_t fsm  ) 
 

Master state: VALIDATE_VENDOR.

Validates the vendor ID of a slave.

Parameters:
fsm  finite state machine

Definition at line 561 of file fsm.c.

void ec_fsm_master_validate_product ec_fsm_t fsm  ) 
 

Master state: VALIDATE_PRODUCT.

Validates the product ID of a slave.

Parameters:
fsm  finite state machine

Definition at line 626 of file fsm.c.

void ec_fsm_master_rewrite_addresses ec_fsm_t fsm  ) 
 

Master state: REWRITE ADDRESS.

Checks, if the new station address has been written to the slave.

Parameters:
fsm  finite state machine

Definition at line 670 of file fsm.c.

void ec_fsm_master_configure_slave ec_fsm_t fsm  ) 
 

Master state: CONFIGURE SLAVES.

Starts configuring a slave.

Parameters:
fsm  finite state machine

Definition at line 740 of file fsm.c.

void ec_fsm_master_scan_slaves ec_fsm_t fsm  ) 
 

Master state: SCAN SLAVES.

Executes the sub-statemachine for the scanning of a slave.

Parameters:
fsm  finite state machine

Definition at line 702 of file fsm.c.

void ec_fsm_master_write_eeprom ec_fsm_t  ) 
 

Master state: WRITE EEPROM.

Parameters:
fsm  finite state machine

Definition at line 758 of file fsm.c.

void ec_fsm_master_sdodict ec_fsm_t  ) 
 

Master state: SDODICT.

Parameters:
fsm  finite state machine

Definition at line 801 of file fsm.c.

void ec_fsm_master_sdo_request ec_fsm_t  ) 
 

Master state: SDO REQUEST.

Parameters:
fsm  finite state machine

Definition at line 833 of file fsm.c.

void ec_fsm_master_end ec_fsm_t  ) 
 

State: END.

Parameters:
fsm  finite state machine

Definition at line 874 of file fsm.c.

void ec_fsm_master_error ec_fsm_t  ) 
 

State: ERROR.

Parameters:
fsm  finite state machine

Definition at line 863 of file fsm.c.

void ec_fsm_slavescan_start ec_fsm_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:
fsm  finite state machine

Definition at line 889 of file fsm.c.

void ec_fsm_slavescan_address ec_fsm_t  ) 
 

Slave scan state: ADDRESS.

Parameters:
fsm  finite state machine

Definition at line 906 of file fsm.c.

void ec_fsm_slavescan_state ec_fsm_t  ) 
 

Slave scan state: STATE.

Parameters:
fsm  finite state machine

Definition at line 931 of file fsm.c.

void ec_fsm_slavescan_base ec_fsm_t  ) 
 

Slave scan state: BASE.

Parameters:
fsm  finite state machine

Definition at line 965 of file fsm.c.

void ec_fsm_slavescan_datalink ec_fsm_t  ) 
 

Slave scan state: DATALINK.

Parameters:
fsm  finite state machine

Definition at line 1000 of file fsm.c.

void ec_fsm_slavescan_eeprom_size ec_fsm_t  ) 
 

Slave scan state: EEPROM SIZE.

Parameters:
fsm  finite state machine

Definition at line 1037 of file fsm.c.

void ec_fsm_slavescan_eeprom_data ec_fsm_t  ) 
 

Slave scan state: EEPROM DATA.

Parameters:
fsm  finite state machine

Definition at line 1094 of file fsm.c.

void ec_fsm_slaveconf_state_start ec_fsm_t  ) 
 

Slave configuration state: START.

Parameters:
fsm  finite state machine

Definition at line 1209 of file fsm.c.

void ec_fsm_slaveconf_state_init ec_fsm_t  ) 
 

Slave configuration state: INIT.

Parameters:
fsm  finite state machine

Definition at line 1226 of file fsm.c.

void ec_fsm_slaveconf_state_clear_fmmus ec_fsm_t  ) 
 

Slave configuration state: CLEAR FMMU.

Parameters:
fsm  finite state machine

Definition at line 1273 of file fsm.c.

void ec_fsm_slaveconf_state_sync ec_fsm_t  ) 
 

Slave configuration state: SYNC.

Parameters:
fsm  finite state machine

Definition at line 1370 of file fsm.c.

void ec_fsm_slaveconf_state_preop ec_fsm_t  ) 
 

Slave configuration state: PREOP.

Parameters:
fsm  finite state machine

Definition at line 1405 of file fsm.c.

void ec_fsm_slaveconf_state_sync2 ec_fsm_t  ) 
 

Slave configuration state: SYNC2.

Parameters:
fsm  finite state machine

Definition at line 1473 of file fsm.c.

void ec_fsm_slaveconf_state_fmmu ec_fsm_t  ) 
 

Slave configuration state: FMMU.

Parameters:
fsm  finite state machine

Definition at line 1526 of file fsm.c.

void ec_fsm_slaveconf_state_sdoconf ec_fsm_t  ) 
 

Slave configuration state: SDOCONF.

Parameters:
fsm  finite state machine

Definition at line 1576 of file fsm.c.

void ec_fsm_slaveconf_state_saveop ec_fsm_t  ) 
 

Slave configuration state: SAVEOP.

Parameters:
fsm  finite state machine

Definition at line 1619 of file fsm.c.

void ec_fsm_slaveconf_state_op ec_fsm_t  ) 
 

Slave configuration state: OP.

Parameters:
fsm  finite state machine

Definition at line 1659 of file fsm.c.

void ec_fsm_slaveconf_enter_sync ec_fsm_t  ) 
 

Parameters:
fsm  finite state machine

Definition at line 1295 of file fsm.c.

void ec_fsm_slaveconf_enter_preop ec_fsm_t  ) 
 

Parameters:
fsm  finite state machine

Definition at line 1392 of file fsm.c.

void ec_fsm_slaveconf_enter_sync2 ec_fsm_t  ) 
 

Parameters:
fsm  finite state machine

Definition at line 1442 of file fsm.c.

void ec_fsm_slaveconf_enter_fmmu ec_fsm_t  ) 
 

Parameters:
fsm  finite state machine

Definition at line 1495 of file fsm.c.

void ec_fsm_slaveconf_enter_sdoconf ec_fsm_t  ) 
 

Parameters:
fsm  finite state machine

Definition at line 1554 of file fsm.c.

void ec_fsm_slaveconf_enter_saveop ec_fsm_t  ) 
 

Parameters:
fsm  finite state machine

Definition at line 1606 of file fsm.c.

void ec_fsm_slave_state_end ec_fsm_t  ) 
 

State: END.

Parameters:
fsm  finite state machine

Definition at line 1700 of file fsm.c.

void ec_fsm_slave_state_error ec_fsm_t  ) 
 

State: ERROR.

Parameters:
fsm  finite state machine

Definition at line 1690 of file fsm.c.

int ec_fsm_init ec_fsm_t fsm,
ec_master_t master
 

Constructor.

Parameters:
fsm  finite state machine
master  EtherCAT master

Definition at line 98 of file fsm.c.

void ec_fsm_clear ec_fsm_t fsm  ) 
 

Destructor.

Parameters:
fsm  finite state machine

Definition at line 128 of file fsm.c.

int ec_fsm_exec ec_fsm_t fsm  ) 
 

Executes the current state of the state machine.

Returns:
false, if state machine has terminated
Parameters:
fsm  finite state machine

Definition at line 145 of file fsm.c.

int ec_fsm_running ec_fsm_t fsm  ) 
 

Returns:
false, if state machine has terminated
Parameters:
fsm  finite state machine

Definition at line 158 of file fsm.c.

int ec_fsm_success ec_fsm_t fsm  ) 
 

Returns:
true, if the master state machine terminated gracefully
Parameters:
fsm  finite state machine

Definition at line 170 of file fsm.c.

void ec_fsm_master_action_process_states ec_fsm_t fsm  ) 
 

Master action: PROC_STATES.

Processes the slave states.

Parameters:
fsm  finite state machine

Definition at line 305 of file fsm.c.

void ec_fsm_master_action_next_slave_state ec_fsm_t fsm  ) 
 

Master action: Get state of next slave.

Parameters:
fsm  finite state machine

Definition at line 426 of file fsm.c.

void ec_fsm_master_action_addresses ec_fsm_t fsm  ) 
 

Master action: ADDRESS.

Looks for slave, that have lost their configuration and writes their station address, so that they can be reconfigured later.

Parameters:
fsm  finite state machine

Definition at line 595 of file fsm.c.


Generated on Tue Nov 7 15:03:36 2006 for IgH EtherCAT master by  doxygen 1.4.4