The concept is similar to an internet browser. But it is intended for the use in industrial process visualization. It is based on Qt http://www.trolltech.com which is a platform independent GUI toolkit. ProcessViewBrowser is platform independent, because only posix calls and Qt are used. ProcessViewBrowser runs on Linux/Unix/OS-X, OpenVMS and Windows. The browser can display nearly all standard Qt widgets (labels, buttons, editfields, comboboxes, ...) and other widgets for bitmap images, diagram widgets for displaying xy-graphs, SVG-graphics, OpenGL and VTK. The widgets can be arranged on your masks. You can specify the position and size of the widgets.You can place one widget on top of another widget. I have seen many process visualization systems, which define their masks in the clients (I think this is not the right way to go). Instead of this, the masks in ProcessViewBrowser are defined in the appropriate process computer itself. The user can jump from one process computer to the other and see all masks. When masks are updated nothing has to be done in the clients.
ProcessViewServer. The ProcessViewServer is implemented in ANSI C (where as the browser is written in C++). You can easily modify this server to implement your masks. You are free to read the data you want to display from shared memory, database systems or get it via IPC mechanisms like Corba or OPC. The server also runs on Linux/Unix/OS-X, OpenVMS and Windows. Most of the servercode can be generated automatically. You design your masks within pvdevelop and pvdevelop will generate and update the sourcecode (ANSI-C) for you. Normally ProcessViewBrowser needs no modifications at all. It is the task of the user to write his/her ProcessViewServer. This is done using pvdevelop and C/C++ or Python.
For Data Acquisition we use a separate daemon for each interface. The daemon will read the interface cyclically and write the result to a shared memory. The visualization can now easily read the shared memory and display it's content. The daemon also has a mailbox. The visualization can write to this mailbox, in order to output signals to the interface. Within the daemon we heavily rely on rllib. The daemons are included in pvbaddon.tar.gz which must be downloaded additional to pvbrowser.