From 7a54e50a3cd11a55eec0e05dd8617e995bd49eb1 Mon Sep 17 00:00:00 2001 From: andig Date: Wed, 24 Nov 2021 09:20:59 +0100 Subject: [PATCH] chore: introduce CoilOn const (#1927) --- charger/phoenix-em-eth.go | 2 +- charger/phoenix-ev-eth.go | 2 +- charger/phoenix-ev-ser.go | 2 +- charger/wallbe.go | 2 +- provider/modbus.go | 3 ++- util/modbus/modbus.go | 12 ++++++------ 6 files changed, 12 insertions(+), 11 deletions(-) diff --git a/charger/phoenix-em-eth.go b/charger/phoenix-em-eth.go index 6a7009b6f..29a61bf1d 100644 --- a/charger/phoenix-em-eth.go +++ b/charger/phoenix-em-eth.go @@ -112,7 +112,7 @@ func (wb *PhoenixEMEth) Enabled() (bool, error) { func (wb *PhoenixEMEth) Enable(enable bool) error { var u uint16 if enable { - u = 0xFF00 + u = modbus.CoilOn } _, err := wb.conn.WriteSingleCoil(phxEMEthRegEnable, u) diff --git a/charger/phoenix-ev-eth.go b/charger/phoenix-ev-eth.go index 0092bc2c4..7e3b8d757 100644 --- a/charger/phoenix-ev-eth.go +++ b/charger/phoenix-ev-eth.go @@ -113,7 +113,7 @@ func (wb *PhoenixEVEth) Enabled() (bool, error) { func (wb *PhoenixEVEth) Enable(enable bool) error { var u uint16 if enable { - u = 0xFF00 + u = modbus.CoilOn } _, err := wb.conn.WriteSingleCoil(phxEVEthRegEnable, u) diff --git a/charger/phoenix-ev-ser.go b/charger/phoenix-ev-ser.go index e08885703..7185d3968 100644 --- a/charger/phoenix-ev-ser.go +++ b/charger/phoenix-ev-ser.go @@ -82,7 +82,7 @@ func (wb *PhoenixEVSer) Enabled() (bool, error) { func (wb *PhoenixEVSer) Enable(enable bool) error { var u uint16 if enable { - u = 0xFF00 + u = modbus.CoilOn } _, err := wb.conn.WriteSingleCoil(phxEVSerRegEnable, u) diff --git a/charger/wallbe.go b/charger/wallbe.go index 240c73620..c968fc776 100644 --- a/charger/wallbe.go +++ b/charger/wallbe.go @@ -143,7 +143,7 @@ func (wb *Wallbe) Enabled() (bool, error) { func (wb *Wallbe) Enable(enable bool) error { var u uint16 if enable { - u = 0xFF00 + u = modbus.CoilOn } _, err := wb.conn.WriteSingleCoil(wbRegEnable, u) diff --git a/provider/modbus.go b/provider/modbus.go index 9ddda64d4..a6fffeb6b 100644 --- a/provider/modbus.go +++ b/provider/modbus.go @@ -10,6 +10,7 @@ import ( "github.com/evcc-io/evcc/util" "github.com/evcc-io/evcc/util/modbus" + gridx "github.com/grid-x/modbus" "github.com/volkszaehler/mbmd/meters" "github.com/volkszaehler/mbmd/meters/rs485" "github.com/volkszaehler/mbmd/meters/sunspec" @@ -256,7 +257,7 @@ func (m *Modbus) IntSetter(param string) func(int64) error { uval := uint16(int64(m.scale) * val) switch op.FuncCode { - case modbus.WriteSingleRegister: + case gridx.FuncCodeWriteSingleRegister: _, err = m.conn.WriteSingleRegister(op.OpCode, uval) default: err = fmt.Errorf("unknown function code %d", op.FuncCode) diff --git a/util/modbus/modbus.go b/util/modbus/modbus.go index 3d8282b76..848305f1d 100644 --- a/util/modbus/modbus.go +++ b/util/modbus/modbus.go @@ -8,20 +8,20 @@ import ( "time" "github.com/evcc-io/evcc/util" + "github.com/grid-x/modbus" "github.com/volkszaehler/mbmd/meters" "github.com/volkszaehler/mbmd/meters/rs485" "github.com/volkszaehler/mbmd/meters/sunspec" ) -// WriteSingleRegister 16-bit wise write access -const WriteSingleRegister = 6 // modbus.FuncCodeWriteSingleRegister - type WireFormat int const ( TcpFormat WireFormat = iota RtuFormat AsciiFormat + + CoilOn uint16 = 0xFF00 ) // Settings contains the ModBus settings @@ -254,11 +254,11 @@ func RegisterOperation(r Register) (rs485.Operation, error) { switch strings.ToLower(r.Type) { case "holding": - op.FuncCode = rs485.ReadHoldingReg + op.FuncCode = modbus.FuncCodeReadHoldingRegisters case "input": - op.FuncCode = rs485.ReadInputReg + op.FuncCode = modbus.FuncCodeReadInputRegisters case "writesingle": - op.FuncCode = WriteSingleRegister // modbus.FuncCodeWriteSingleRegister + op.FuncCode = modbus.FuncCodeWriteSingleRegister default: return rs485.Operation{}, fmt.Errorf("invalid register type: %s", r.Type) }