From ff9db3587436de27c0e0ebf1ae99ae47b4043685 Mon Sep 17 00:00:00 2001 From: Florian Pose Date: Tue, 1 Jun 2021 16:53:06 +0200 Subject: [PATCH] Retry responding slaves datagram; more robust to timeouts. --- master/fsm_master.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/master/fsm_master.c b/master/fsm_master.c index c178756e..9b07796e 100644 --- a/master/fsm_master.c +++ b/master/fsm_master.c @@ -252,6 +252,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; } @@ -270,6 +271,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;