#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

@ -26,7 +26,9 @@ type pingvinCoil struct {
type PingvinKL struct {
Coils []pingvinCoil
Registers []pingvinRegister
Status pingvinStatus
buslock *sync.Mutex
statuslock *sync.Mutex
}
// single register data
@ -53,7 +55,7 @@ type pingvinVentInfo struct {
extractHum48h int `json:"extract_hum_48h"`
}
type PingvinStatus struct {
type pingvinStatus struct {
HeaterPct int `json:"heater_pct"`
HrcPct int `json:"hrc_pct"`
TempSetting int `json:"temp_setting"`
@ -77,13 +79,17 @@ func newCoil(address string, symbol string, description string) pingvinCoil {
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)
if err != nil {
log.Fatal("newRegister: Atio: ")
}
multipl, err := strconv.Atoi(multiplier)
if err != nil {
log.Fatal("newRegister: Atio: ")
}
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
}
@ -245,7 +251,7 @@ func New() PingvinKL {
registerData := readCsvLines("registers.csv")
for i := 0; i < len(registerData); i++ {
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")
return pingvin