Releases: stephane/libmodbus
v3.0.0
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)
v2.9.4: Bump version to 2.9.4
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.
v2.9.3
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.2: Add -Wall and -Werror for GCC
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]
tomodbus_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!
v1.2.2
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 tomodbus_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.