Roadmap

The current version of OpenDAX is 0.4. 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.

Version 0.5

The main goal in the 0.5 release will be making the library functions reentrant. Right now there is global data in the library for tracking the server connections, tag caches etc. This will be eliminated, but an opaque pointer will have to be used for most of the library function calls. This will break all the current module code. It shouldn't be that difficult but it will be tedious.

There is also some duplication of code between different modules that use Lua to access the library. The Lua wrapper functions should be moved to a new library that is also compiled into a Lua module package so that OpenDAX modules can be written in pure Lua.

Event handling is the next major feature addition. The idea is to send asynchronous messages to modules when
certain things happen to tags, such as writing, changing etc. This could get very complex and I have to decide what events will be important and find a balance between usability and complexity.

  • Reentrant library functions
  • Event handling functionality
  • Clean up the message logging
  • Add Historical Logging Module
  • Move Common Lua code to it's own library

Version 0.6

  • Module handling improvements. Namely startup order and restarting
  • Module connections and stdin/out/err pipes.

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 still need to be created.

  • 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.