-
The function name was confusing because the write operation is performed before the read. Take care to swap the arguments in the migration process.
-
Avoid incompatibility with GPLv2 program. This change has been approved by Tobias Doerffel, Florian octo Forster and Hannu Vuolasaho.
-
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.
-
The following functions have been renamed: - modbus_get_timeout_begin -> modbus_get_response_timeout - modbus_set_timeout_begin -> modbus_set_response_timeout - modbus_get_timeout_end -> modbus_get_byte_timeout - modbus_set_timeout_end -> modbus_set_byte_timeout The meaning of these timeout intervals is now clearer. The documentation has been updated.
-
These new functions seem clearer than the recent modbus_receive_from function IHMO. This change fixes the bandwidth-server-many-up program.
-
Split the original modbus_receive function in two functions to avoid the strange -1 value to ignore the sockfd argument.
-
The arguments are surrounded by parentheses to be evaluated first.
-
The _modbus_receive_confirmation()_ function shall receive a request via the socket of the context 'ctx'. This function must be used for debugging purposes because the received response isn't checked against the initial request. This function can be convenient to receive request not handled by the library.
-
The _modbus_send_raw_request()_ function shall send a request via the socket of the context 'ctx'. This function must be used for debugging purposes because you have to take care to make a valid request by hand. The function only adds to the message, the header or CRC of the selected backend, so 'raw_req' must start and contain at least a slave/unit identifier and a function code. This function can be used to send request not handled by the library.
-
Reported by Allan Cornet.
-
Contributed by Dominic Storey. - new function modbus_reply_exception - unit test
-
- MODBUS_GET_INT32_FROM_INT16 - MODBUS_GET_INT16_FROM_INT8 - MODBUS_SET_INT16_TO_INT8 - check the trame length before indexing in unit-test-server
-
- new public function - change unit-test-server.c to be transport layer independant (query and header_length)
-
Reported by Ivan Giuliani <giuliani.v@gmail.com> It was not possible to use libmodbus outside of projects without config.h file. The inclusion has been removed from the public header. Signed-off-by: Stéphane Raimbault <stephane.raimbault@gmail.com>
-
These functions have no meaning in RTU so it's better to specialize the names and remove them from the backend. - remove the functions from the backend - update tests to handle RTU mode (master and slave) - add command line options to tests (rtu or tcp)
-
- move termios header in RTU backend - move TCP headers in TCP backend - use native serial on Win32 for Cygwin - avoid too many defines
-
This change fixes a compilation problem in MinGW. As general rule, each header must be as independent as possible.
-
Added support for native Win32 based on https://code.launchpad.net/~thepyper/libmodbus/win32-native This mainly affects the RTU implementation as the TCP/IP socket interface is the same thanks to the winsocks library. The interface for using the serial port is completely different on Win32 and is now implemented accordingly. Signed-off-by: Stéphane Raimbault <stephane.raimbault@gmail.com>
-
All declarations in modbus-rtu.h and modbus-tcp.h should be inside MODBUS_BEGIN_DECLS and MODBUS_END_DECLS in order to make that functions properly accessible in C++ files. Signed-off-by: Stéphane Raimbault <stephane.raimbault@gmail.com>
-
All private functions and constants are now prefixed by _. The modbus protocol uses entry points to call specific functions.
-
If <sys/time.h> is not included before "modbus.h" as struct timeval is not declared. This behavior was observed while building libmodbus for QNX. Signed-off-by: Matthias Weisser <weisserm@arcor.de>
-
- partial revert of 93ce13656103cbb459ebd630d055a008dbb059f3 - it was a bit confusing to always edit modbus.h.in - the header inclusion still unchanged (<modbus.h>)
-
The library is now simpler to include (only one <modbus.h>) To avoid confusion MB_VERSION defines have been renamed to LIBMODBUS_VERSION.
-
This reverts commit df0cf7927249954f15e0aa85b02d21b990fa9af9. Use <modbus.h> in tests.
-
This time the change is definitive :)
-
- the return value is used to pass the message length - remove the hack on exception check in modbus receive - update tests
-
- adjusts various comments on return values - updated tests - added entry to MIGRATION
-
- new function modbus_flush - new names and values for error defines - finer recovery on error - merge TOO_MANY_DATA and INVALID_DATA - stop unit-test-master at the first error - FLUSH_OR_RECONNECT_ON_ERROR -> FLUSH_OR_CONNECT_ON_ERROR - more precise tests in unit-test-master