NEWS 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447
  1. libmodbus 3.1.2 (2015-02-13)
  2. ============================
  3. If you still want to listen any addresses in your TCP IPv4 server, you must now
  4. set the IP address to NULL in modbus_new_tcp before listening. Now,
  5. modbus_tcp_listen only listen the IP address set in the Modbus context (see
  6. documentation).
  7. This release introduces API changes on modbus_get_byte_timeout,
  8. modbus_get_response_timeout, modbus_set_byte_timeout,
  9. modbus_set_response_timeout to ease writing of language bindings.
  10. - Rewrite documentation building system
  11. - Fix timeouts in unit tests
  12. - Don't flush on illegal address errors in single write functions
  13. - Fix compilation on compilers not supporting c99 mode.
  14. Thanks to Michael Heimpold.
  15. - Update license for the tests in Debian packaging (#221)
  16. - Move check of device earlier to avoid a free call
  17. - Unit test for baud rate check and error message.
  18. - Fix crash modbus_new_rtu when baud is 0.
  19. Thank you to Daniel Schürmann.
  20. - Removed function prototype without implementation
  21. Thank you Andrej Skvortzov.
  22. - Switch test programs to a BSD license
  23. - Fix remote buffer overflow vulnerability on write requests
  24. - Avoid twice connect() in source code (closes #194)
  25. - Fix compilation with MinGW (GCC 4.8.1) under Win7 (closes #163)
  26. Thank you MarjanTomas and SwissKnife.
  27. - Fix TCP IPv4 modbus_connect() on win32 (closes #100 and #165)
  28. Thank you Petr Gladkiy and Marjan Tomas.
  29. - Fix 24a05ebd3c0 - win32: init of modbus_tcp_pi_listen (#187)
  30. - INADDR_* macros are defined in host byte order
  31. - Filter of IP addresses in IPv4 server (closes #190)
  32. - Allow to listen any hosts in IPv6 (closes #32)
  33. - Define and public export of MODBUS_MAX_PDU_LENGTH (closes #167)
  34. - Truncate data from response in report_slave_id to new max arg (closes #167)
  35. - Fix response timeout modification on connect (closes #80)
  36. - New API to set/get response and byte timeouts.
  37. New unit tests and updated documentation.
  38. - Export Modbus function codes supported by libmodbus
  39. - Fix bandwidth-server-one (closes #152)
  40. - Check debug flag in RTU code
  41. - Remove warnings caused by shadowed 'index' variable.
  42. Thanks to Åke Forslund.
  43. - Use accept4 in TCP PI if available
  44. - Add documentation for tcp[_pi]_accept (closes #31)
  45. - Fix mistake in modbus_tcp_listen documentation
  46. - Add documentation for modbus_tcp_pi_listen
  47. - Fix for MinGW and Windows (#144, #169, #175, #180, #181, #187)
  48. Thanks to Marjan Tomas.
  49. - Many other fixes (#134, #157, #158, #183, #184) and improvements.
  50. libmodbus 3.1.1 (2013-10-06)
  51. ============================
  52. More robust to exploits, more compliant and better handling of connect/close
  53. sequences. Windows support still broken.
  54. - New unit tests
  55. - Fix remote buffer overflow vulnerability (closes #25, #105)
  56. - Explain how to define response timeouts when many RTU slaves
  57. - Fix receiving of incorrect queries in write_single and mask_write_register
  58. Thanks to James Nutaro.
  59. - Check return value of autoreconf.
  60. Thanks to Lauri Nurmi
  61. - Constant for broacast and test ordering
  62. - Fix the fix of device string check
  63. - Various changes to try to improve *broken* Windows support
  64. - Try to fix MinGW compilation
  65. - Portable use of bswap_32
  66. - Improve support of MacOS X
  67. - Fix socket value on init/close
  68. - Returns -1 on invalid mode in modbus_rtu_set_rts
  69. - Protect all public functions against invalid context
  70. - Sleep for delay of response timeout before reconnect (closes #77).
  71. Thanks to Karl Palsson.
  72. - Baud rate until 4,000,000 (POSIX), 1,000,000 (Windows) (closes #93)
  73. - New modbus_get|set_float_dcba to get|set float in inversed byte order
  74. - Remove unsupported -Wtype-limits for GCC < 4.3.5 (closes #109)
  75. - Enable out-of-source build. Thanks to Yegor Yefremov.
  76. - Fix alignment problem on ARMv5 platform
  77. - Improvement to Debian package. Thanks to Alexander Klauer.
  78. - Improve support of VS 2005. Thanks to Petr Gladkiy.
  79. - Add documentation for modbus_mask_write_register (closes #91).
  80. Thanks to Martijn de Gouw.
  81. - Avoid C99 declaration in win32 section code (closes #92).
  82. Thanks to oldfaber and endrelovas.
  83. - Add a windows scripting host configure file.
  84. Thanks to oldfaber and Stéphane Raimbault.
  85. - Fix typo in modbus_strerror documentation. Thanks to Mirko Rajkovaca.
  86. - Rename reserved C++ keywords of modbus_mask_write_register.
  87. Thanks Tobias Doerffel.
  88. - Another quick workaround for deficient OS (closes #63)
  89. - Add support for Mask Write Register
  90. - Fix missing close on socket in random-test-server.
  91. Thanks to Damian Zieliński.
  92. - Use nonblocking sockets on Win32 and OS X/iOS too.
  93. Thanks to Julian Raschke.
  94. - Fix all compilations warnings spotted by new compilation flags
  95. - Major update of build system
  96. - Calculate RTS activation time by send length
  97. - Dynamic memory allocation of device name (closes #11)
  98. - Add unit tests for modbus_mapping_new
  99. - Add Visual Studio 2008 project files by oldfaber
  100. - Fix missing argument in synopsis section of modbus_rtu_set_serial_mode
  101. - Fix wrong constant names to create version number
  102. - More compilation fixes for Windows by oldfaber.
  103. - Fix wrong constant names to create version number.
  104. Thanks to Denis Davydov.
  105. libmodbus 3.1.0 (2012-06-22)
  106. ============================
  107. Major changes to handle many slaves in RTU mode, non blocking connections and
  108. RTS flow control.
  109. - Fixes for Microsoft Visual C++ compiler
  110. - Fixes for Windows. Thanks to oldfaber
  111. - Return value of _modbus_tcp_pi_connect() on failure (closes #61)
  112. - Avoid ioctl call on non-RS485 ports. Thanks to Michael Haberler
  113. - Display node and service in PI and port in IPv4 at connection
  114. - Return -1 on getaddrinfo error and print error in debug mode
  115. - More robust way to establish the connection in non blocking mode
  116. - TCP - Socket in non blocking mode by default. Thanks to Thomas Stalder
  117. - Apply CLOEXEC flag for TCP protocol independent too (IPv6)
  118. - New RTU receive() to ignore confirmation from other slaves (closes #18)
  119. - Move RTU filtering in CRC check to avoid useless call to modbus_reply
  120. - Unique transaction identifier by TCP connection
  121. - Use accept4 with SOCK_CLOEXEC when available (Linux)
  122. - Open fd and socket with the CLOEXEC flag when available
  123. - Exception response on report slave ID wasn't detected (closes #27)
  124. - Provides a way to disable the byte timeout (Alex Stapleton)
  125. - Added slave ID check for response messages (Alex Stapleton)
  126. - RTS flow control with modbus_rtu_set_rts and modbus_rtu_get_rts
  127. functions by Torello Querci <tquerci@gmail.com> and Stéphane Raimbault.
  128. libmodbus 3.0.4 (2012-05-08)
  129. ============================
  130. - autogen.sh creates symlinks instead of copies
  131. - Add missing m4 directory (closes #103)
  132. - Fix alignment problem on ARMv5 platform
  133. Thanks to Alexander Dahl
  134. - Remove useless test on error_recovery argument
  135. Thanks to Carlos Tangerino
  136. libmodbus 3.0.3 (2012-05-25)
  137. ============================
  138. - Fix another Visual C++ 2008/2010 deficiency (closes #53)
  139. - Add -lsocket to compile on QNX
  140. - Fix TCP PI init under Windows.
  141. Thanks to oldfaber.
  142. - Fix a missing free in random-test-client
  143. Thanks again to Stefan Finzel.
  144. - Fix OMG bug in modbus_mapping_free not freeing memory.
  145. Thanks to Stefan Finzel for the bug report.
  146. - Fix semicolon typo and unistd.h include under Windows.
  147. Thanks to Andrew Kravchuk.
  148. libmodbus 3.0.2 (2012-01-16)
  149. ============================
  150. - Update Debian package
  151. - Documentation fixes and additions
  152. - Add missing C++ macros in public headers.
  153. Thanks to Bernhard Agthe.
  154. - Protects modbus_mapping_free against NULL argument.
  155. Thanks to Andrea Mattia
  156. - Fix check on file doc/libmodbus.7 in acinclude.m4 (closes #28)
  157. - Close file descriptor when the settings don't apply in RTU.
  158. Original patch provided by Thomas Stalder.
  159. - unit-test.h is now generated to avoid config.h dependency.
  160. - Request for Windows Sockets specification version 2.2 instead of 2.0
  161. Thanks to Pavel Mazniker for the report.
  162. libmodbus 3.0.1 (2011-07-18)
  163. ============================
  164. - Avoid useless serial_mode integer when TIOCSRS485 isn't supported
  165. - Fix compilation failure on Windows (RS485 support) by Tobias Doerffel
  166. <tobias.doerffel@gmail.com>
  167. - Properly check TIOCSRS485 define by Matthijs Kool
  168. - Rename package to libmodbus5 to fix lintian warning
  169. libmodbus 3.0.0 (2011-07-11)
  170. ============================
  171. - Revert libmodbus licence from LGPLv3 to LGPLv2.1 to avoid
  172. incompatibility with GPLv2 program. This change has been approved
  173. by Tobias Doerffel, Florian octo Forster and Hannu Vuolasaho.
  174. - Enable RS485 support only when available
  175. - Export modbus_set/get_serial_mode functions on all platforms
  176. - API change for read/write multiple registers function:
  177. * modbus_read_and_write_registers -> modbus_write_and_read_registers
  178. The function name was confusing because the write operation is performed
  179. before the read. Take care to swap the arguments in the migration process.
  180. - Documentation of modbus_write_and_read_registers, modbus_mapping_new/free,
  181. report_slave_id. modbus_get_byte_from_bits, modbus_set_bits_from_byte(s),
  182. modbus_[gs]et_float, modbus_reply and modbus_reply_exception.
  183. - Enhanced report slave ID
  184. - New RPM spec file to package documentation and development files
  185. libmodbus 2.9.4 (2011-06-05)
  186. ============================
  187. - IPv6 support
  188. Make the TCP implementation "protocol independent" by Florian Forster
  189. and Stéphane Raimbault.
  190. - Fix compilation on Windows 7 (x64) with MinGW/MSYS and GCC 4.5
  191. Reported by Patsy Kaye.
  192. - Documentation of libmodbus functions with AsciiDoc (man and HTML) by Stéphane
  193. Raimbault
  194. - Avoid an iteration in flush function
  195. - New functions to send and receive raw requests (modbus_send_raw_request,
  196. modbus_receive_confirmation)
  197. - Fix flush function of TCP backend on Windows
  198. - API changes for server/slave:
  199. * modbus_receive doesn't take socket/fd argument anymore
  200. * new function modbus_set_socket to set socket/fd
  201. - API changes for timeout functions:
  202. * modbus_get_timeout_begin -> modbus_get_response_timeout
  203. * modbus_set_timeout_begin -> modbus_set_response_timeout
  204. * modbus_get_timeout_end -> modbus_get_byte_timeout
  205. * modbus_set_timeout_end -> modbus_set_byte_timeout
  206. - Fix longstanding limitation of server to wait forever
  207. - New functions modbus_set/get_serial_mode by Manfred Gruber and Stéphane
  208. Raimbault for RS485 communications
  209. - Improved recovery mode (see modbus_set_error_recovery documentation) for
  210. data link and protocol errors.
  211. - Fix compilation issue with Microsoft Visual Studio 2008.
  212. Reported by Allan Cornet.
  213. libmodbus 2.9.3 (2011-01-14)
  214. ============================
  215. - Major rewriting of the message reading (no more timeouts on exception)
  216. by Stéphane Raimbault
  217. - New function to reply to an indication with an exception message
  218. modbus_reply_exception()
  219. - New function modbus_get_header_length(modbus_t *ctx)
  220. - New functions to manipulate data:
  221. * MODBUS_GET_INT32_FROM_INT16
  222. * MODBUS_GET_INT16_FROM_INT8
  223. * MODBUS_SET_INT16_TO_INT8
  224. - Fix GH-2. Read/write were swapped in _FC_READ_AND_WRITE_REGISTERS
  225. - Install an ignore handler for SIGPIPE on *BSD
  226. Original patch by Jason Oster.
  227. - Fix closing of Win32 socket.
  228. Reported by Petr Parýzek.
  229. - Fix unit identifier not copied by the TCP server.
  230. Reported by Antti Manninen.
  231. - Fix missing modbus_flush() in unit tests
  232. - Fixes for OpenBSD by Barry Grumbine and Jason Oster
  233. libmodbus 2.9.2 (2010-12-05)
  234. ============================
  235. - Win32 support by Tobias Doerffel
  236. - Split source code around RTU and TCP (backends)
  237. - Rename modbus_[listen|accept] to modbus_tcp_[listen|accept]
  238. - Remove slave argument from modbus_new_rtu()
  239. - Check received function code
  240. - Fix segfault in bandwidth-server-many-up on inet_ntoa() call
  241. - Fix unit test of report slave ID in RTU
  242. - Fix GH-3. Remove inclusion of config.h in modbus.h
  243. - Correctly detect if we are cross-compiling for win32 by Kirill Smelkov.
  244. - Fix setting of the broadcast address
  245. libmodbus 2.9.1 (2010-08-16)
  246. ============================
  247. - Brand new API (see MIGRATION notes)!
  248. - Remove the internal function set_message_length_tcp
  249. - Restore slave ID (server ID) argument in functions
  250. - Error conventions of POSIX systems and error recover
  251. - Parity setting is now a single char ('N', 'E' or 'O')
  252. - Report slave ID server side
  253. - OpenBSD support by Anibal Limón.
  254. - New read and write registers function by Hannu Vuolasaho.
  255. - Versioning infrastructure
  256. Inspired by the Clutter project and the work done by Florian Forster.
  257. - Fix the broadcast constant (255 -> 0)
  258. Reported by David Olivari.
  259. - Fix #463299 - New functions to define the timeouts of begin and end of trame
  260. Original patch by Sisyph (eric-paul).
  261. - Fix #591142 - Slave id check should be disabled in TCP connection
  262. Reported by aladdinwu.
  263. libmodbus 2.1.0 (2010-03-24)
  264. ============================
  265. - New API to read and write float values by Stéphane Raimbault and Florian
  266. Forster.
  267. - New API for slave server (see MIGRATION)
  268. - New slave server able to handle multiple connections
  269. - Slave only replies to broadcast queries or queries with its slave ID
  270. - Improved Modbus protocol conformance
  271. - modbus_param_t is smaller (2 int removed)
  272. - Better error management and SIGPIPE signal is blocked
  273. - Faster
  274. - Fix #333455 - Cygwin IPTOS_LOWDELAY not supported on cygwin
  275. Reported by Jeff Laughlin and Yishin Li.
  276. - Fix #375926 - modbus.c:164: error: `MSG_DONTWAIT' undeclared
  277. Reported and tested by Yishin Li.
  278. - Fix #378981 - CRC error on RTU response doesn't return negative value
  279. Reported by Henrik Munktell.
  280. - Fix report slave ID request
  281. Patch (bzr) provided by Paul Fertser.
  282. - Fix #425604 - Conditional jump or move depends on uninitialised value(s)
  283. Occurs on first occurence of slave timeout.
  284. Reported by Henrik Munktell.
  285. - Fix #457200 - FreeBSD support
  286. Patch provided by Norbert Koch.
  287. Other changes:
  288. - The code is now published and developed on
  289. http://github.com/stephane/libmodbus
  290. - Waf support has been removed
  291. libmodbus 2.0.3 (2009-03-22)
  292. ============================
  293. - Fix CRC error when a slave RTU send a response.
  294. Thanks to Justin Carroll to have reported and tested my patch.
  295. - Remove an assignment in compute_response_length()
  296. - Remove duplicate counter in read_io_status()
  297. - Fix #274511 reported by 'Kylesch'
  298. Invalid error check in modbus_init_listen_tcp
  299. libmodbus 2.0.2 (2008-08-10)
  300. ============================
  301. - Fix a bug reported by email by Davide Pippa
  302. The function modbus_receive must check the number of values
  303. indicated in the response accordingly to the query.
  304. - Fix #241006 reported by Jesus Hernandez Tapia
  305. modbus_check_response() crashes on an invalid exception code
  306. - Reduce the number of function calls (read_reg_response and
  307. preset_response have been removed)
  308. - Add a new unit test for bad response
  309. - Catch the timeout even if the length is equal to a exception trame
  310. - Test only msg_length_computed on change
  311. - Many comments and cleanups
  312. libmodbus 2.0.1 (2008-07-02)
  313. ============================
  314. - Include libmodbus.spec in the tarball
  315. - Fix #241006 reported by Jesus Hernandez Tapia
  316. modbus_check_response() crashes on an invalid exception code
  317. libmodbus 2.0.0 (2008-05-18)
  318. ============================
  319. - Slave API
  320. https://blueprints.launchpad.net/libmodbus/+spec/slave-api
  321. - No more glib dependency
  322. https://blueprints.launchpad.net/libmodbus/+spec/glib-dependency
  323. - Unit testing and many test programs
  324. - Waf build support
  325. https://blueprints.launchpad.net/libmodbus/+spec/waf-support
  326. - MacOS X support by Matthew Butch
  327. https://blueprints.launchpad.net/libmodbus/+spec/macosx-support
  328. - Unit testing (unit-test-slave and unit-test-master)
  329. - Port number is now defined at initialisation by Dirk Reusch
  330. - Better memory management (uint8_t *data and packing of
  331. modbus_param_t)
  332. - Better error management
  333. - Declare many static functions and const arrays
  334. - Enhance an integer division
  335. - The GNU licences LGPL and GPL are in version 3
  336. - Debian and RPM packages (#224496)
  337. - Many cleanups
  338. - Fix #159443 reported by Stefan Bisanz
  339. Index of incoming data in force multiple coils function
  340. - Fix #161989 reported by Konstantinos Togias
  341. Serial device paths more than 10 chars long (eg. /dev/ttyUSB0) don't
  342. fit to modbus_param_t -> device char[11] var.
  343. - Fix #188189 reported by Chris Hellyar
  344. Compute_response_size() no entry for read_input_status()
  345. - Fix #191039 reported by Todd Denniston
  346. modbus.h is not installed at prefix.
  347. - Fix #211460 reported by Todd Denniston
  348. With TCP, automatic reconnect on error may not be desired.
  349. - Fix #224485 reported by Todd Denniston
  350. libmodbus does not link with c++ code.
  351. - Fix #224496 reported by Todd Denniston
  352. It is easier to install on rpm based systems with a spec file.
  353. libmodbus 1.2.5 (2008-05-18)
  354. ============================
  355. - Fix #224485 reported by Todd Denniston
  356. libmodbus does not link with c++ code.
  357. libmodbus 1.2.4 (2008-03-14)
  358. ============================
  359. - Fix #191039 reported by Todd Denniston
  360. modbus.h is not installed at prefix.
  361. libmodbus 1.2.3 (2008-02-03)
  362. ============================
  363. - Fix #188189 reported by Chris Hellyar
  364. Compute_response_size() no entry for read_input_status()
  365. - Fix #181887 reported by Jesus Hernandez Tapia.
  366. Slave address in build_request_packet_tcp() is hardcoded as 0xFF.
  367. libmodbus 1.2.2 (2007-11-12)
  368. ============================
  369. - Fix #161989 reported by Konstantinos Togias
  370. Serial device paths more than 10 chars long (eg. /dev/ttyUSB0) don't
  371. fit to modbus_param_t -> device char[11] var.
  372. - Structure is also bit better 'packed' to conserve memory (see the
  373. trunk for a real enhancement).
  374. libmodbus 1.2.1 (2007-11-02)
  375. ============================
  376. - Fix #159443 reported by Stefan Bisanz
  377. Index of incoming data in force multiple coils function
  378. - Deleted useless code in check_crc16()
  379. - Untabify source code
  380. - Changed author's email to Stéphane Raimbault
  381. libmodbus 1.2.0 (2007-05-10)
  382. ============================
  383. - FIX Compilation GCC-4.0
  384. - Project name in autogen.sh