Retry responding slaves datagram; more robust to timeouts.

This commit is contained in:
Florian Pose
2021-06-01 16:53:06 +02:00
parent 6d37c445ab
commit 94f2fa860f

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;