Folks,
I have made a major re-write of the EPICS “modbus” module. This is from the Release Notes:
******************************************
Release 3-0
June XXX, 2019
This is a major rewrite of the driver, changing from C to C++ inheriting from asynPortDriver. The major reason for the change is to be able to invoke the class methods such as drvModbusAsyn::doModbusIO() from other drivers. This allows
drivers that communicate with Modbus devices to call methods to perform the Modbus I/O directly, which was not possible with the previous C API.
The new driver should be completely backwards compatible with previous versions, so no changes to IOC startup scripts or OPI displays are required.
A new example program, testClient.cpp, has been added. This program demonstrates how to instantiate a drvModbusAsyn object and use it to perform Modbus I/O to an external device. This example is a pure C++ application running without
an IOC. The same code could be used in a driver in an IOC.
******************************************
The new code is in the asynPortDriver branch on Github. https://github.com/epics-modules/modbus/tree/asynPortDriver
I have also tagged the current version as R3-0-RC1.
I have tested the new version with the Modbus Slave simulator, and it appears to work just like R2-11.
However, before I release R3-0 with this new code I would really like to have more testing done. If you have an existing installation with real hardware and can test the new version I would really appreciate it.
Thanks,
Mark