#6 Include raw data multiplier in register struct

This commit is contained in:
Jarno Rankinen 2023-02-18 21:06:02 +02:00
parent 337581be66
commit 960c29fbf4
1 changed files with 13 additions and 7 deletions

View File

@ -24,9 +24,11 @@ type pingvinCoil struct {
// unit modbus data // unit modbus data
type PingvinKL struct { type PingvinKL struct {
Coils []pingvinCoil Coils []pingvinCoil
Registers []pingvinRegister Registers []pingvinRegister
buslock *sync.Mutex Status pingvinStatus
buslock *sync.Mutex
statuslock *sync.Mutex
} }
// single register data // single register data
@ -53,7 +55,7 @@ type pingvinVentInfo struct {
extractHum48h int `json:"extract_hum_48h"` extractHum48h int `json:"extract_hum_48h"`
} }
type PingvinStatus struct { type pingvinStatus struct {
HeaterPct int `json:"heater_pct"` HeaterPct int `json:"heater_pct"`
HrcPct int `json:"hrc_pct"` HrcPct int `json:"hrc_pct"`
TempSetting int `json:"temp_setting"` TempSetting int `json:"temp_setting"`
@ -77,13 +79,17 @@ func newCoil(address string, symbol string, description string) pingvinCoil {
return coil return coil
} }
func newRegister(address string, symbol string, typ string, description string) pingvinRegister { func newRegister(address, symbol, typ, multiplier, description string) pingvinRegister {
addr, err := strconv.Atoi(address) addr, err := strconv.Atoi(address)
if err != nil { if err != nil {
log.Fatal("newRegister: Atio: ") log.Fatal("newRegister: Atio: ")
} }
multipl, err := strconv.Atoi(multiplier)
if err != nil {
log.Fatal("newRegister: Atio: ")
}
reserved := symbol == "Reserved" && description == "Reserved" reserved := symbol == "Reserved" && description == "Reserved"
register := pingvinRegister{addr, symbol, 0, "00000000", typ, description, reserved} register := pingvinRegister{addr, symbol, 0, "00000000", typ, description, reserved, multipl}
return register return register
} }
@ -245,7 +251,7 @@ func New() PingvinKL {
registerData := readCsvLines("registers.csv") registerData := readCsvLines("registers.csv")
for i := 0; i < len(registerData); i++ { for i := 0; i < len(registerData); i++ {
pingvin.Registers = append(pingvin.Registers, pingvin.Registers = append(pingvin.Registers,
newRegister(registerData[i][0], registerData[i][1], registerData[i][2], registerData[i][6])) newRegister(registerData[i][0], registerData[i][1], registerData[i][2], registerData[i][3], registerData[i][6]))
} }
log.Println("Parsed", len(pingvin.Registers), "registers") log.Println("Parsed", len(pingvin.Registers), "registers")
return pingvin return pingvin