OpENer 2.1.0 - ENIP April 2017
OpENer 2.1 - Implements EtherNet/IP April 2017 specification
This release is the first release version, since I (Martin) took over the development of OpENer in 2013, and since the old home of OpENer on Source Forge was taken down.
It is the first time since then, that I deem some major development done. We, the OpENer team, worked a lot to provide an open source implementation of EtherNet/IP, which in its current state can pass the conformance test tool CT-14 and even can pass the Common and Adapter test on the ODVA PlugFest last December in Marktheidenfeld.
In this last 5 years (or 476 commits later) we provided a lot of new features and improvements, which of course mainly targeted to provide a working state of the art stack for EtherNet/IP, but we also tried to improve code quality and accessibility for the users of OpENer.
Just to name a few of this improvments, we switched to the CMake for cross-platform build, updated and fixed and Windows version, added unit tests via CppUTest, fixed several programming and/or compliance errors in the Ethernet Encapsulation protocol, Connection Manager, TCP/IP, Identity and several more object.
A new coding style was implemented and large functions were split into smaller pieces to improve readability of the code and hopefully makes the intention of the code sections now clearer (at least it is now much clearer to me). In the spirit of continous delivery we use TravisCI to automatically build and test the current version of OpENer and we automatically generate the current version of our doxygen documentation and deploy it at http://eipstackgroup.github.io/OpENer/
Our latest addition was the use of Scan Coverity in order to further increase code quality via rigid static code analysis.
Major project in the pursuit to provide a version, which is capable to pass the conformance test tool, were the integration of the correct socket timeout behavior, a fixed and updated Forward Open and Forward Close service, the fix for socket leaks, and last but not least a almost complete rewrite of the Connection Object in order to cope with the required timeout behavior of Class 1 and Class 3 connections.
This would not have been possible without the OpENer team and the OpENer community, which provided bug reports and fixes several times. Thank you all for your efforts!
So to round up the features of this release:
- OpENer implements the EtherNet/IP April 2017 specification
- Device parameters (device name, vendor/device/product ID) are now configurable via CMake
- OpENer now only needs the ethernet interface name in Linux or the interface index in Windows to populate the information for the TCP/IP object
- Updated stc and eds files are provided
Best regards,
The OpENer team