master/fsm.c
changeset 426 0d3022ee35a2
parent 425 d36808888817
child 427 f70c7c6db7f4
equal deleted inserted replaced
425:d36808888817 426:0d3022ee35a2
   927 void ec_fsm_master_scan_slaves(ec_fsm_t *fsm /**< finite state machine */)
   927 void ec_fsm_master_scan_slaves(ec_fsm_t *fsm /**< finite state machine */)
   928 {
   928 {
   929     ec_master_t *master = fsm->master;
   929     ec_master_t *master = fsm->master;
   930     ec_slave_t *slave = fsm->slave;
   930     ec_slave_t *slave = fsm->slave;
   931 
   931 
   932 
       
   933     fsm->slave_state(fsm); // execute slave state machine
   932     fsm->slave_state(fsm); // execute slave state machine
   934 
   933 
   935     if (fsm->slave_state != ec_fsm_end
   934     if (fsm->slave_state != ec_fsm_end
   936         && fsm->slave_state != ec_fsm_error) return;
   935         && fsm->slave_state != ec_fsm_error) return;
   937 
   936 
  1040     ec_master_t *master = fsm->master;
  1039     ec_master_t *master = fsm->master;
  1041 
  1040 
  1042     fsm->coe_state(fsm); // execute CoE state machine
  1041     fsm->coe_state(fsm); // execute CoE state machine
  1043 
  1042 
  1044     if (fsm->coe_state == ec_fsm_error) {
  1043     if (fsm->coe_state == ec_fsm_error) {
  1045         fsm->slave->error_flag = 1;
  1044         fsm->master_state = ec_fsm_master_start;
  1046         fsm->slave_state = ec_fsm_error;
  1045         fsm->master_state(fsm); // execute immediately
  1047         return;
  1046         return;
  1048     }
  1047     }
  1049 
  1048 
  1050     if (fsm->coe_state != ec_fsm_end) return;
  1049     if (fsm->coe_state != ec_fsm_end) return;
  1051 
  1050