• According to the Modbus standard, the unit identifier is choosen by the
    TCP client and can be any value:
    
    "This field is used for intra-system routing purpose.  It is typically
    used to communicate to a MODBUS+ or a MODBUS serial line slave through a
    gateway between an Ethernet TCP-IP network and a MODBUS serial line.
    This field is set by the MODBUS Client in the request and must be returned
    with the same value in the response by the server."
    
    So the current check in modbus_reply must be extended to check whether
    we are in a RTU or TCP context.
    
    Also the unit-test has to be adjusted.
    
    Signed-off-by: Michael Heimpold <mhei@heimpold.de>
    Michael Heimpold authored
     
    Browse File »





  • This allows to place the coils/registers at any virtual
    start address, not only at address 0. This can be useful e.g.
    when the server has to fulfill a specification in which
    registers are expected at predefined locations.
    
    Signed-off-by: Michael Heimpold <mhei@heimpold.de>
    Michael Heimpold authored
     
    Browse File »



  • Stéphane Raimbault authored
     
    Browse File »
  • According to the Modbus specification
    (http://www.modbus.org/docs/Modbus_over_serial_line_V1_02.pdf, section 2.1)
    a Modbus RTU master can send a broadcast to all of it's slaves. This
    broadcasts can only be write requests as otherwise collisions could
    occur, eg. on a RS-485 bus.
    
    When receiving such a broadcast, the slave should process the request as
    usual, but must not reply anything, neither a normal response nor an
    exception reply in case of an error.
    
    Adjust the unit test for this case, too.
    
    Signed-off-by: Michael Heimpold <mhei@heimpold.de>
    Michael Heimpold authored
     
    Browse File »
  • Do not allow raw request length longer than the PDU size plus
    the additional requested slave address byte.
    Without this check modbus_send_raw_request could be used to
    trigger a buffer overflow on the stack since the parameter
    is passed unchecked to memcpy.
    
    Thanks to Hanno Neuer for spotting this security flaw.
    
    Signed-off-by: Michael Heimpold <mhei@heimpold.de>
    Michael Heimpold authored
     
    Browse File »

  • This replaces the lengthy license text headers with a short
    and standardized license tag. See http://spdx.org for details.
    
    This is useful e.g. for license compliance tools which scan
    through files and generate a report of the licenses used
    in a project.
    
    Signed-off-by: Michael Heimpold <mhei@heimpold.de>
    Michael Heimpold authored
     
    Browse File »