Thank you very much for the flowers.
You don't need to care about most classes of the diagram. To get a working preview of the workpaths I had to setup a new instance of linuxcnc-interpreter - and as interpreter is doing lot of bullshit to keep python folks happy, I got a big bullshit-section in my app. Don't get lost in that part.
For communication with backend, there are 3 classes:
- StatusReader - polls the linuxcnc status and translates polling sequence into real event-based handling
- CommandWriter - runs in its own thread and ipc works with Qt-signals
- ErrorReader
So to understand the translation of polling into event-handling, have a look at ValueModel and ValueManager. That's my sort of global vars, which all over the app is used and no application part needs to know anything about linuxcnc-code.