From ea8ca1a6dfe2e76025a4d1b0fd4b5d65d84f66a5 Mon Sep 17 00:00:00 2001 From: Jarno Rankinen Date: Thu, 7 Mar 2024 22:38:18 +0200 Subject: [PATCH] Don't exit on max retries in updateRegisters --- main.go | 2 +- pingvin/pingvin.go | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/main.go b/main.go index 0161898..527374f 100644 --- a/main.go +++ b/main.go @@ -25,7 +25,7 @@ import ( var static embed.FS var ( - version = "0.1.0" + version = "0.1.1" device pingvin.Pingvin config Conf usernamehash [32]byte diff --git a/pingvin/pingvin.go b/pingvin/pingvin.go index 76d9d4a..37a660f 100644 --- a/pingvin/pingvin.go +++ b/pingvin/pingvin.go @@ -310,11 +310,12 @@ func (p *Pingvin) updateRegisters() { if len(results) > 0 { break } else if retries == 4 { - log.Fatal("updateRegisters: client.ReadHoldingRegisters: ", err) + log.Printf("ERROR: updateRegisters: max retries reached, giving up. client.ReadHoldingRegisters: ", err) + return } else if err != nil { log.Printf("WARNING: updateRegisters: client.ReadHoldingRegisters attempt %d: %s", retries, err) } - time.Sleep(100 * time.Millisecond) + time.Sleep(200 * time.Millisecond) } // The values represent 16 bit integers, but modbus works with bytes // Each even byte of the returned []byte is the 8 MSBs of a new 16-bit