jlibmodbus
jlibmodbus copied to clipboard
ModbusNumberException for valid value
I encountered a strange error which seemed like it cannot occur. This is in version 1.2.9.2. Stack trace below. I get a ModbusNumberException for value "4112". However in WriteSingleRegisterResponse.setValue, the value is first cast to a short and and'ed with 0xffff. Then the checkValue makes sure its within the range 0 to 65535. Clearly 4112 passes that check so I can't understand why the exception is being thrown.
com.intelligt.modbus.jlibmodbus.exception.ModbusNumberException: Error in register value : 4112 at com.intelligt.modbus.jlibmodbus.msg.response.WriteSingleRegisterResponse.setValue(WriteSingleRegisterResponse.java:71) at com.intelligt.modbus.jlibmodbus.msg.response.WriteSingleRegisterResponse.readValue(WriteSingleRegisterResponse.java:44) at com.intelligt.modbus.jlibmodbus.msg.base.AbstractWriteResponse.readResponse(AbstractWriteResponse.java:46) at com.intelligt.modbus.jlibmodbus.msg.base.ModbusResponse.readPDU(ModbusResponse.java:65) at com.intelligt.modbus.jlibmodbus.msg.base.ModbusMessage.read(ModbusMessage.java:54) at com.intelligt.modbus.jlibmodbus.net.transport.ModbusTransport.createMessage(ModbusTransport.java:55) at com.intelligt.modbus.jlibmodbus.net.transport.ModbusTransportSerial.read(ModbusTransportSerial.java:45) at com.intelligt.modbus.jlibmodbus.net.transport.ModbusTransport.readMessage(ModbusTransport.java:69) at com.intelligt.modbus.jlibmodbus.net.transport.ModbusTransport.readResponse(ModbusTransport.java:64) at com.intelligt.modbus.jlibmodbus.master.ModbusMaster.readResponse(ModbusMaster.java:111) at com.intelligt.modbus.jlibmodbus.master.ModbusMaster.processRequest(ModbusMaster.java:134)