diff --git a/master/fsm_slave.c b/master/fsm_slave.c index 451f06c5ddd1d7913fe8c118c6c6822e4491894b..a7f8dd7442c0375ff66976102894c09818c2ed39 100644 --- a/master/fsm_slave.c +++ b/master/fsm_slave.c @@ -920,7 +920,7 @@ void ec_fsm_slave_conf_state_fmmu(ec_fsm_slave_t *fsm /**< slave state machine * ec_slave_t *slave = fsm->slave; if (datagram->state == EC_DATAGRAM_TIMED_OUT && fsm->retries--) { - ec_master_queue_datagram(fsm->slave->master, datagram); + ec_master_queue_datagram(slave->master, datagram); return; } @@ -928,21 +928,15 @@ void ec_fsm_slave_conf_state_fmmu(ec_fsm_slave_t *fsm /**< slave state machine * fsm->state = ec_fsm_slave_state_error; EC_ERR("Failed to receive FMMUs datagram for slave %i" " (datagram state %i).\n", - fsm->slave->ring_position, datagram->state); + slave->ring_position, datagram->state); return; } if (datagram->working_counter != 1) { - fsm->slave->error_flag = 1; + slave->error_flag = 1; fsm->state = ec_fsm_slave_state_error; EC_ERR("Failed to set FMMUs - slave %i did not respond.\n", - fsm->slave->ring_position); - return; - } - - // No CoE configuration to be applied? Jump to SAVEOP state. - if (list_empty(&slave->sdo_confs)) { // skip SDO configuration - ec_fsm_slave_conf_enter_saveop(fsm); + slave->ring_position); return; } @@ -958,6 +952,7 @@ void ec_fsm_slave_conf_enter_sdoconf(ec_fsm_slave_t *fsm /**< slave state machin { ec_slave_t *slave = fsm->slave; + // No CoE configuration to be applied? Jump to SAVEOP state. if (list_empty(&slave->sdo_confs)) { // skip SDO configuration ec_fsm_slave_conf_enter_saveop(fsm); return;