From dbbc22809e83a2d67563f63dc8cd1ae291a3a928 Mon Sep 17 00:00:00 2001 From: Jarno Rankinen Date: Fri, 3 Mar 2023 08:20:49 +0200 Subject: [PATCH] 0.0.10 PinvinKL.Debug.Println, logs debug messages with prefix 'DEBUG:' if debug is enabled --- enervent-ctrl-go/main.go | 2 +- enervent-ctrl-go/pingvinKL/pingvinKL.go | 20 +++++++++++++++----- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/enervent-ctrl-go/main.go b/enervent-ctrl-go/main.go index 9f28286..5157161 100644 --- a/enervent-ctrl-go/main.go +++ b/enervent-ctrl-go/main.go @@ -19,7 +19,7 @@ import ( var static embed.FS var ( - version = "0.0.9" + version = "0.0.10" pingvin pingvinKL.PingvinKL DEBUG = false ) diff --git a/enervent-ctrl-go/pingvinKL/pingvinKL.go b/enervent-ctrl-go/pingvinKL/pingvinKL.go index f4db1eb..af2e4bc 100644 --- a/enervent-ctrl-go/pingvinKL/pingvinKL.go +++ b/enervent-ctrl-go/pingvinKL/pingvinKL.go @@ -29,7 +29,7 @@ type PingvinKL struct { Status pingvinStatus buslock *sync.Mutex statuslock *sync.Mutex - debug bool + Debug PingvinLogger } // single register data @@ -72,6 +72,10 @@ type pingvinStatus struct { SystemTime string `json:"system_time"` // Time and date in unit } +type PingvinLogger struct { + dbg bool +} + var ( // Mutually exclusive coils // Thanks to https://github.com/Jalle19/eda-modbus-bridge @@ -87,6 +91,12 @@ var ( mutexcoils = []uint16{1, 2, 3, 6, 7, 10, 40} ) +func (logger *PingvinLogger) Println(msg string) { + if logger.dbg { + log.Println("DEBUG: ", msg) + } +} + func newCoil(address string, symbol string, description string) pingvinCoil { addr, err := strconv.Atoi(address) if err != nil { @@ -399,7 +409,7 @@ func (p *PingvinKL) WriteCoils(startaddr uint16, quantity uint16, vals []bool) e // -> 0b10100010 bits[i/8] &= ^(1 << uint(i%8)) } - if p.debug { + if p.Debug.dbg { log.Println("index:", i/8, "value:", bits[i/8], "shift:", i%8) } } @@ -495,11 +505,11 @@ func parseStatus(value int) string { func (p *PingvinKL) Monitor(interval int) { for { time.Sleep(time.Duration(interval) * time.Second) - if p.debug { + if p.Debug.dbg { log.Println("DEBUG: Updating values") } p.Update() - if p.debug { + if p.Debug.dbg { log.Println("DEBUG: coils:", p.Coils) log.Println("DEBUG: registers:", p.Registers) } @@ -509,7 +519,7 @@ func (p *PingvinKL) Monitor(interval int) { // create a PingvinKL struct, read coils and registers from CSVs func New(debug bool) PingvinKL { pingvin := PingvinKL{} - pingvin.debug = debug + pingvin.Debug.dbg = debug pingvin.buslock = &sync.Mutex{} log.Println("Parsing coil data...") coilData := readCsvLines("coils.csv")