The current version of OpenDAX is 0.5. I intend to keep the 0.X version numbering until we have a minimum set of features and that it is stable enough to be used in a production environment. It'll then go to 1.0. Comments and suggestions are always welcome.
The main things that were completed in the 0.5 release were ...
- Event notification and handling facilities in the server and library
- The library was made re-entrant and thread safe
- Lua interface functions were moved to their own library
Version 0.5.1
Event notification has been added to the server and library but not to most of the modules that could benefit from it.
We decided to release 0.5 early so that other module developers could start using the new interface. The interface
for nearly all of the API functions has changed due to the re-entrant / thread safety changes. So we'll add a 0.5.1 version
to fix bugs in what is done and to add some of the new features to exiting modules.
- Add event handling to daxc
- Feature to run daxlua scripts on events.
- More cleaning up of message logging
- Work on the Modbus Module
- Debug and complete tests of the event handling facility
- Add event handling to the documentation
Version 0.6
- Add Historical Logging Module
- Finish the Modbus Module
- Module handling improvements. Namely startup order and restarting
- Module connections and stdin/out/err pipes.
- Value Forcing / Overriding
Version 0.7
- OpenDAX Python Bindings
- Start work on HMI Module
Versions 0.8, 0.9
Bug fix releases getting ready for 1.0
Version 1.0
Version 1.0 would be the first production release. The prerequisites for this release would be...
- No known critical bugs that would affect system stability
- The API should be relatively stable so that we don't break modules every time we add / change a feature in the server or library.
- Documentation will need to be fairly mature. It should at least be sufficient for a new user to use the modules that are included in the package and for new module developers to get started.
Modules that would be nice.
- SVG based HMI.
- Alarming Module.
- Historical Logging Module.
- Foundation Fieldbus Module
- Allen Bradley DF1 Module
- Insteon PLM Module
- Industrial logic interpreter of some kind. Probably an IEC 61131 IL interpreter.
- Comedi Library module. Comedi is a set of Linux device drivers and an associated library for many different data aquisition cards.
- Parallel Port I/O Module
- OPC UA Module (Might have licensing Issues with this one)
Long Term Goals
- I'd like to eventually have a LiveCD and/or a Virtual Machine image that can be used to boot a system with OpenDAX installed. This would let people 'play' with the system without having to deal with all the installation issues.
- Redundancy. I don't know how to do this without making module programming very complex. I still need to think about this one.
- Comprehensive Testing Suite. Right now I have the daxtest module but it only tests API interactions, it doesn't test how the modules behave nor does it test the system under any kind of loading.