Fix creating RS485 meters as Sunspec when RTU is not enabled (#977)
This commit is contained in:
parent
36ae214ac2
commit
502f25f017
3 changed files with 7 additions and 4 deletions
|
|
@ -38,6 +38,9 @@ func NewModbusFromConfig(other map[string]interface{}) (api.Meter, error) {
|
|||
Timeout time.Duration
|
||||
}{
|
||||
Power: "Power",
|
||||
Settings: modbus.Settings{
|
||||
ID: 1,
|
||||
},
|
||||
}
|
||||
|
||||
if err := util.DecodeOther(other, &cc); err != nil {
|
||||
|
|
@ -65,7 +68,7 @@ func NewModbusFromConfig(other map[string]interface{}) (api.Meter, error) {
|
|||
conn.Logger(log.TRACE)
|
||||
|
||||
// prepare device
|
||||
device, err := modbus.NewDevice(cc.Model, cc.SubDevice, *cc.RTU)
|
||||
device, err := modbus.NewDevice(cc.Model, cc.SubDevice)
|
||||
|
||||
if err == nil {
|
||||
err = device.Initialize(conn)
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ func NewModbusFromConfig(other map[string]interface{}) (IntProvider, error) {
|
|||
|
||||
// no registered configured - need device
|
||||
if cc.Register.Decode == "" {
|
||||
device, err = modbus.NewDevice(cc.Model, cc.SubDevice, *cc.RTU)
|
||||
device, err = modbus.NewDevice(cc.Model, cc.SubDevice)
|
||||
|
||||
// prepare device
|
||||
if err == nil {
|
||||
|
|
|
|||
|
|
@ -177,8 +177,8 @@ func NewConnection(uri, device, comset string, baudrate int, rtu bool, slaveID u
|
|||
}
|
||||
|
||||
// NewDevice creates physical modbus device from config
|
||||
func NewDevice(model string, subdevice int, isRS485 bool) (device meters.Device, err error) {
|
||||
if isRS485 {
|
||||
func NewDevice(model string, subdevice int) (device meters.Device, err error) {
|
||||
if IsRS485(model) {
|
||||
device, err = rs485.NewDevice(strings.ToUpper(model))
|
||||
} else {
|
||||
device = sunspec.NewDevice(strings.ToUpper(model), subdevice)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue