master/fsm.c
branchstable-1.1
changeset 1717 cc1ee18207d3
parent 1716 9440f4ff25c7
child 1719 42ed27ae6785
equal deleted inserted replaced
1716:9440f4ff25c7 1717:cc1ee18207d3
   162     fsm->master_state(fsm);
   162     fsm->master_state(fsm);
   163 }
   163 }
   164 
   164 
   165 /*****************************************************************************/
   165 /*****************************************************************************/
   166 
   166 
       
   167 /**
       
   168    Initializes the master startup state machine.
       
   169 */
       
   170 
   167 void ec_fsm_startup(ec_fsm_t *fsm)
   171 void ec_fsm_startup(ec_fsm_t *fsm)
   168 {
   172 {
   169     fsm->master_state = ec_fsm_startup_start;
   173     fsm->master_state = ec_fsm_startup_start;
   170 }
   174 }
   171 
   175 
   172 /*****************************************************************************/
   176 /*****************************************************************************/
   173 
   177 
   174 int ec_fsm_startup_running(ec_fsm_t *fsm)
   178 /**
       
   179    Returns the running state of the master startup state machine.
       
   180    \return non-zero if not terminated yet.
       
   181 */
       
   182 
       
   183 int ec_fsm_startup_running(ec_fsm_t *fsm /**< Finite state machine */)
   175 {
   184 {
   176     return fsm->master_state != ec_fsm_end &&
   185     return fsm->master_state != ec_fsm_end &&
   177         fsm->master_state != ec_fsm_error;
   186         fsm->master_state != ec_fsm_error;
   178 }
   187 }
   179 
   188 
   180 /*****************************************************************************/
   189 /*****************************************************************************/
   181 
   190 
   182 int ec_fsm_startup_success(ec_fsm_t *fsm)
   191 /**
       
   192    Returns, if the master startup state machine terminated with success.
       
   193    \return non-zero if successful.
       
   194 */
       
   195 
       
   196 int ec_fsm_startup_success(ec_fsm_t *fsm /**< Finite state machine */)
   183 {
   197 {
   184     return fsm->master_state == ec_fsm_end;
   198     return fsm->master_state == ec_fsm_end;
   185 }
   199 }
   186 
   200 
   187 /*****************************************************************************/
   201 /*****************************************************************************/
   188 
   202 
       
   203 /**
       
   204    Initializes the master configuration state machine.
       
   205 */
       
   206 
   189 void ec_fsm_configuration(ec_fsm_t *fsm)
   207 void ec_fsm_configuration(ec_fsm_t *fsm)
   190 {
   208 {
   191     fsm->master_state = ec_fsm_configuration_start;
   209     fsm->master_state = ec_fsm_configuration_start;
   192 }
   210 }
   193 
   211 
   194 /*****************************************************************************/
   212 /*****************************************************************************/
   195 
   213 
   196 int ec_fsm_configuration_running(ec_fsm_t *fsm)
   214 /**
       
   215    Returns the running state of the master configuration state machine.
       
   216    \return non-zero if not terminated yet.
       
   217 */
       
   218 
       
   219 int ec_fsm_configuration_running(ec_fsm_t *fsm /**< Finite state machine */)
   197 {
   220 {
   198     return fsm->master_state != ec_fsm_end &&
   221     return fsm->master_state != ec_fsm_end &&
   199         fsm->master_state != ec_fsm_error;
   222         fsm->master_state != ec_fsm_error;
   200 }
   223 }
   201 
   224 
   202 /*****************************************************************************/
   225 /*****************************************************************************/
   203 
   226 
   204 int ec_fsm_configuration_success(ec_fsm_t *fsm)
   227 /**
       
   228    Returns, if the master confuguration state machine terminated with success.
       
   229    \return non-zero if successful.
       
   230 */
       
   231 
       
   232 int ec_fsm_configuration_success(ec_fsm_t *fsm /**< Finite state machine */)
   205 {
   233 {
   206     return fsm->master_state == ec_fsm_end;
   234     return fsm->master_state == ec_fsm_end;
   207 }
   235 }
   208 
   236 
   209 /******************************************************************************
   237 /******************************************************************************
   324 }
   352 }
   325 
   353 
   326 /******************************************************************************
   354 /******************************************************************************
   327  *  master configuration state machine
   355  *  master configuration state machine
   328  *****************************************************************************/
   356  *****************************************************************************/
       
   357 
       
   358 /**
       
   359    Master configuration state machine: START.
       
   360 */
   329 
   361 
   330 void ec_fsm_configuration_start(ec_fsm_t *fsm /**< finite state machine */)
   362 void ec_fsm_configuration_start(ec_fsm_t *fsm /**< finite state machine */)
   331 {
   363 {
   332     ec_master_t *master = fsm->master;
   364     ec_master_t *master = fsm->master;
   333 
   365