yes, my wording wasnt appropriate, sorry. I'll refrain from posting after beer #2
I should write down my current plans for restructuring LinuxCNC in a wiki page, to outline how redis fits in.
the status currently is:
- the following components already have basic redis capability: task, interpreter, TkInter Python applications like Axis, GladeVCP (in fact all PyGTK or GTK applications like Touchy), any userspace C or Python HAL component.
- they can both use the redis set/get and derived mechanisms to export/retrieve global variables
- they also can use the publish/subscribe mechanism to declare interest in what is called a 'channel', and get notified asynchronously when a channel-related event happens, for instance, when a variable changes value (this is why the async support is needed).
As mentioned, I use hiredis for C, and redis-py for Python for synchronous I/O. For publish/subscribe I currently use Twisted, which is the fasted path to get this to work on the Python side, but there are some minor issues left with TkInter apps.
The open issues are:
- design a redis data model which includes the tool table, and possibly other state components in an extensible way
- implement this without breaking backwards compatibility (it will be a lot of work until all user interfaces are adapted, and I dont know others than Axis and Touchy very well)
- export/import to/from external files like tooltable
I'd be interested to discuss any plans when accessing interpreter and task state.
- Michael