a Linux Modbus Library Authors and Credits =================== The original "linuxmbus" library was written by Philip Costigan [phil AT pcscada.com.au] http://pcscada.com.au who in turn was inspired by some earlier work of Paul McRae [paul AT pmcrae.freeserve.co.uk] http://www.pmcrae.freeserve.co.uk who wrote a small program to read 100 registers from a modbus slave. The current Linux Modbus library was written by Frank Rysanek of FCC Prumyslove Systemy s.r.o. [rysanek AT fccps DOT cz] and it originated from the works mentioned above. The original code has been bugfixed, cleand up, extended to cover more Modbus functions, and refactored several times to make it more universal and more appropriately structured. Version 0.1 consisted of several bug fixes, code cleanups and documentation updates, plus a crufty C++ wrapper. Version 0.2 is a thorough rewrite - the C code was made thread-safe and better structured/layered, lots of duplicate code from the self-sufficient RTU and TCP flavours was merged into a common Modbus code file. Plus some radical crapectomy (TM Francois Romieu) and improved failure passing/handling. The C++ wrapper has finally become a thin shim on top of the C code - the only added C++ functionality consists of the "modbus slave" pseudo-objects (C++'ish syntactic candy stuff). Yet most of the algorithms can still be tracked back to the original authors mentioned above. Version 0.3 is another thorough rewrite. The C++ code was dropped, its important functions were embedded into the core C library (including basic polymorphism). Other added features: - Modbus/ASCII support (now along with RTU and TCP) - internal threading - basic slave support Version 0.4 added some prefabricated slave function callbacks, that are on par with the master-side Modbus function short-hands. And, proper documentation. Version 0.4.1 added two examples/utils: mb_read = a somewhat universal cmdline util to query Modbus RTU slaves mb_analyzer = a simple Modbus RTU traffic analyzer Version 0.4.2 added another example utility: mb_responder = a simple Modbus RTU slave serving read_* queries Version 0.4.3 added an arg to modbus_open(), allowing you to select whether to keep trying or give up immediately, if an underlying open() or connect() fails.