diff -r 0180d8277311 -r 779a18d12e6c master/fsm.c --- a/master/fsm.c Mon Oct 23 13:45:09 2006 +0000 +++ b/master/fsm.c Mon Oct 23 14:00:58 2006 +0000 @@ -168,33 +168,13 @@ /** Executes the current state of the state machine. -*/ - -void ec_fsm_execute(ec_fsm_t *fsm /**< finite state machine */) + \return false, if state machine has terminated +*/ + +int ec_fsm_exec(ec_fsm_t *fsm /**< finite state machine */) { fsm->master_state(fsm); -} - -/*****************************************************************************/ - -/** - Initializes the master startup state machine. -*/ - -void ec_fsm_startup(ec_fsm_t *fsm) -{ - fsm->master_state = ec_fsm_startup_start; -} - -/*****************************************************************************/ - -/** - Returns the running state of the master startup state machine. - \return non-zero if not terminated yet. -*/ - -int ec_fsm_startup_running(ec_fsm_t *fsm /**< Finite state machine */) -{ + return fsm->master_state != ec_fsm_end && fsm->master_state != ec_fsm_error; } @@ -202,6 +182,17 @@ /*****************************************************************************/ /** + Initializes the master startup state machine. +*/ + +void ec_fsm_startup(ec_fsm_t *fsm) +{ + fsm->master_state = ec_fsm_startup_start; +} + +/*****************************************************************************/ + +/** Returns, if the master startup state machine terminated with success. \return non-zero if successful. */ @@ -225,19 +216,6 @@ /*****************************************************************************/ /** - Returns the running state of the master configuration state machine. - \return non-zero if not terminated yet. -*/ - -int ec_fsm_configuration_running(ec_fsm_t *fsm /**< Finite state machine */) -{ - return fsm->master_state != ec_fsm_end && - fsm->master_state != ec_fsm_error; -} - -/*****************************************************************************/ - -/** Returns, if the master confuguration state machine terminated with success. \return non-zero if successful. */ @@ -796,9 +774,7 @@ { ec_slave_t *slave = fsm->slave; - ec_fsm_sii_exec(&fsm->fsm_sii); // execute SII state machine - - if (ec_fsm_sii_running(&fsm->fsm_sii)) return; + if (ec_fsm_sii_exec(&fsm->fsm_sii)) return; if (!ec_fsm_sii_success(&fsm->fsm_sii)) { fsm->slave->error_flag = 1; @@ -864,9 +840,7 @@ { ec_slave_t *slave = fsm->slave; - ec_fsm_sii_exec(&fsm->fsm_sii); // execute SII state machine - - if (ec_fsm_sii_running(&fsm->fsm_sii)) return; + if (ec_fsm_sii_exec(&fsm->fsm_sii)) return; if (!ec_fsm_sii_success(&fsm->fsm_sii)) { fsm->slave->error_flag = 1; @@ -1001,9 +975,7 @@ { ec_slave_t *slave = fsm->slave; - ec_fsm_sii_exec(&fsm->fsm_sii); // execute SII state machine - - if (ec_fsm_sii_running(&fsm->fsm_sii)) return; + if (ec_fsm_sii_exec(&fsm->fsm_sii)) return; if (!ec_fsm_sii_success(&fsm->fsm_sii)) { fsm->slave->error_flag = 1; @@ -1266,10 +1238,7 @@ ec_slave_t *slave = fsm->slave; uint16_t cat_type, cat_size; - // execute SII state machine - ec_fsm_sii_exec(&fsm->fsm_sii); - - if (ec_fsm_sii_running(&fsm->fsm_sii)) return; + if (ec_fsm_sii_exec(&fsm->fsm_sii)) return; if (!ec_fsm_sii_success(&fsm->fsm_sii)) { fsm->slave->error_flag = 1; @@ -1326,10 +1295,7 @@ ec_slave_t *slave = fsm->slave; uint16_t *cat_word, cat_type, cat_size; - // execute SII state machine - ec_fsm_sii_exec(&fsm->fsm_sii); - - if (ec_fsm_sii_running(&fsm->fsm_sii)) return; + if (ec_fsm_sii_exec(&fsm->fsm_sii)) return; if (!ec_fsm_sii_success(&fsm->fsm_sii)) { fsm->slave->error_flag = 1; @@ -1446,9 +1412,7 @@ const ec_sii_sync_t *sync; ec_sii_sync_t mbox_sync; - ec_fsm_change_exec(&fsm->fsm_change); // execute state change state machine - - if (ec_fsm_change_running(&fsm->fsm_change)) return; + if (ec_fsm_change_exec(&fsm->fsm_change)) return; if (!ec_fsm_change_success(&fsm->fsm_change)) { slave->error_flag = 1; @@ -1571,9 +1535,7 @@ ec_datagram_t *datagram = &fsm->datagram; unsigned int j; - ec_fsm_change_exec(&fsm->fsm_change); // execute state change state machine - - if (ec_fsm_change_running(&fsm->fsm_change)) return; + if (ec_fsm_change_exec(&fsm->fsm_change)) return; if (!ec_fsm_change_success(&fsm->fsm_change)) { slave->error_flag = 1; @@ -1708,9 +1670,7 @@ ec_master_t *master = fsm->master; ec_slave_t *slave = fsm->slave; - ec_fsm_change_exec(&fsm->fsm_change); // execute state change state machine - - if (ec_fsm_change_running(&fsm->fsm_change)) return; + if (ec_fsm_change_exec(&fsm->fsm_change)) return; if (!ec_fsm_change_success(&fsm->fsm_change)) { fsm->slave->error_flag = 1; @@ -1750,9 +1710,7 @@ ec_master_t *master = fsm->master; ec_slave_t *slave = fsm->slave; - ec_fsm_change_exec(&fsm->fsm_change); // execute state change state machine - - if (ec_fsm_change_running(&fsm->fsm_change)) return; + if (ec_fsm_change_exec(&fsm->fsm_change)) return; if (!ec_fsm_change_success(&fsm->fsm_change)) { slave->error_flag = 1;