Libmodbus Versions Save

A Modbus library for Linux, Mac OS, FreeBSD and Windows

v3.1.10

1 year ago

Urgent release to fix a regression.

  • Fix baud rate handling with RTU under Linux
  • Fix modbus_disable_quirks signature

v3.1.9

1 year ago

What's Changed

  • Remove Travis CI
  • Move content about migration to libmodbus.org
  • Avoid negative value in FD_SET call
  • Test socket against positive value instead of -1
  • Improvements to autotools by @ndim
  • Fix doc links by @jordanjohnson56 (#653)
  • Test the protocol id for 0 by @metapsychologe (#509)
  • Fix double negative in tests
  • New quirks handler (closes #38 #533)
  • Fix bitwise OR in documentation
  • Improve doc about slave ID in RTU
  • Add .clang-format and format code (closes #394)
  • Remove constraints on baud rate values
  • Accept IP or device in arg of unit test progs
  • Avoid compilation issue with VS2022 with strdup
  • Display created files in configure.js
  • Use strcpy_s under Windows
  • Replace inet_addr by inet_pton calls
  • Replace inet_ntoa by inet_ptop
  • Update configure.ac/config.h.win32 for new inet functions
  • Instructions to build libmodbus in a VS project
  • Fix connection check for Windows RTU (closes #660, #662)
  • Add CIFuzz Github action by @DavidKorczynski (#669)
  • Convert a few int to unsigned int (#402)

New Contributors

v3.1.8

1 year ago
  • Major rewrite of documentation with Material for mkdocs
  • Reduce memory use of TCP PI backend (closes #621)
  • Fixed MODBUS_ERROR_RECOVERY_LINK not working on Windows (@embeddedmz)
  • Replace Travis CI by GitHub CI
  • Fix linker error for Windows (VCLinkerTool)
  • Address check in single register / coil responses added (#463)
  • Swap CRC bytes in request data but not at CRC computing (#397)
  • Fix float endianness issue on big endian architecture
  • Fix comment about EMBUNKEXC (closes #566)
  • Fix network library detection on Haiku
  • Fix typos (closes #620)

New Contributors

Full Changelog: https://github.com/stephane/libmodbus/compare/v3.1.7...v3.1.8

v3.0.6

1 year ago
  • Backport fix remote buffer overflow vulnerability on write requests
  • Replace deprecated INCLUDES by AM_CPPFLAGS

v1.2.2

1 year ago

libmodbus is an old project but I never wrote a post about it.

I recently released 2 new versions to include some bug fixes:

  • Fix #161989 (Konstantinos Togias) Serial device paths more than 10 chars long (eg. /dev/ttyUSB0) don't fit to modbus_param_t -> device char[11] var.
  • Structure is also bit better 'packed' to conserve memory (see the trunk for a real enhancement). libmodbus 1.2.1 (2007-11-02)
  • Fix #159443 (Stefan Bisanz) Index of incoming data in force multiple coils function
  • Deleted useless code in check_crc16()
  • Untabify source code
  • Changed author's email (Stéphane Raimbault)

The development continues (slowly) in trunk to include the slave component of the protocol.

v2.9.2

1 year ago

OK, I don't care about Windows but I'm happy libmodbus offers a bit of Open Source to this platform so thank you to Tobias Doerffel for this contribution. The other major change is the use of an internal backend to isolate the transport layers (only serial RTU and TCP/IPv4 for now).

  • Fix segfault in bandwidth-server-many-up on inet_ntoa() call
  • Fix unit test of report slave ID in RTU
  • Fix GH-3. Remove inclusion of config.h in modbus.h
  • Correctly detect if we are cross
  • compiling for win32 by Kirill Smelkov.
  • Rename modbus_[listen|accept] to modbus_tcp_[listen|accept]
  • Fix setting of the broadcast address
  • Remove slave argument from modbus_new_rtu()
  • Win32 support by Tobias Doerffel
  • Split source code around RTU and TCP (backends)
  • Check received function code

So let's run your MinGW!

v2.9.3

1 year ago

During this development cycle, I've received more feedback than for any other releases. That's really cool, thank you! With this new release, you can consider to migrate from the previous 2.0.x series for your applications.

  • Major rewriting of the message reading (no more timeouts on exception)
  • New function to reply to an indication with an exception message modbus_reply_exception()
  • New function modbus_get_header_length(modbus_t *ctx)
  • New functions to manipulate data:
    • MODBUS_GET_INT32_FROM_INT16
    • MODBUS_GET_INT16_FROM_INT8
    • MODBUS_SET_INT16_TO_INT8
  • Fix #2 . Read/write were swapped in _FC_READ_AND_WRITE_REGISTERS
  • Install an ignore handler for SIGPIPE on *BSD. Original patch by Jason Oster.
  • Fix closing of Win32 socket. Reported by Petr Parýzek.
  • Fix unit identifier not copied by the TCP server. Reported by Antti Manninen
  • Fix missing modbus_flush() in unit tests.
  • Fixes for OpenBSD by Barry Grumbine and Jason Oster

This time, the release is not only available as tarball but also as Fedora and Ubuntu packages on the download page.

For the next release, I've already merged my ipv6 branch (based on the work of Florian Forster), the rtai branch of Chris Cole is waiting for review (ah, RTAI, like in the good old days :) and I hope to take care of the gtk-doc work done by Luis Matos.

v2.9.4

1 year ago

This minor release contains many new features with IPv6 support, documentation (man and HTML), error recovery modes and small API changes. I'm intend to release the version 3.0 so I need feeback from this release even more if you use libmodbus on Windows or MacOS X (check nanosleep support for example).

It's easy to test the library, just compile and run the unit tests! Don't forget to notify your success or failure (by mail, wiki or bug report), see the Call for Testers page or the mailing list for details.

There are already Debian and Fedora packages but I need help to submit them to the distributions, so all experience in this field is appreciated.

  • IPv6 support Make the TCP implementation "protocol independent" by Florian Forster and Stéphane Raimbault.

  • Fix compilation on Windows 7 (x64) with MinGW/MSYS and GCC 4. Reported by Patsy Kaye.

  • Documentation of libmodbus functions with AsciiDoc (man and HTML) by Stéphane Raimbault

  • Avoid an iteration in flush function

  • New functions to send and receive raw requests (modbus_send_raw_request, modbus_receive_confirmation)

  • Fix flush function of TCP backend on Windows

  • API changes for server/slave:

    • modbus_receive doesn't take socket/fd argument anymore
    • new function modbus_set_socket to set socket/fd
  • API changes for timeout functions:

    • modbus_get_timeout_begin -> modbus_get_response_timeout
    • modbus_set_timeout_begin -> modbus_set_response_timeout
    • modbus_get_timeout_end -> modbus_get_byte_timeout
    • modbus_set_timeout_end -> modbus_set_byte_timeout
  • Fix longstanding limitation of server to wait forever

  • New functions modbus_set/get_serial_mode by Manfred Gruber and Stéphane Raimbault for RS485 communications

  • Improved recovery mode (see modbus_set_error_recovery documentation) for data link and protocol errors.

  • Fix compilation issue with Microsoft Visual Studio 2008. Reported by Allan Cornet.

v3.0.1

1 year ago

A dot zero isn't a dot zero without few problems, so I've released to fix problems with non-recent Linux kernels and other platforms.

  • Avoid useless serial_mode integer when TIOCSRS485 isn't supported
  • Fix compilation failure on Windows (RS485 support) by Tobias Doerffel
  • Properly check TIOCSRS485 define by Matthijs Kool
  • Rename package to libmodbus5 to fix lintian warning.

v3.0.0

1 year ago

OK, the new stable release of libmodbus is finally out! Two years after libmodbus v2.0.3 and 400 commits, I'm happy to release this new version which contains many changes to improve the API and enhance the Modbus protocol conformity.

The major features of this release are:

  • more coherent and extended API
  • POSIX error return codes
  • full documentation of the API
  • IPv6 support
  • new backend design
  • support for Windows, MacOS X and FreeBSD
  • rewriting of the message reading to avoid timeout
  • native serial communication on Windows

Thanks to the many contributors

Tobias Doerffel, Florian octo Forster, Hannu Vuolasaho, Patsy Kaye, Ivo De Decker, Allan Cornet, Manfred Gruber, Jason Oster, Petr Parýzek, Antti Manninen, Barry Grumbine, Kirill Smelkov, Anibal Limón, David Olivari, Sisyph, aladdinwu, Jeff Laughlin, Yishin Li , Henrik Munktell, Paul Fertser, Norbert Koch and Stéphane Raimbault (@stephane)