master/fsm_change.c
changeset 1445 45c5f5560274
parent 1363 11c0b2caa253
child 1822 74e6ac2369f4
equal deleted inserted replaced
1444:45d64e8e3675 1445:45c5f5560274
    35 /*****************************************************************************/
    35 /*****************************************************************************/
    36 
    36 
    37 #include "globals.h"
    37 #include "globals.h"
    38 #include "master.h"
    38 #include "master.h"
    39 #include "fsm_change.h"
    39 #include "fsm_change.h"
       
    40 
       
    41 /*****************************************************************************/
       
    42 
       
    43 /** Timeout while waiting for AL state change [s].
       
    44  */
       
    45 #define EC_AL_STATE_CHANGE_TIMEOUT 2
    40 
    46 
    41 /*****************************************************************************/
    47 /*****************************************************************************/
    42 
    48 
    43 void ec_fsm_change_state_start(ec_fsm_change_t *);
    49 void ec_fsm_change_state_start(ec_fsm_change_t *);
    44 void ec_fsm_change_state_check(ec_fsm_change_t *);
    50 void ec_fsm_change_state_check(ec_fsm_change_t *);
   302         return;
   308         return;
   303     }
   309     }
   304 
   310 
   305     // still old state
   311     // still old state
   306 
   312 
   307     if (datagram->jiffies_received - fsm->jiffies_start >= HZ) { // 1s
   313     if (datagram->jiffies_received - fsm->jiffies_start >=
       
   314             EC_AL_STATE_CHANGE_TIMEOUT * HZ) {
   308         // timeout while checking
   315         // timeout while checking
   309         char state_str[EC_STATE_STRING_SIZE];
   316         char state_str[EC_STATE_STRING_SIZE];
   310         ec_state_string(fsm->requested_state, state_str, 0);
   317         ec_state_string(fsm->requested_state, state_str, 0);
   311         fsm->state = ec_fsm_change_state_error;
   318         fsm->state = ec_fsm_change_state_error;
   312         EC_ERR("Timeout while setting state %s on slave %u.\n",
   319         EC_ERR("Timeout while setting state %s on slave %u.\n",
   511         EC_INFO("Acknowledged state %s on slave %u.\n",
   518         EC_INFO("Acknowledged state %s on slave %u.\n",
   512                 state_str, slave->ring_position);
   519                 state_str, slave->ring_position);
   513         return;
   520         return;
   514     }
   521     }
   515 
   522 
   516     if (datagram->jiffies_received - fsm->jiffies_start >= HZ) { // 1s
   523     if (datagram->jiffies_received - fsm->jiffies_start >=
       
   524             EC_AL_STATE_CHANGE_TIMEOUT * HZ) {
   517         // timeout while checking
   525         // timeout while checking
   518         char state_str[EC_STATE_STRING_SIZE];
   526         char state_str[EC_STATE_STRING_SIZE];
   519         ec_state_string(slave->current_state, state_str, 0);
   527         ec_state_string(slave->current_state, state_str, 0);
   520         fsm->state = ec_fsm_change_state_error;
   528         fsm->state = ec_fsm_change_state_error;
   521         EC_ERR("Timeout while acknowledging state %s on slave %u.\n",
   529         EC_ERR("Timeout while acknowledging state %s on slave %u.\n",