Initial steps of go implementation, prime coil data from CSV file
This commit is contained in:
parent
f9035d64c7
commit
ddfbc4610d
|
@ -0,0 +1,72 @@
|
|||
0,COIL_STOP,Stop the machine
|
||||
1,COIL_AWAY,Set the machine to away mode
|
||||
2,COIL_AWAYL,Set the machine to away long mode
|
||||
3,-,-
|
||||
4,-,-
|
||||
5,-,-
|
||||
6,COIL_MAX_H,Force the machine to heat at maximum effect.
|
||||
7,COIL_MAX_C,Force the machine to cool at maximum effect.
|
||||
8,COIL_CO2_BOOST_EN,CO2 boosting enabled
|
||||
9,COIL_RH_BOOST_EN,Relative humidity boosting enabled
|
||||
10,COIL_M_BOOST,Boost the fanspeeds to 100% for a period of time
|
||||
11,COIL_TEMP_BOOST_EN,Temperature boosting enabled
|
||||
12,COIL_SNC,Summer night cooling (SNC) function enabled.
|
||||
13,-,-
|
||||
14,-,-
|
||||
15,-,-
|
||||
16,-,-
|
||||
17,-,-
|
||||
18,COIL_AWAY_H,Heating enabled/disabled in AWAY mode
|
||||
19,COIL_AWAY_C,Cooling enabled/disabled in AWAY mode
|
||||
20,-,-
|
||||
21,-,-
|
||||
22,-,-
|
||||
23,-,-
|
||||
24,-,-
|
||||
25,-,-
|
||||
26,-,-
|
||||
27,-,-
|
||||
28,-,-
|
||||
29,-,-
|
||||
30,COIL_LTO_ON,Heat recycler state (running=1, stopped = 0)
|
||||
31,-,-
|
||||
32,COIL_HEAT_ON,After heater element state (On = 1, Off = 0)
|
||||
33,-,-
|
||||
34,-,-
|
||||
35,-,-
|
||||
36,COIL_TEMP_DECREASE,Temperature decrease function desc
|
||||
37,COIL_OVERTIME,Programmatic equivalent of OVERTIME digital input.
|
||||
38,-,Emergency stop switch type desc
|
||||
39,-,-
|
||||
40,COIL_ECO_MODE,Eco mode desc
|
||||
41,COIL_ALARM_A,Alarm of class A active desc
|
||||
42,COIL_ALARM_B,Alarm of class B active desc
|
||||
43,COIL_CLK_PROG,A Clock program is currently active
|
||||
44,-,-
|
||||
45,-,-
|
||||
46,-,-
|
||||
47,COIL_SILENT_MODE,Silent mode desc
|
||||
48,COIL_STOP_SLP_COOLING,Electrical heater cool-off function enabled when the machine has stopped.
|
||||
49,COIL_SERVICE_EN,Service reminder enabled desc
|
||||
50,-,-
|
||||
51,-,-
|
||||
52,COIL_COOLING_EN,Cooling function enabled
|
||||
53,COIL_LTO_EN,Not used on MD.
|
||||
54,COIL_HEATING_EN,Heating function enabled
|
||||
55,COIL_LTO_DEFROST_EN,HRC defrosting function enabled during winter season
|
||||
56,-,-
|
||||
57,-,-
|
||||
58,-,-
|
||||
59,-,-
|
||||
60,-,-
|
||||
61,-,-
|
||||
62,-,-
|
||||
63,-,-
|
||||
64,-,-
|
||||
65,-,-
|
||||
66,-,-
|
||||
67,-,-
|
||||
68,-,-
|
||||
69,-,-
|
||||
70,-,-
|
||||
71,-,-
|
Can't render this file because it has a wrong number of fields in line 31.
|
|
@ -0,0 +1,3 @@
|
|||
module github.com/0ranki/enervent-ctrl/enervent-ctrl-go
|
||||
|
||||
go 1.18
|
|
@ -0,0 +1,11 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"github.com/0ranki/enervent-ctrl/enervent-ctrl-go/pingvinKL"
|
||||
)
|
||||
|
||||
func main() {
|
||||
pingvin := pingvinKL.New()
|
||||
// fmt.Println(pingvin.Coils)
|
||||
print(pingvin.Coils[1].Description)
|
||||
}
|
|
@ -0,0 +1,135 @@
|
|||
package pingvinKL
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"log"
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// single coil data
|
||||
type pingvinCoil struct {
|
||||
Symbol string
|
||||
Value bool
|
||||
Description string
|
||||
Reserved bool
|
||||
}
|
||||
|
||||
func newCoil(symbol string, description string) pingvinCoil {
|
||||
reserved := symbol == "-" && description == "-"
|
||||
coil := pingvinCoil{symbol, false, description, reserved}
|
||||
return coil
|
||||
}
|
||||
|
||||
// unit modbus data
|
||||
type PingvinKL struct {
|
||||
Coils []pingvinCoil
|
||||
}
|
||||
|
||||
// read a CSV file containing data for coils or registers
|
||||
func readCsvLines(file string) [][]string {
|
||||
delim := ","
|
||||
data := [][]string{}
|
||||
csv, err := os.Open(file)
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
defer csv.Close()
|
||||
scanner := bufio.NewScanner(csv)
|
||||
for scanner.Scan() {
|
||||
elements := strings.Split(scanner.Text(), delim)
|
||||
data = append(data, elements)
|
||||
}
|
||||
if err := scanner.Err(); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
return data
|
||||
}
|
||||
|
||||
// create a PingvinKL struct, read coils and registers from CSVs
|
||||
func New() PingvinKL {
|
||||
pingvin := PingvinKL{}
|
||||
coilData := readCsvLines("coils.csv")
|
||||
for i := 0; i < len(coilData); i++ {
|
||||
pingvin.Coils = append(pingvin.Coils, newCoil(coilData[i][1], coilData[i][2]))
|
||||
}
|
||||
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