libmodbus 2.9.5 (2011-06-XX) ============================ - Revert libmodbus licence from LGPLv3 to LGPLv2.1 to avoid incompatibility with GPLv2 program. This change has been approved by Tobias Doerffel, Florian octo Forster and Hannu Vuolasaho. - Enable RS485 support only when available - Export modbus_set/get_serial_mode functions on all platforms - API change for read/write multiple registers function: * modbus_read_and_write_registers -> modbus_write_and_read_registers The function name was confusing because the write operation is performed before the read. Take care to swap the arguments in the migration process. - Documentation of modbus_write_and_read_registers, modbus_mapping_new/free, report_slave_id. modbus_get_byte_from_bits, modbus_set_bits_from_byte(s), modbus_[gs]et_float, modbus_reply and modbus_reply_exception. - Enhanced report slave ID libmodbus 2.9.4 (2011-06-05) ============================ - IPv6 support Make the TCP implementation "protocol independent" by Florian Forster and Stéphane Raimbault. - Fix compilation on Windows 7 (x64) with MinGW/MSYS and GCC 4.5 Reported by Patsy Kaye. - Documentation of libmodbus functions with AsciiDoc (man and HTML) by Stéphane Raimbault - Avoid an iteration in flush function - New functions to send and receive raw requests (modbus_send_raw_request, modbus_receive_confirmation) - Fix flush function of TCP backend on Windows - API changes for server/slave: * modbus_receive doesn't take socket/fd argument anymore * new function modbus_set_socket to set socket/fd - API changes for timeout functions: * 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 - Fix longstanding limitation of server to wait forever - New functions modbus_set/get_serial_mode by Manfred Gruber and Stéphane Raimbault for RS485 communications - Improved recovery mode (see modbus_set_error_recovery documentation) for data link and protocol errors. - Fix compilation issue with Microsoft Visual Studio 2008. Reported by Allan Cornet. libmodbus 2.9.3 (2011-01-14) ============================ - Major rewriting of the message reading (no more timeouts on exception) by Stéphane Raimbault - New function to reply to an indication with an exception message modbus_reply_exception() - New function modbus_get_header_length(modbus_t *ctx) - New functions to manipulate data: * MODBUS_GET_INT32_FROM_INT16 * MODBUS_GET_INT16_FROM_INT8 * MODBUS_SET_INT16_TO_INT8 - Fix GH-2. Read/write were swapped in _FC_READ_AND_WRITE_REGISTERS - Install an ignore handler for SIGPIPE on *BSD Original patch by Jason Oster. - Fix closing of Win32 socket. Reported by Petr Parýzek. - Fix unit identifier not copied by the TCP server. Reported by Antti Manninen. - Fix missing modbus_flush() in unit tests - Fixes for OpenBSD by Barry Grumbine and Jason Oster libmodbus 2.9.2 (2010-12-05) ============================ - Win32 support by Tobias Doerffel - Split source code around RTU and TCP (backends) - Rename modbus_[listen|accept] to modbus_tcp_[listen|accept] - Remove slave argument from modbus_new_rtu() - Check received function code - Fix segfault in bandwidth-server-many-up on inet_ntoa() call - Fix unit test of report slave ID in RTU - Fix GH-3. Remove inclusion of config.h in modbus.h - Correctly detect if we are cross-compiling for win32 by Kirill Smelkov. - Fix setting of the broadcast address libmodbus 2.9.1 (2010-08-16) ============================ - Brand new API (see MIGRATION notes)! - Remove the internal function set_message_length_tcp - Restore slave ID (server ID) argument in functions - Error conventions of POSIX systems and error recover - Parity setting is now a single char ('N', 'E' or 'O') - Report slave ID server side - OpenBSD support by Anibal Limón. - New read and write registers function by Hannu Vuolasaho. - Versioning infrastructure Inspired by the Clutter project and the work done by Florian Forster. - Fix the broadcast constant (255 -> 0) Reported by David Olivari. - Fix #463299 - New functions to define the timeouts of begin and end of trame Original patch by Sisyph (eric-paul). - Fix #591142 - Slave id check should be disabled in TCP connection Reported by aladdinwu. libmodbus 2.1.0 (2010-03-24) ============================ - New API to read and write float values by Stéphane Raimbault and Florian Forster. - New API for slave server (see MIGRATION) - New slave server able to handle multiple connections - Slave only replies to broadcast queries or queries with its slave ID - Improved Modbus protocol conformance - modbus_param_t is smaller (2 int removed) - Better error management and SIGPIPE signal is blocked - Faster - Fix #333455 - Cygwin IPTOS_LOWDELAY not supported on cygwin Reported by Jeff Laughlin and Yishin Li. - Fix #375926 - modbus.c:164: error: `MSG_DONTWAIT' undeclared Reported and tested by Yishin Li. - Fix #378981 - CRC error on RTU response doesn't return negative value Reported by Henrik Munktell. - Fix report slave ID request Patch (bzr) provided by Paul Fertser. - Fix #425604 - Conditional jump or move depends on uninitialised value(s) Occurs on first occurence of slave timeout. Reported by Henrik Munktell. - Fix #457200 - FreeBSD support Patch provided by Norbert Koch. Other changes: - The code is now published and developed on http://github.com/stephane/libmodbus - Waf support has been removed libmodbus 2.0.3 (2009-03-22) ============================ - Fix CRC error when a slave RTU send a response. Thanks to Justin Carroll to have reported and tested my patch. - Remove an assignment in compute_response_length() - Remove duplicate counter in read_io_status() - Fix #274511 reported by 'Kylesch' Invalid error check in modbus_init_listen_tcp libmodbus 2.0.2 (2008-08-10) ============================ - Fix a bug reported by email by Davide Pippa The function modbus_receive must check the number of values indicated in the response accordingly to the query. - Fix #241006 reported by Jesus Hernandez Tapia modbus_check_response() crashes on an invalid exception code - Reduce the number of function calls (read_reg_response and preset_response have been removed) - Add a new unit test for bad response - Catch the timeout even if the length is equal to a exception trame - Test only msg_length_computed on change - Many comments and cleanups libmodbus 2.0.1 (2008-07-02) ============================ - Include libmodbus.spec in the tarball - Fix #241006 reported by Jesus Hernandez Tapia modbus_check_response() crashes on an invalid exception code libmodbus 2.0.0 (2008-05-18) ============================ - Slave API https://blueprints.launchpad.net/libmodbus/+spec/slave-api - No more glib dependency https://blueprints.launchpad.net/libmodbus/+spec/glib-dependency - Unit testing and many test programs - Waf build support https://blueprints.launchpad.net/libmodbus/+spec/waf-support - MacOS X support by Matthew Butch https://blueprints.launchpad.net/libmodbus/+spec/macosx-support - Unit testing (unit-test-slave and unit-test-master) - Port number is now defined at initialisation by Dirk Reusch - Better memory management (uint8_t *data and packing of modbus_param_t) - Better error management - Declare many static functions and const arrays - Enhance an integer division - The GNU licences LGPL and GPL are in version 3 - Debian and RPM packages (#224496) - Many cleanups - Fix #159443 reported by Stefan Bisanz Index of incoming data in force multiple coils function - Fix #161989 reported by Konstantinos Togias Serial device paths more than 10 chars long (eg. /dev/ttyUSB0) don't fit to modbus_param_t -> device char[11] var. - Fix #188189 reported by Chris Hellyar Compute_response_size() no entry for read_input_status() - Fix #191039 reported by Todd Denniston modbus.h is not installed at prefix. - Fix #211460 reported by Todd Denniston With TCP, automatic reconnect on error may not be desired. - Fix #224485 reported by Todd Denniston libmodbus does not link with c++ code. - Fix #224496 reported by Todd Denniston It is easier to install on rpm based systems with a spec file. libmodbus 1.2.5 (2008-05-18) ============================ - Fix #224485 reported by Todd Denniston libmodbus does not link with c++ code. libmodbus 1.2.4 (2008-03-14) ============================ - Fix #191039 reported by Todd Denniston modbus.h is not installed at prefix. libmodbus 1.2.3 (2008-02-03) ============================ - Fix #188189 reported by Chris Hellyar Compute_response_size() no entry for read_input_status() - Fix #181887 reported by Jesus Hernandez Tapia. Slave address in build_request_packet_tcp() is hardcoded as 0xFF. libmodbus 1.2.2 (2007-11-12) ============================ - Fix #161989 reported by Konstantinos Togias Serial device paths more than 10 chars long (eg. /dev/ttyUSB0) don't fit to modbus_param_t -> device char[11] var. - Structure is also bit better 'packed' to conserve memory (see the trunk for a real enhancement). libmodbus 1.2.1 (2007-11-02) ============================ - Fix #159443 reported by Stefan Bisanz Index of incoming data in force multiple coils function - Deleted useless code in check_crc16() - Untabify source code - Changed author's email to Stéphane Raimbault libmodbus 1.2.0 (2007-05-10) ============================ - FIX Compilation GCC-4.0 - Project name in autogen.sh