3 ## libmodbus 3.1.9 (2022-12-03)
6 - Move content about migration to libmodbus.org
7 - Avoid negative value in FD_SET call
8 - Test socket against positive value instead of -1
9 - Improvements to autotools by @ndim
10 - Fix doc links by @jordanjohnson56
11 - Test the protocol id for 0 by @metapsychologe
12 - Fix double negative in tests
13 - New quirks handler (closes #38 #533)
14 - Fix bitwise OR in documentation
15 - Improve doc about slave ID in RTU
16 - Add .clang-format and format code (closes #394)
17 - Remove constraints on baud rate values
18 - Accept IP or device in arg of unit test progs
19 - Avoid compilation issue with VS2022 with strdup
20 - Display created files in configure.js
21 - Use strcpy_s under Windows
22 - Replace inet_addr by inet_pton calls
23 - Replace inet_ntoa by inet_ptop
24 - Update configure.ac/config.h.win32 for new inet functions
25 - Instructions to build libmodbus in a VS project
26 - Fix connection check for Windows RTU (closes #660, #662)
27 - Add CIFuzz Github action
28 - Convert a few int to unsigned int (#402)
30 ## libmodbus 3.1.8 (2022-08-17)
32 - Major rewrite of documentation with Material for mkdocs
33 - Reduce memory use of TCP PI backend (closes #621)
34 - Fixed MODBUS_ERROR_RECOVERY_LINK not working on Windows (@embeddedmz)
35 - Replace Travis CI by GitHub CI
36 - Fix linker error for Windows (VCLinkerTool)
37 - Address check in single register / coil responses added (#463)
38 - Swap CRC bytes in request data but not at CRC computing (#397)
39 - Fix float endianness issue on big endian architecture
40 - Fix comment about EMBUNKEXC (closes #566)
41 - Fix network library detection on Haiku
42 - Fix typos (closes #620)
44 ## libmodbus 3.1.7 (2022-01-09)
46 - modbus_reply: fix copy & paste error in sanity check (fixes #614)
47 - Add SECURITY.md (closes #613)
48 - Fix typo in comment (closes #588)
49 - Replace obsolete AC_PROG_CC_STDC by AC_PROG_CC
50 - Fix position of CC flags in documentation (closes #599)
51 - Remove duplicate ';' (closes #602)
52 - Add the baud rate of 256k for Windows (closes #603)
53 - cosmetic changes in man page standardizing itemization
55 - Replace .dir-locals.el (Emacs) by .editorconfig
56 - Include the test LICENSE in tarball
57 - Install the NEWS and AUTHORS files
59 - docs: fix simple typo, reponse -> response
60 - Add modbus\_[get|set]\_indication_timeout to doc build
62 - Move malloc before starting unit tests
63 - Fixed MODBUS*GET*\* macros in case of negative values
64 - SPDX: change LGPL-2.1+ to LGPL-2.1-or-later
66 Thank you to @yegorich, @i-ky, @jobol, @timgates42, @anton-bondarev,
67 @richardash1981, @stefannilsson, @Zugschlus, @qqq89513 and @mhei.
69 ## libmodbus 3.1.6 (2019-07-31)
71 - Fix awful typo in fix for VD-1301 vulnerability.
74 ## libmodbus 3.1.5 (2019-07-29)
77 - Add appveyor.com config
78 - Update libmodbus.txt
79 - Change arg value from int to const uint16_t in modbus_write_register
80 - Mark raw_req argument as const in modbus_send_raw_request (closes #479)
81 - Add unit tests for VD-1301 and VD-1302 vulnerabilities
82 - Fix VD-1301 and VD-1302 vulnerabilities
83 - Create CODE_OF_CONDUCT.md
84 - modbus_mapping_t is now a named typedef (to allow forward declaration)
85 - Rename type as flags for consistency between functions
86 - Add missing SOCK_CLOEXEC flag on socket creation
87 - Remove wrong and harmful checks in configure.ac
88 - Oops fix OR on RS485 settings (1c5d969)
89 - Only set SER_RS485_ENABLED bit of existing RS485 settings
90 - Add .vscode/ to .gitignore
91 - Fix wrong function name
92 - Remove a duplicated semi-colon
93 - Fix a small typo in test message
94 - Fix modbus_reply for TCP when unit id == 0 (fixes #376)
95 - New functions to define the indication timeout (#95)
96 - Remove CYGWIN condition to provide bswap16 fallback (#383)
98 - Use builtin bswap16 of gcc 4.8 (#377)
99 - Handle out-of-memory conditions more gracefully
100 - [doc] Add entry points for accept/listen in libmodbus index
102 - Refine issue template for Github
103 - Move WINVER definition before other includes (#350)
104 - Add new function modbus_get_slave()
105 - Fix LIBMODBUS_VERSION_HEX encoding (closes #345)
106 - tcp_modbus_accept mustn't close socket on error (closes #333)
108 ## libmodbus 3.1.4 (2016-05-28)
110 - C_PROG_RANLIB is rendered obsolete by LT_INIT
111 - Improve ifdef around bswap_16 for **CYGWIN**
112 - Improve Cygwin support. Thanks to StalderT.
113 - Another round of DRY in modbus_reply()
114 - Rename raw_rep to raw_rsp in unit-test-client
115 - Fix wrong function name in debug message
116 - Fix handling of invalid function code (closes #315)
117 - Add debug message on unknown function and new unit test
118 - DRY in modbus_reply by improving response_exception()
119 - Fix typo in 3053bd0adb
120 - CID 69145 - Argument cannot be negative in unit-test-server
121 - CID 69142 - Unchecked return value in unit-test-server
122 - Fix CID 69140 - Bad bit shift operation (coverity) in tests
123 - Rewrite and rename README as README.md in tests/
124 - Github's contributing and issue template files
125 - Fix small leak (64 bytes in TCP) in unit-test-client
126 - Add unit-tests.sh to tarball
127 - Add ./configure.scan to .gitignore
128 - Move setting of option inside the relevant conditional group
129 - Add links to new modbus*\*\_float*\* functions in index
130 - Slight change to modbus_report_slave_id doc.
132 ## libmodbus 3.1.3 (2016-05-11)
134 - New bswap macros for Max OSX by Jakob Bysewski.
135 - Fix "wildcard address" in TCP IPv6 by Shoichi Sakane.
136 - Introduce offsets in modbus mappings with modbus_mapping_new_start_address.
137 Thanks to Michael Heimpold and Stéphane Raimbault.
138 - Fix address range in random-test-client.
139 Thanks to Martin Galvan.
140 - Add an option to disable tests compilation by Yegor Yefremov.
141 - Define MSG_DONTWAIT to MSG_NONBLOCK on AIX (#294).
142 Thanks to Fabrice Cantos.
143 - Fix building when byteswap.h is not defined by Tomasz Mon.
144 - Add some more macros for data manipulation and documentation.
145 - Remove duplicate install of modbus.h (closes #290).
146 Thanks to Daniel Sutcliffe.
147 - Move MIGRATION and README.md to dist_doc_DATA target.
148 - Change order of few functions in modbus RTU code.
149 - Add entries for modbus*rtu*[get|set]\_delay in documentation index.
150 - Implemented runtime configurable RTS delay by Jimmy Bergström.
151 - Add an entry in libmodbus index page for modbus_rtu_set_custom_rts.
152 - Add support for user defined RTS toggle function by Jimmy
154 - Added ILLEGAL_DATA_ADDRESS tests for modbus_write_register[|s].
155 Thanks to Andrey Skvortsov.
156 - Update documentation of modbus_rtu_set_rts
157 - Fix rts signal switch time by Hiromasa Ihara.
158 - Improve new_rtu and set_slave documentation (related to #276).
159 - Fix late check of ctx in modbus_reply[|_exception] (closes #269).
160 - Wait the server for 1 second before running tests (help Travis).
161 - A libmodbus context isn't thread safe and won't be (closes #246).
162 - Fix buffer overflow in modbus_mask_write_register (#265).
163 - Minor adjustments to README about AsciiDoc.
164 - Export MODBUS_MAX_ADU_LENGTH and documentation (ref #241).
165 - Explicit check against Modbus broadcast address.
166 - Do not reply on broadcast requests (fixes #153). Thanks to Michael.
167 - Add Travis support.
168 - Run unit tests with standard: make check (closes #205, closes #238).
169 This patch has been developed by Andrey Skvortsov, Michael Heimpold
170 and Stéphane Raimbault.
171 - modbus_send_raw_request: limit request length (fixes #207).
172 Thanks to Hanno Neuer for spotting this security flaw.
173 - Add new contributors to AUTHORS
174 - Introduce SPDX license identifiers. Thanks to Michael Heimpold.
176 ## libmodbus 3.1.2 (2015-02-13)
178 If you still want to listen any addresses in your TCP IPv4 server, you must now
179 set the IP address to NULL in modbus_new_tcp before listening. Now,
180 modbus_tcp_listen only listen the IP address set in the Modbus context (see
183 This release introduces API changes on modbus_get_byte_timeout,
184 modbus_get_response_timeout, modbus_set_byte_timeout,
185 modbus_set_response_timeout to ease writing of language bindings.
187 - Rewrite documentation building system
188 - Fix timeouts in unit tests
189 - Don't flush on illegal address errors in single write functions
190 - Fix compilation on compilers not supporting c99 mode.
191 Thanks to Michael Heimpold.
192 - Update license for the tests in Debian packaging (#221)
193 - Move check of device earlier to avoid a free call
194 - Unit test for baud rate check and error message.
195 - Fix crash modbus_new_rtu when baud is 0.
196 Thank you to Daniel Schürmann.
197 - Removed function prototype without implementation
198 Thank you Andrej Skvortzov.
199 - Switch test programs to a BSD license
200 - Fix remote buffer overflow vulnerability on write requests
201 - Avoid twice connect() in source code (closes #194)
202 - Fix compilation with MinGW (GCC 4.8.1) under Win7 (closes #163)
203 Thank you MarjanTomas and SwissKnife.
204 - Fix TCP IPv4 modbus_connect() on win32 (closes #100 and #165)
205 Thank you Petr Gladkiy and Marjan Tomas.
206 - Fix 24a05ebd3c0 - win32: init of modbus_tcp_pi_listen (#187)
207 - INADDR\_\* macros are defined in host byte order
208 - Filter of IP addresses in IPv4 server (closes #190)
209 - Allow to listen any hosts in IPv6 (closes #32)
210 - Define and public export of MODBUS_MAX_PDU_LENGTH (closes #167)
211 - Truncate data from response in report_slave_id to new max arg (closes #167)
212 - Fix response timeout modification on connect (closes #80)
213 - New API to set/get response and byte timeouts.
214 New unit tests and updated documentation.
215 - Export Modbus function codes supported by libmodbus
216 - Fix bandwidth-server-one (closes #152)
217 - Check debug flag in RTU code
218 - Remove warnings caused by shadowed 'index' variable.
219 Thanks to Åke Forslund.
220 - Use accept4 in TCP PI if available
221 - Add documentation for tcp[_pi]\_accept (closes #31)
222 - Fix mistake in modbus_tcp_listen documentation
223 - Add documentation for modbus_tcp_pi_listen
224 - Fix for MinGW and Windows (#144, #169, #175, #180, #181, #187)
225 Thanks to Marjan Tomas.
226 - Many other fixes (#134, #157, #158, #183, #184) and improvements.
228 ## libmodbus 3.1.1 (2013-10-06)
230 More robust to exploits, more compliant and better handling of connect/close
231 sequences. Windows support still broken.
234 - Fix remote buffer overflow vulnerability (closes #25, #105)
235 - Explain how to define response timeouts when many RTU slaves
236 - Fix receiving of incorrect queries in write_single and mask_write_register
237 Thanks to James Nutaro.
238 - Check return value of autoreconf.
239 Thanks to Lauri Nurmi
240 - Constant for broacast and test ordering
241 - Fix the fix of device string check
242 - Various changes to try to improve *broken* Windows support
243 - Try to fix MinGW compilation
244 - Portable use of bswap_32
245 - Improve support of MacOS X
246 - Fix socket value on init/close
247 - Returns -1 on invalid mode in modbus_rtu_set_rts
248 - Protect all public functions against invalid context
249 - Sleep for delay of response timeout before reconnect (closes #77).
250 Thanks to Karl Palsson.
251 - Baud rate until 4,000,000 (POSIX), 1,000,000 (Windows) (closes #93)
252 - New modbus_get|set_float_dcba to get|set float in inversed byte order
253 - Remove unsupported -Wtype-limits for GCC < 4.3.5 (closes #109)
254 - Enable out-of-source build. Thanks to Yegor Yefremov.
255 - Fix alignment problem on ARMv5 platform
256 - Improvement to Debian package. Thanks to Alexander Klauer.
257 - Improve support of VS 2005. Thanks to Petr Gladkiy.
258 - Add documentation for modbus_mask_write_register (closes #91).
259 Thanks to Martijn de Gouw.
260 - Avoid C99 declaration in win32 section code (closes #92).
261 Thanks to oldfaber and endrelovas.
262 - Add a windows scripting host configure file.
263 Thanks to oldfaber and Stéphane Raimbault.
264 - Fix typo in modbus_strerror documentation. Thanks to Mirko Rajkovaca.
265 - Rename reserved C++ keywords of modbus_mask_write_register.
266 Thanks Tobias Doerffel.
267 - Another quick workaround for deficient OS (closes #63)
268 - Add support for Mask Write Register
269 - Fix missing close on socket in random-test-server.
270 Thanks to Damian Zieliński.
271 - Use nonblocking sockets on Win32 and OS X/iOS too.
272 Thanks to Julian Raschke.
273 - Fix all compilations warnings spotted by new compilation flags
274 - Major update of build system
275 - Calculate RTS activation time by send length
276 - Dynamic memory allocation of device name (closes #11)
277 - Add unit tests for modbus_mapping_new
278 - Add Visual Studio 2008 project files by oldfaber
279 - Fix missing argument in synopsis section of modbus_rtu_set_serial_mode
280 - Fix wrong constant names to create version number
281 - More compilation fixes for Windows by oldfaber.
282 - Fix wrong constant names to create version number.
283 Thanks to Denis Davydov.
285 ## libmodbus 3.1.0 (2012-06-22)
287 Major changes to handle many slaves in RTU mode, non blocking connections and
290 - Fixes for Microsoft Visual C++ compiler
291 - Fixes for Windows. Thanks to oldfaber
292 - Return value of \_modbus_tcp_pi_connect() on failure (closes #61)
293 - Avoid ioctl call on non-RS485 ports. Thanks to Michael Haberler
294 - Display node and service in PI and port in IPv4 at connection
295 - Return -1 on getaddrinfo error and print error in debug mode
296 - More robust way to establish the connection in non blocking mode
297 - TCP - Socket in non blocking mode by default. Thanks to Thomas Stalder
298 - Apply CLOEXEC flag for TCP protocol independent too (IPv6)
299 - New RTU receive() to ignore confirmation from other slaves (closes #18)
300 - Move RTU filtering in CRC check to avoid useless call to modbus_reply
301 - Unique transaction identifier by TCP connection
302 - Use accept4 with SOCK_CLOEXEC when available (Linux)
303 - Open fd and socket with the CLOEXEC flag when available
304 - Exception response on report slave ID wasn't detected (closes #27)
305 - Provides a way to disable the byte timeout (Alex Stapleton)
306 - Added slave ID check for response messages (Alex Stapleton)
307 - RTS flow control with modbus_rtu_set_rts and modbus_rtu_get_rts
308 functions by Torello Querci <tquerci@gmail.com> and Stéphane Raimbault.
310 ## libmodbus 3.0.8 (2019-07-31)
312 - Fix awful typo in fix for VD-1301 vulnerability.
315 ## libmodbus 3.0.7 (2019-07-29)
317 - Backport fixes for VD-1301 and VD-1302 vulnerabilities
318 - Move WINVER definition before other includes (closes #350)
319 - Replace signed int by unsigned
321 ## libmodbus 3.0.6 (2014-02-21)
323 - Backport fix remote buffer overflow vulnerability on write requests
324 - Replace deprecated INCLUDES by AM_CPPFLAGS
326 ## libmodbus 3.0.5 (2013-10-06)
328 - Fix remote buffer overflow vulnerability
329 - Fix receiving of incorrect queries in write_single
331 ## libmodbus 3.0.4 (2012-05-08)
333 - autogen.sh creates symlinks instead of copies
334 - Add missing m4 directory (closes #103)
335 - Fix alignment problem on ARMv5 platform
336 Thanks to Alexander Dahl
337 - Remove useless test on error_recovery argument
338 Thanks to Carlos Tangerino
340 ## libmodbus 3.0.3 (2012-05-25)
342 - Fix another Visual C++ 2008/2010 deficiency (closes #53)
343 - Add -lsocket to compile on QNX
344 - Fix TCP PI init under Windows.
346 - Fix a missing free in random-test-client
347 Thanks again to Stefan Finzel.
348 - Fix OMG bug in modbus_mapping_free not freeing memory.
349 Thanks to Stefan Finzel for the bug report.
350 - Fix semicolon typo and unistd.h include under Windows.
351 Thanks to Andrew Kravchuk.
353 ## libmodbus 3.0.2 (2012-01-16)
355 - Update Debian package
356 - Documentation fixes and additions
357 - Add missing C++ macros in public headers.
358 Thanks to Bernhard Agthe.
359 - Protects modbus_mapping_free against NULL argument.
360 Thanks to Andrea Mattia
361 - Fix check on file doc/libmodbus.7 in acinclude.m4 (closes #28)
362 - Close file descriptor when the settings don't apply in RTU.
363 Original patch provided by Thomas Stalder.
364 - unit-test.h is now generated to avoid config.h dependency.
365 - Request for Windows Sockets specification version 2.2 instead of 2.0
366 Thanks to Pavel Mazniker for the report.
368 ## libmodbus 3.0.1 (2011-07-18)
370 - Avoid useless serial_mode integer when TIOCSRS485 isn't supported
371 - Fix compilation failure on Windows (RS485 support) by Tobias Doerffel
372 <tobias.doerffel@gmail.com>
373 - Properly check TIOCSRS485 define by Matthijs Kool
374 - Rename package to libmodbus5 to fix lintian warning
376 ## libmodbus 3.0.0 (2011-07-11)
378 - Revert libmodbus licence from LGPLv3 to LGPLv2.1 to avoid
379 incompatibility with GPLv2 program. This change has been approved
380 by Tobias Doerffel, Florian octo Forster and Hannu Vuolasaho.
381 - Enable RS485 support only when available
382 - Export modbus_set/get_serial_mode functions on all platforms
383 - API change for read/write multiple registers function:
384 - modbus_read_and_write_registers -> modbus_write_and_read_registers
385 The function name was confusing because the write operation is performed
386 before the read. Take care to swap the arguments in the migration process.
387 - Documentation of modbus*write_and_read_registers, modbus_mapping_new/free,
388 report_slave_id. modbus_get_byte_from_bits, modbus_set_bits_from_byte(s),
389 modbus*[gs]et_float, modbus_reply and modbus_reply_exception.
390 - Enhanced report slave ID
391 - New RPM spec file to package documentation and development files
393 ## libmodbus 2.9.4 (2011-06-05)
396 Make the TCP implementation "protocol independent" by Florian Forster
397 and Stéphane Raimbault.
398 - Fix compilation on Windows 7 (x64) with MinGW/MSYS and GCC 4.5
399 Reported by Patsy Kaye.
400 - Documentation of libmodbus functions with AsciiDoc (man and HTML) by Stéphane
402 - Avoid an iteration in flush function
403 - New functions to send and receive raw requests (modbus_send_raw_request,
404 modbus_receive_confirmation)
405 - Fix flush function of TCP backend on Windows
406 - API changes for server/slave:
407 - modbus_receive doesn't take socket/fd argument anymore
408 - new function modbus_set_socket to set socket/fd
409 - API changes for timeout functions:
410 - modbus_get_timeout_begin -> modbus_get_response_timeout
411 - modbus_set_timeout_begin -> modbus_set_response_timeout
412 - modbus_get_timeout_end -> modbus_get_byte_timeout
413 - modbus_set_timeout_end -> modbus_set_byte_timeout
414 - Fix longstanding limitation of server to wait forever
415 - New functions modbus_set/get_serial_mode by Manfred Gruber and Stéphane
416 Raimbault for RS485 communications
417 - Improved recovery mode (see modbus_set_error_recovery documentation) for
418 data link and protocol errors.
419 - Fix compilation issue with Microsoft Visual Studio 2008.
420 Reported by Allan Cornet.
422 ## libmodbus 2.9.3 (2011-01-14)
424 - Major rewriting of the message reading (no more timeouts on exception)
425 by Stéphane Raimbault
426 - New function to reply to an indication with an exception message
427 modbus_reply_exception()
428 - New function modbus_get_header_length(modbus_t \*ctx)
429 - New functions to manipulate data:
430 - MODBUS_GET_INT32_FROM_INT16
431 - MODBUS_GET_INT16_FROM_INT8
432 - MODBUS_SET_INT16_TO_INT8
433 - Fix GH-2. Read/write were swapped in \_FC_READ_AND_WRITE_REGISTERS
434 - Install an ignore handler for SIGPIPE on \*BSD
435 Original patch by Jason Oster.
436 - Fix closing of Win32 socket.
437 Reported by Petr Parýzek.
438 - Fix unit identifier not copied by the TCP server.
439 Reported by Antti Manninen.
440 - Fix missing modbus_flush() in unit tests
441 - Fixes for OpenBSD by Barry Grumbine and Jason Oster
443 ## libmodbus 2.9.2 (2010-12-05)
445 - Win32 support by Tobias Doerffel
446 - Split source code around RTU and TCP (backends)
447 - Rename modbus*[listen|accept] to modbus_tcp*[listen|accept]
448 - Remove slave argument from modbus_new_rtu()
449 - Check received function code
450 - Fix segfault in bandwidth-server-many-up on inet_ntoa() call
451 - Fix unit test of report slave ID in RTU
452 - Fix GH-3. Remove inclusion of config.h in modbus.h
453 - Correctly detect if we are cross-compiling for win32 by Kirill Smelkov.
454 - Fix setting of the broadcast address
456 ## libmodbus 2.9.1 (2010-08-16)
458 - Brand new API (see MIGRATION notes)!
459 - Remove the internal function set_message_length_tcp
460 - Restore slave ID (server ID) argument in functions
461 - Error conventions of POSIX systems and error recover
462 - Parity setting is now a single char ('N', 'E' or 'O')
463 - Report slave ID server side
464 - OpenBSD support by Anibal Limón.
465 - New read and write registers function by Hannu Vuolasaho.
466 - Versioning infrastructure
467 Inspired by the Clutter project and the work done by Florian Forster.
468 - Fix the broadcast constant (255 -> 0)
469 Reported by David Olivari.
470 - Fix #463299 - New functions to define the timeouts of begin and end of trame
471 Original patch by Sisyph (eric-paul).
472 - Fix #591142 - Slave id check should be disabled in TCP connection
473 Reported by aladdinwu.
475 ## libmodbus 2.1.0 (2010-03-24)
477 - New API to read and write float values by Stéphane Raimbault and Florian
479 - New API for slave server (see MIGRATION)
480 - New slave server able to handle multiple connections
481 - Slave only replies to broadcast queries or queries with its slave ID
482 - Improved Modbus protocol conformance
483 - modbus_param_t is smaller (2 int removed)
484 - Better error management and SIGPIPE signal is blocked
486 - Fix #333455 - Cygwin IPTOS_LOWDELAY not supported on cygwin
487 Reported by Jeff Laughlin and Yishin Li.
488 - Fix #375926 - modbus.c:164: error: `MSG_DONTWAIT' undeclared
489 Reported and tested by Yishin Li.
490 - Fix #378981 - CRC error on RTU response doesn't return negative value
491 Reported by Henrik Munktell.
492 - Fix report slave ID request
493 Patch (bzr) provided by Paul Fertser.
494 - Fix #425604 - Conditional jump or move depends on uninitialised value(s)
495 Occurs on first occurrence of slave timeout.
496 Reported by Henrik Munktell.
497 - Fix #457200 - FreeBSD support
498 Patch provided by Norbert Koch.
502 - The code is now published and developed on
503 <http://github.com/stephane/libmodbus>
504 - Waf support has been removed
506 ## libmodbus 2.0.3 (2009-03-22)
508 - Fix CRC error when a slave RTU send a response.
509 Thanks to Justin Carroll to have reported and tested my patch.
510 - Remove an assignment in compute_response_length()
511 - Remove duplicate counter in read_io_status()
512 - Fix #274511 reported by 'Kylesch'
513 Invalid error check in modbus_init_listen_tcp
515 ## libmodbus 2.0.2 (2008-08-10)
517 - Fix a bug reported by email by Davide Pippa
518 The function modbus_receive must check the number of values
519 indicated in the response accordingly to the query.
520 - Fix #241006 reported by Jesus Hernandez Tapia
521 modbus_check_response() crashes on an invalid exception code
522 - Reduce the number of function calls (read_reg_response and
523 preset_response have been removed)
524 - Add a new unit test for bad response
525 - Catch the timeout even if the length is equal to a exception trame
526 - Test only msg_length_computed on change
527 - Many comments and cleanups
529 ## libmodbus 2.0.1 (2008-07-02)
531 - Include libmodbus.spec in the tarball
532 - Fix #241006 reported by Jesus Hernandez Tapia
533 modbus_check_response() crashes on an invalid exception code
535 ## libmodbus 2.0.0 (2008-05-18)
538 <https://blueprints.launchpad.net/libmodbus/+spec/slave-api>
539 - No more glib dependency
540 <https://blueprints.launchpad.net/libmodbus/+spec/glib-dependency>
541 - Unit testing and many test programs
543 <https://blueprints.launchpad.net/libmodbus/+spec/waf-support>
544 - MacOS X support by Matthew Butch
545 <https://blueprints.launchpad.net/libmodbus/+spec/macosx-support>
546 - Unit testing (unit-test-slave and unit-test-master)
547 - Port number is now defined at initialisation by Dirk Reusch
548 - Better memory management (uint8_t \*data and packing of
550 - Better error management
551 - Declare many static functions and const arrays
552 - Enhance an integer division
553 - The GNU licences LGPL and GPL are in version 3
554 - Debian and RPM packages (#224496)
556 - Fix #159443 reported by Stefan Bisanz
557 Index of incoming data in force multiple coils function
558 - Fix #161989 reported by Konstantinos Togias
559 Serial device paths more than 10 chars long (eg. /dev/ttyUSB0) don't
560 fit to modbus_param_t -> device char[11] var.
561 - Fix #188189 reported by Chris Hellyar
562 Compute_response_size() no entry for read_input_status()
563 - Fix #191039 reported by Todd Denniston
564 modbus.h is not installed at prefix.
565 - Fix #211460 reported by Todd Denniston
566 With TCP, automatic reconnect on error may not be desired.
567 - Fix #224485 reported by Todd Denniston
568 libmodbus does not link with c++ code.
569 - Fix #224496 reported by Todd Denniston
570 It is easier to install on rpm based systems with a spec file.
572 ## libmodbus 1.2.5 (2008-05-18)
574 - Fix #224485 reported by Todd Denniston
575 libmodbus does not link with c++ code.
577 ## libmodbus 1.2.4 (2008-03-14)
579 - Fix #191039 reported by Todd Denniston
580 modbus.h is not installed at prefix.
582 ## libmodbus 1.2.3 (2008-02-03)
584 - Fix #188189 reported by Chris Hellyar
585 Compute_response_size() no entry for read_input_status()
586 - Fix #181887 reported by Jesus Hernandez Tapia.
587 Slave address in build_request_packet_tcp() is hardcoded as 0xFF.
589 ## libmodbus 1.2.2 (2007-11-12)
591 - Fix #161989 reported by Konstantinos Togias
592 Serial device paths more than 10 chars long (eg. /dev/ttyUSB0) don't
593 fit to modbus_param_t -> device char[11] var.
594 - Structure is also bit better 'packed' to conserve memory (see the
595 trunk for a real enhancement).
597 ## libmodbus 1.2.1 (2007-11-02)
599 - Fix #159443 reported by Stefan Bisanz
600 Index of incoming data in force multiple coils function
601 - Deleted useless code in check_crc16()
602 - Untabify source code
603 - Changed author's email to Stéphane Raimbault
605 ## libmodbus 1.2.0 (2007-05-10)
607 - FIX Compilation GCC-4.0
608 - Project name in autogen.sh