Add unit tests for modbus_mapping_new
[libmodbus.git] / NEWS
blob3444859ec9554ad5747c47b2f4c1ce57e8e2d90c
1 libmodbus 3.1.1 (2012-XX-XX)
2 ============================
4 - Add Visual Studio 2008 project files by oldfaber
5 - Fix missing argument in synopsis section of modbus_rtu_set_serial_mode
6 - Fix wrong constant names to create version number
7 - More compilation fixes for Windows by oldfaber.
9 libmodbus 3.1.0 (2012-06-22)
10 ============================
12 Major changes to handle many slaves in RTU mode, non blocking connections and
13 RTS flow control.
15 - Fixes for Microsoft Visual C++ compiler
16 - Fixes for Windows. Thanks to oldfaber
17 - Return value of _modbus_tcp_pi_connect() on failure (closes #61)
18 - Avoid ioctl call on non-RS485 ports. Thanks to Michael Haberler
19 - Display node and service in PI and port in IPv4 at connection
20 - Return -1 on getaddrinfo error and print error in debug mode
21 - More robust way to establish the connection in non blocking mode
22 - TCP - Socket in non blocking mode by default. Thanks to Thomas Stalder
23 - Apply CLOEXEC flag for TCP protocol independent too (IPv6)
24 - New RTU receive() to ignore confirmation from other slaves (closes #18)
25 - Move RTU filtering in CRC check to avoid useless call to modbus_reply
26 - Unique transaction identifier by TCP connection
27 - Use accept4 with SOCK_CLOEXEC when available (Linux)
28 - Open fd and socket with the CLOEXEC flag when available
29 - Exception response on report slave ID wasn't detected (closes #27)
30 - Provides a way to disable the byte timeout (Alex Stapleton)
31 - Added slave ID check for response messages (Alex Stapleton)
32 - RTS flow control with modbus_rtu_set_rts and modbus_rtu_get_rts
33   functions by Torello Querci <tquerci@gmail.com> and Stéphane Raimbault.
35 libmodbus 3.0.3 (2012-05-25)
36 ============================
38 - Fix another Visual C++ 2008/2010 deficiency (closes #53)
39 - Add -lsocket to compile on QNX
40 - Fix TCP PI init under Windows.
41   Thanks to oldfaber.
42 - Fix a missing free in random-test-client
43   Thanks again to Stefan Finzel.
44 - Fix OMG bug in modbus_mapping_free not freeing memory.
45   Thanks to Stefan Finzel for the bug report.
46 - Fix semicolon typo and unistd.h include under Windows.
47   Thanks to Andrew Kravchuk.
49 libmodbus 3.0.2 (2012-01-16)
50 ============================
52 - Update Debian package
53 - Documentation fixes and additions
54 - Add missing C++ macros in public headers.
55   Thanks to Bernhard Agthe.
56 - Protects modbus_mapping_free against NULL argument.
57   Thanks to Andrea Mattia
58 - Fix check on file doc/libmodbus.7 in acinclude.m4 (closes #28)
59 - Close file descriptor when the settings don't apply in RTU.
60   Original patch provided by Thomas Stalder.
61 - unit-test.h is now generated to avoid config.h dependency.
62 - Request for Windows Sockets specification version 2.2 instead of 2.0
63   Thanks to Pavel Mazniker for the report.
65 libmodbus 3.0.1 (2011-07-18)
66 ============================
68 - Avoid useless serial_mode integer when TIOCSRS485 isn't supported
69 - Fix compilation failure on Windows (RS485 support) by Tobias Doerffel
70   <tobias.doerffel@gmail.com>
71 - Properly check TIOCSRS485 define by Matthijs Kool
72 - Rename package to libmodbus5 to fix lintian warning
74 libmodbus 3.0.0 (2011-07-11)
75 ============================
77 - Revert libmodbus licence from LGPLv3 to LGPLv2.1 to avoid
78   incompatibility with GPLv2 program. This change has been approved
79   by Tobias Doerffel, Florian octo Forster and Hannu Vuolasaho.
80 - Enable RS485 support only when available
81 - Export modbus_set/get_serial_mode functions on all platforms
82 - API change for read/write multiple registers function:
83     * modbus_read_and_write_registers -> modbus_write_and_read_registers
84   The function name was confusing because the write operation is performed
85   before the read. Take care to swap the arguments in the migration process.
86 - Documentation of modbus_write_and_read_registers, modbus_mapping_new/free,
87   report_slave_id. modbus_get_byte_from_bits, modbus_set_bits_from_byte(s),
88   modbus_[gs]et_float, modbus_reply and modbus_reply_exception.
89 - Enhanced report slave ID
90 - New RPM spec file to package documentation and development files
92 libmodbus 2.9.4 (2011-06-05)
93 ============================
95 - IPv6 support
96   Make the TCP implementation "protocol independent" by Florian Forster
97   and Stéphane Raimbault.
98 - Fix compilation on Windows 7 (x64) with MinGW/MSYS and GCC 4.5
99   Reported by Patsy Kaye.
100 - Documentation of libmodbus functions with AsciiDoc (man and HTML) by Stéphane
101   Raimbault
102 - Avoid an iteration in flush function
103 - New functions to send and receive raw requests (modbus_send_raw_request,
104   modbus_receive_confirmation)
105 - Fix flush function of TCP backend on Windows
106 - API changes for server/slave:
107     * modbus_receive doesn't take socket/fd argument anymore
108     * new function modbus_set_socket to set socket/fd
109 - API changes for timeout functions:
110     * modbus_get_timeout_begin -> modbus_get_response_timeout
111     * modbus_set_timeout_begin -> modbus_set_response_timeout
112     * modbus_get_timeout_end -> modbus_get_byte_timeout
113     * modbus_set_timeout_end -> modbus_set_byte_timeout
114 - Fix longstanding limitation of server to wait forever
115 - New functions modbus_set/get_serial_mode by Manfred Gruber and Stéphane
116   Raimbault for RS485 communications
117 - Improved recovery mode (see modbus_set_error_recovery documentation) for
118   data link and protocol errors.
119 - Fix compilation issue with Microsoft Visual Studio 2008.
120   Reported by Allan Cornet.
122 libmodbus 2.9.3 (2011-01-14)
123 ============================
125 - Major rewriting of the message reading (no more timeouts on exception)
126   by Stéphane Raimbault
127 - New function to reply to an indication with an exception message
128   modbus_reply_exception()
129 - New function modbus_get_header_length(modbus_t *ctx)
130 - New functions to manipulate data:
131     * MODBUS_GET_INT32_FROM_INT16
132     * MODBUS_GET_INT16_FROM_INT8
133     * MODBUS_SET_INT16_TO_INT8
134 - Fix GH-2. Read/write were swapped in _FC_READ_AND_WRITE_REGISTERS
135 - Install an ignore handler for SIGPIPE on *BSD
136   Original patch by Jason Oster.
137 - Fix closing of Win32 socket.
138   Reported by Petr Parýzek.
139 - Fix unit identifier not copied by the TCP server.
140   Reported by Antti Manninen.
141 - Fix missing modbus_flush() in unit tests
142 - Fixes for OpenBSD by Barry Grumbine and Jason Oster
145 libmodbus 2.9.2 (2010-12-05)
146 ============================
148 - Win32 support by Tobias Doerffel
149 - Split source code around RTU and TCP (backends)
150 - Rename modbus_[listen|accept] to modbus_tcp_[listen|accept]
151 - Remove slave argument from modbus_new_rtu()
152 - Check received function code
153 - Fix segfault in bandwidth-server-many-up on inet_ntoa() call
154 - Fix unit test of report slave ID in RTU
155 - Fix GH-3. Remove inclusion of config.h in modbus.h
156 - Correctly detect if we are cross-compiling for win32 by Kirill Smelkov.
157 - Fix setting of the broadcast address
160 libmodbus 2.9.1 (2010-08-16)
161 ============================
163 - Brand new API (see MIGRATION notes)!
164 - Remove the internal function set_message_length_tcp
165 - Restore slave ID (server ID) argument in functions
166 - Error conventions of POSIX systems and error recover
167 - Parity setting is now a single char ('N', 'E' or 'O')
168 - Report slave ID server side
169 - OpenBSD support by Anibal Limón.
170 - New read and write registers function by Hannu Vuolasaho.
171 - Versioning infrastructure
172   Inspired by the Clutter project and the work done by Florian Forster.
173 - Fix the broadcast constant (255 -> 0)
174   Reported by David Olivari.
175 - Fix #463299 - New functions to define the timeouts of begin and end of trame
176   Original patch by Sisyph (eric-paul).
177 - Fix #591142 - Slave id check should be disabled in TCP connection
178   Reported by aladdinwu.
181 libmodbus 2.1.0 (2010-03-24)
182 ============================
184 - New API to read and write float values by Stéphane Raimbault and Florian
185   Forster.
186 - New API for slave server (see MIGRATION)
187 - New slave server able to handle multiple connections
188 - Slave only replies to broadcast queries or queries with its slave ID
189 - Improved Modbus protocol conformance
190 - modbus_param_t is smaller (2 int removed)
191 - Better error management and SIGPIPE signal is blocked
192 - Faster
193 - Fix #333455 - Cygwin IPTOS_LOWDELAY not supported on cygwin
194   Reported by Jeff Laughlin and Yishin Li.
195 - Fix #375926 - modbus.c:164: error: `MSG_DONTWAIT' undeclared
196   Reported and tested by Yishin Li.
197 - Fix #378981 - CRC error on RTU response doesn't return negative value
198   Reported by Henrik Munktell.
199 - Fix report slave ID request
200   Patch (bzr) provided by Paul Fertser.
201 - Fix #425604 - Conditional jump or move depends on uninitialised value(s)
202   Occurs on first occurence of slave timeout.
203   Reported by Henrik Munktell.
204 - Fix #457200 - FreeBSD support
205   Patch provided by Norbert Koch.
207 Other changes:
209 - The code is now published and developed on
210   http://github.com/stephane/libmodbus
211 - Waf support has been removed
214 libmodbus 2.0.3 (2009-03-22)
215 ============================
217 - Fix CRC error when a slave RTU send a response.
218   Thanks to Justin Carroll to have reported and tested my patch.
219 - Remove an assignment in compute_response_length()
220 - Remove duplicate counter in read_io_status()
221 - Fix #274511 reported by 'Kylesch'
222   Invalid error check in modbus_init_listen_tcp
225 libmodbus 2.0.2 (2008-08-10)
226 ============================
227 - Fix a bug reported by email by Davide Pippa
228   The function modbus_receive must check the number of values
229   indicated in the response accordingly to the query.
230 - Fix #241006 reported by Jesus Hernandez Tapia
231   modbus_check_response() crashes on an invalid exception code
232 - Reduce the number of function calls (read_reg_response and
233   preset_response have been removed)
234 - Add a new unit test for bad response
235 - Catch the timeout even if the length is equal to a exception trame
236 - Test only msg_length_computed on change
237 - Many comments and cleanups
240 libmodbus 2.0.1 (2008-07-02)
241 ============================
243 - Include libmodbus.spec in the tarball
244 - Fix #241006 reported by Jesus Hernandez Tapia
245   modbus_check_response() crashes on an invalid exception code
248 libmodbus 2.0.0 (2008-05-18)
249 ============================
251 - Slave API
252   https://blueprints.launchpad.net/libmodbus/+spec/slave-api
253 - No more glib dependency
254   https://blueprints.launchpad.net/libmodbus/+spec/glib-dependency
255 - Unit testing and many test programs
256 - Waf build support
257   https://blueprints.launchpad.net/libmodbus/+spec/waf-support
258 - MacOS X support by Matthew Butch
259   https://blueprints.launchpad.net/libmodbus/+spec/macosx-support
260 - Unit testing (unit-test-slave and unit-test-master)
261 - Port number is now defined at initialisation by Dirk Reusch
262 - Better memory management (uint8_t *data and packing of
263   modbus_param_t)
264 - Better error management
265 - Declare many static functions and const arrays
266 - Enhance an integer division
267 - The GNU licences LGPL and GPL are in version 3
268 - Debian and RPM packages (#224496)
269 - Many cleanups
270 - Fix #159443 reported by Stefan Bisanz
271   Index of incoming data in force multiple coils function
272 - Fix #161989 reported by Konstantinos Togias
273   Serial device paths more than 10 chars long (eg. /dev/ttyUSB0) don't
274   fit to modbus_param_t -> device char[11] var.
275 - Fix #188189 reported by Chris Hellyar
276   Compute_response_size() no entry for read_input_status()
277 - Fix #191039 reported by Todd Denniston
278   modbus.h is not installed at prefix.
279 - Fix #211460 reported by Todd Denniston
280   With TCP, automatic reconnect on error may not be desired.
281 - Fix #224485 reported by Todd Denniston
282   libmodbus does not link with c++ code.
283 - Fix #224496 reported by Todd Denniston
284   It is easier to install on rpm based systems with a spec file.
287 libmodbus 1.2.5 (2008-05-18)
288 ============================
290 - Fix #224485 reported by Todd Denniston
291   libmodbus does not link with c++ code.
294 libmodbus 1.2.4 (2008-03-14)
295 ============================
297 - Fix #191039 reported by Todd Denniston
298   modbus.h is not installed at prefix.
301 libmodbus 1.2.3 (2008-02-03)
302 ============================
304 - Fix #188189 reported by Chris Hellyar
305   Compute_response_size() no entry for read_input_status()
306 - Fix #181887 reported by Jesus Hernandez Tapia.
307   Slave address in build_request_packet_tcp() is hardcoded as 0xFF.
310 libmodbus 1.2.2 (2007-11-12)
311 ============================
313 - Fix #161989 reported by Konstantinos Togias
314   Serial device paths more than 10 chars long (eg. /dev/ttyUSB0) don't
315   fit to modbus_param_t -> device char[11] var.
316 - Structure is also bit better 'packed' to conserve memory (see the
317   trunk for a real enhancement).
320 libmodbus 1.2.1 (2007-11-02)
321 ============================
323 - Fix #159443 reported by Stefan Bisanz
324   Index of incoming data in force multiple coils function
325 - Deleted useless code in check_crc16()
326 - Untabify source code
327 - Changed author's email to Stéphane Raimbault
330 libmodbus 1.2.0 (2007-05-10)
331 ============================
333 - FIX Compilation GCC-4.0
334 - Project name in autogen.sh