A Modbus library for Linux, Mac OS, FreeBSD and Windows
Urgent release to fix a regression.
Full Changelog: https://github.com/stephane/libmodbus/compare/v3.1.7...v3.1.8
INCLUDES
by AM_CPPFLAGS
libmodbus is an old project but I never wrote a post about it.
I recently released 2 new versions to include some bug fixes:
modbus_param_t -> device char[11]
var.check_crc16()
The development continues (slowly) in trunk to include the slave component of the protocol.
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).
inet_ntoa()
callmodbus_[listen|accept]
to modbus_tcp_[listen|accept]
modbus_new_rtu()
So let's run your MinGW!
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.
modbus_reply_exception()
modbus_get_header_length(modbus_t *ctx)
MODBUS_GET_INT32_FROM_INT16
MODBUS_GET_INT16_FROM_INT8
MODBUS_SET_INT16_TO_INT8
_FC_READ_AND_WRITE_REGISTERS
modbus_flush()
in unit tests.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.
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 anymoremodbus_set_socket
to set socket/fdAPI 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.
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.
serial_mode
integer when TIOCSRS485 isn't supportedTIOCSRS485
define by Matthijs KoolOK, 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:
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)