diff --git a/master/ethernet.c b/master/ethernet.c index 316dd1309e7eef5a1c6e838fe9472de684537099..0aa75d1fe286ab4f1ceeb2c2e6b180ae093ca0f3 100644 --- a/master/ethernet.c +++ b/master/ethernet.c @@ -362,7 +362,7 @@ void ec_eoe_state_rx_check(ec_eoe_t *eoe /**< EoE handler */) void ec_eoe_state_rx_fetch(ec_eoe_t *eoe /**< EoE handler */) { size_t rec_size, data_size; - uint8_t *data, frame_type, last_fragment, time_appended, mbox_type; + uint8_t *data, frame_type, last_fragment, time_appended, mbox_prot; uint8_t frame_number, fragment_offset, fragment_number; off_t offset; #if EOE_DEBUG_LEVEL > 1 @@ -376,13 +376,13 @@ void ec_eoe_state_rx_fetch(ec_eoe_t *eoe /**< EoE handler */) } if (!(data = ec_slave_mbox_fetch(eoe->slave, &eoe->datagram, - &mbox_type, &rec_size))) { + &mbox_prot, &rec_size))) { eoe->stats.rx_errors++; eoe->state = ec_eoe_state_tx_start; return; } - if (mbox_type != 0x02) { + if (mbox_prot != 0x02) { // EoE eoe->stats.rx_errors++; eoe->state = ec_eoe_state_tx_start; return; diff --git a/master/fsm.c b/master/fsm.c index 6a35929a5b73c524d210cceb13904d0c115c5f7d..7792750714a3bd773e9dd2c0ddecf3a7903c32fe 100644 --- a/master/fsm.c +++ b/master/fsm.c @@ -2142,7 +2142,7 @@ void ec_fsm_coe_down_response(ec_fsm_t *fsm /**< finite state machine */) { ec_datagram_t *datagram = &fsm->datagram; ec_slave_t *slave = fsm->slave; - uint8_t *data, mbox_type; + uint8_t *data, mbox_prot; size_t rec_size; ec_sdo_data_t *sdodata = fsm->sdodata; @@ -2154,18 +2154,14 @@ void ec_fsm_coe_down_response(ec_fsm_t *fsm /**< finite state machine */) } if (!(data = ec_slave_mbox_fetch(slave, datagram, - &mbox_type, &rec_size))) { + &mbox_prot, &rec_size))) { fsm->coe_state = ec_fsm_error; return; } - if (mbox_type != 0x03) { - EC_WARN("Received mailbox protocol 0x%02X as a response." - " Trying again.\n", mbox_type); - fsm->coe_start = get_cycles(); - ec_slave_mbox_prepare_check(slave, datagram); // can not fail. - ec_master_queue_datagram(fsm->master, datagram); - fsm->coe_state = ec_fsm_coe_down_check; + if (mbox_prot != 0x03) { // CoE + EC_WARN("Received mailbox protocol 0x%02X as response.\n", mbox_prot); + fsm->coe_state = ec_fsm_error; return; }