gh-24 WriteRegister uses common modbus.Client
This commit is contained in:
parent
d0d26d346a
commit
c79f172f32
|
@ -216,23 +216,18 @@ func (p *PingvinKL) ReadRegister(addr uint16) (int, error) {
|
||||||
return p.Registers[addr].Value, nil
|
return p.Registers[addr].Value, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Update a single holding register
|
||||||
func (p *PingvinKL) WriteRegister(addr uint16, value uint16) (uint16, error) {
|
func (p *PingvinKL) WriteRegister(addr uint16, value uint16) (uint16, error) {
|
||||||
// handler := p.getHandler()
|
_, err := p.modbusclient.WriteSingleRegister(addr, value)
|
||||||
p.buslock.Lock()
|
|
||||||
defer p.buslock.Unlock()
|
|
||||||
err := p.handler.Connect()
|
|
||||||
if err != nil {
|
|
||||||
log.Println("ERROR: WriteRegister:", err)
|
|
||||||
return 0, err
|
|
||||||
}
|
|
||||||
defer p.handler.Close()
|
|
||||||
// client := modbus.NewClient(handler)
|
|
||||||
_, err = p.modbusclient.WriteSingleRegister(addr, value)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Println("ERROR: WriteRegister:", err)
|
log.Println("ERROR: WriteRegister:", err)
|
||||||
return 0, err
|
return 0, err
|
||||||
}
|
}
|
||||||
val, err := p.ReadRegister(addr)
|
val, err := p.ReadRegister(addr)
|
||||||
|
if err != nil {
|
||||||
|
log.Println("ERROR: WriteRegister:", err)
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
if val == int(value) {
|
if val == int(value) {
|
||||||
return value, nil
|
return value, nil
|
||||||
}
|
}
|
||||||
|
@ -306,7 +301,6 @@ func (p *PingvinKL) Update() {
|
||||||
p.updateCoils()
|
p.updateCoils()
|
||||||
p.updateRegisters()
|
p.updateRegisters()
|
||||||
p.populateStatus()
|
p.populateStatus()
|
||||||
log.Println(p.Status)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p PingvinKL) ReadCoil(n uint16) []byte {
|
func (p PingvinKL) ReadCoil(n uint16) []byte {
|
||||||
|
|
Loading…
Reference in New Issue