Presently the components of OpenVisualizer operate within a single process. We wish to experiment with extending this operation However, in a realistic sensor networking implementation, we do not wish to deploy a PC as an LBR! This page presents the first steps toward segmenting the components of OpenVisualizer across processes and machines, using an architecture as shown in the diagram below.
Gliffy | ||
---|---|---|
|
As a first step toward this goal, we plan to separate the GUI to run on a PC, and an LBR to run on an inexpensive, low-power, embedded Linux device.
Gliffy | ||
---|---|---|
|
Messaging
Presently we implement EventBus messaging with PyDispatch, which provides communication between threads in a single process. However, we must split the GUI from the LBR when the LBR is headless, like an embedded Linux device. In addition to host-to-host communication, we also may wish to segment the components in the LBR into separate processes, for example to reimplement serial communication in C.
...
Remote GUI | LBR |
---|---|
On startup, create a signal handler on SIGUSR1 | |
At some later time...
| |
Signal received, and handler connects to WebSocket server on forwarded portws://<remoteip>localhost:8000 /lbr |
The signal above assumes the LBR is in the form of the openVisualizerCli module, which probably is the simplest solution.
...