• The two modes are complementary, MODBUS_ERROR_RECOVERY_LINK handles
    errors at data link level (bad file descriptor, timeout, etc) and
    MODBUS_ERROR_RECOVERY_PROTOCOL checks Modbus error (eg. invalid
    function code or trame length).
    
    This change introduces the use of the Sleep function for Windows.
    Some duplicated code has been moved from backends to modbus core.
    A new debug message is now available when a flush occurs.
    
    The unit tests are now based on this error recovery code.
    Stéphane Raimbault authored
     
    Browse File »







  • Inspired by the branch ff/ipv6 of Florian Forster but this version uses
    a specific PI backend to isolate the IPv4 and IPv6 implementations.
    
    The existing TCP/IPv4 implementation has been kept intact (not rebased
    on the PI one) because its data backend requires fewer bytes than the PI.
    
    New functions modbus_new_tcp_pi, modbus_tcp_pi_listen and
    modbus_tcp_pi_accept and new backend called modbus_tcp_pi_t.
    Stéphane Raimbault authored
     
    Browse File »

  • In modbus-tcp.c:
    - Needed to include <signal.h>
    - Added Jay's fix for __OpenBSD__
    - SIGPIPE ignore handler needs to return a pointer instead of an integer.
    
    Patch provided bu Barry Grumbine and Jason Oster.
    Stéphane Raimbault authored
     
    Browse File »


  • Reported by Antti Manninen and according to Page6 in the document
    "MODBUS Messaging on TCP/IP Implementation Guide V1.0b",
    ------------------------
    Unit Identifier – 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.
    ------------------------
    Stéphane Raimbault authored
     
    Browse File »

  • The goal of this rewriting is to avoid the timeouts on the receiving
    of exceptions and to be more robust on bad requests. Some devices
    use the exception MODBUS_EXCEPTION_ACKNOWLEDGE to response to some
    valid requests, so in this case, you'll really appreciate this
    change!
    
    - Slower! More system calls are used.
    - The code is cleaner and easier to understand.
    - Really faster when an exception occurs.
    - Fix unit test of bad request in RTU
    Stéphane Raimbault authored
     
    Browse File »