Proxy: match function codes when writing holding registers or coils (#6765)

This commit is contained in:
andig 2023-03-10 21:41:50 +01:00 • committed by GitHub
parent ecd8648260
commit c3e98c83d8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 6 additions and 6 deletions

View file

@ -103,7 +103,7 @@ func (h *handler) HandleCoils(req *mbserver.CoilsRequest) ([]bool, error) {
return nil, mbserver.ErrIllegalFunction
}
if req.Quantity == 1 {
if req.WriteFuncCode == gridx.FuncCodeWriteSingleCoil {
h.log.TRACE.Printf("write coil: id %d addr %d val %t", req.UnitId, req.Addr, req.Args[0])
var u uint16
if req.Args[0] {
@ -137,8 +137,8 @@ func (h *handler) HandleHoldingRegisters(req *mbserver.HoldingRegistersRequest)
return nil, mbserver.ErrIllegalFunction
}
if req.Quantity == 1 {
h.log.TRACE.Printf("write holding: id %d addr %d val %0x", req.UnitId, req.Addr, req.Args[0])
if req.WriteFuncCode == gridx.FuncCodeWriteSingleRegister {
h.log.TRACE.Printf("write single holding: id %d addr %d val %04x", req.UnitId, req.Addr, req.Args[0])
b, err := h.conn.WriteSingleRegisterWithSlave(req.UnitId, req.Addr, req.Args[0])
return h.exceptionToUint16AndError("write holding", b, err)
}