NEWS 25 KB

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