Merge branch 'test-rescan-fix' into 'stable-1.5'

Retry responding slaves datagram; more robust to timeouts.

See merge request etherlab.org/ethercat!18
This commit is contained in:
Florian Pose
2021-06-04 08:38:28 +00:00

View File

@@ -242,6 +242,7 @@ void ec_fsm_master_state_start(
ec_datagram_brd(fsm->datagram, 0x0130, 2);
ec_datagram_zero(fsm->datagram);
fsm->datagram->device_index = fsm->dev_idx;
fsm->retries = EC_FSM_RETRIES;
fsm->state = ec_fsm_master_state_broadcast;
}
@@ -260,6 +261,10 @@ void ec_fsm_master_state_broadcast(
ec_slave_t *slave;
ec_master_t *master = fsm->master;
if (datagram->state == EC_DATAGRAM_TIMED_OUT && fsm->retries--) {
return;
}
// bus topology change?
if (datagram->working_counter != fsm->slaves_responding[fsm->dev_idx]) {
fsm->rescan_required = 1;