From 152290f5a3dd738978a91b9be6b0373efe9c716d Mon Sep 17 00:00:00 2001 From: Rahix Date: Sun, 10 Nov 2024 06:33:20 +0100 Subject: [PATCH] succd: Fix -KEC1 relay board updates The accesses to -KEC1 always time out on the attempt to update the output values. We noticed that this is related to the timing between the reading of the inputs and the following write to the outputs. Fix -KEC1 accesses by waiting before sending the next request to the board after receiving the reply for the previous one. --- succbone/succd/modbus.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/succbone/succd/modbus.go b/succbone/succd/modbus.go index a4d05e0..70fa22f 100644 --- a/succbone/succd/modbus.go +++ b/succbone/succd/modbus.go @@ -101,6 +101,11 @@ func (d *daemon) modbusUpdate() { // TODO: Input mapping goes here } + // We must wait between reading and writing to the -KEC1 relay board + // because otherwise it chokes and times out the write registers + // command. + time.Sleep(time.Millisecond * 10) + // KFA1-KFA8 var relayState [8]bool d.mu.Lock()