#9 Go: Get single coil
This commit is contained in:
parent
7a8a7ec7bb
commit
3fab63f60f
|
@ -1,3 +1,7 @@
|
|||
module github.com/0ranki/enervent-ctrl/enervent-ctrl-go
|
||||
|
||||
go 1.18
|
||||
|
||||
require github.com/goburrow/modbus v0.1.0
|
||||
|
||||
require github.com/goburrow/serial v0.1.0 // indirect
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
github.com/goburrow/modbus v0.1.0 h1:DejRZY73nEM6+bt5JSP6IsFolJ9dVcqxsYbpLbeW/ro=
|
||||
github.com/goburrow/modbus v0.1.0/go.mod h1:Kx552D5rLIS8E7TyUwQ/UdHEqvX5T8tyiGBTlzMcZBg=
|
||||
github.com/goburrow/serial v0.1.0 h1:v2T1SQa/dlUqQiYIT8+Cu7YolfqAi3K96UmhwYyuSrA=
|
||||
github.com/goburrow/serial v0.1.0/go.mod h1:sAiqG0nRVswsm1C97xsttiYCzSLBmUZ/VSlVLZJ8haA=
|
|
@ -1,11 +1,17 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"time"
|
||||
|
||||
"github.com/0ranki/enervent-ctrl/enervent-ctrl-go/pingvinKL"
|
||||
)
|
||||
|
||||
func main() {
|
||||
log.Println(time.Now())
|
||||
pingvin := pingvinKL.New()
|
||||
// fmt.Println(pingvin.Coils)
|
||||
print(pingvin.Coils[1].Description)
|
||||
log.Println(time.Now())
|
||||
fmt.Println(pingvin.ReadCoil(40))
|
||||
log.Println(time.Now())
|
||||
}
|
||||
|
|
|
@ -5,6 +5,9 @@ import (
|
|||
"log"
|
||||
"os"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/goburrow/modbus"
|
||||
)
|
||||
|
||||
// single coil data
|
||||
|
@ -46,6 +49,38 @@ func readCsvLines(file string) [][]string {
|
|||
return data
|
||||
}
|
||||
|
||||
// Configure the modbus client on creation
|
||||
func (p PingvinKL) getHandler() *modbus.RTUClientHandler {
|
||||
// TODO: read configuration from file, hardcoded for now
|
||||
handler := modbus.NewRTUClientHandler("/dev/ttyS0")
|
||||
handler.BaudRate = 19200
|
||||
handler.DataBits = 8
|
||||
handler.Parity = "N"
|
||||
handler.StopBits = 1
|
||||
handler.SlaveId = 1
|
||||
handler.Timeout = 200 * time.Millisecond
|
||||
return handler
|
||||
}
|
||||
|
||||
func (p PingvinKL) Update() {
|
||||
// coildata, err := p.Client.ReadCoils(0, len(p.Coils))
|
||||
}
|
||||
|
||||
func (p PingvinKL) ReadCoil(n uint16) []byte {
|
||||
handler := p.getHandler()
|
||||
err := handler.Connect()
|
||||
if err != nil {
|
||||
log.Fatal("ReadCoil1: ", err)
|
||||
}
|
||||
defer handler.Close()
|
||||
client := modbus.NewClient(handler)
|
||||
results, err := client.ReadCoils(n, 1)
|
||||
if err != nil {
|
||||
log.Fatal("ReadCoil2: ", err)
|
||||
}
|
||||
return results
|
||||
}
|
||||
|
||||
// create a PingvinKL struct, read coils and registers from CSVs
|
||||
func New() PingvinKL {
|
||||
pingvin := PingvinKL{}
|
||||
|
@ -55,81 +90,3 @@ func New() PingvinKL {
|
|||
}
|
||||
return pingvin
|
||||
}
|
||||
|
||||
// func New() PingvinKL {
|
||||
// pingvin := PingvinKL{}
|
||||
// // var Coils []pingvinCoil
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("COIL_STOP", "Stop"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("COIL_AWAY", "Away mode"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("COIL_AWAY_L", "Away Long mode"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("COIL_MAX_H", "Max Heating"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("COIL_MAX_C", "Max Cooling"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("COIL_CO_BOOST_EN", "CO2 boost"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("COIL_RH_BOOST_EN", "Relative humidity boost"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("COIL_M_BOOST", "Manual boost 100%"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("COIL_TEMP_BOOST_EN", "Temperature boost"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("COIL_SNC", "Summer night cooling"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("COIL_AWAY_H", "Heating enabled/disabled in AWAY mode"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("COIL_AWAY_C", "Cooling enabled/disabled in AWAY mode"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("COIL_LTO_ON", "Heat recycler state (running=1, stopped = 0)"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("COIL_HEAT_ON", "After heater element state (On = 1, Off = 0)"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("COIL_TEMP_DECREASE", "Temperature decrease function"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("COIL_OVERTIME", "Programmatic equivalent of OVERTIME digital input"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("COIL_ECO_MODE", "Eco mode"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("COIL_ALARM_A", "Alarm of class A active"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("COIL_ALARM_B", "Alarm of class B active"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("COIL_CLK_PROG", "Clock program is currently active"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("COIL_SILENT_MODE", "Silent mode"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("COIL_STOP_SLP_COOLING", "Electrical heater cool-off function enabled when the machine has stopped"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("COIL_SERVICE_EN", "Service reminder"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("COIL_COOLING_EN", "Active cooling function enabled"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("COIL_LTO_EN", "N/A"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("COIL_HEATING_EN", "Active heating function enabled"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("COIL_LTO_DEFROST_EN", "HRC defrosting function enabled during winter season"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// pingvin.Coils = append(pingvin.Coils, newCoil("-", "-"))
|
||||
// return pingvin
|
||||
// }
|
||||
|
|
Loading…
Reference in New Issue