A generic online monitor for real-time plots from independent data acquisition systems
Installation
The last stable code is hosted on PyPi. Thus for installation type:
pip install --upgrade pip
pip install online_monitor
Otherwise download the code and run
pip install -e .
You can run the unit tests to check the installation
pytest online_monitor
Usage
For a demo type into the console:
start_online_monitor
To stop all instances of online_monitor (e.g. converter, receiver, etc), type
stop_online_monitor
Info
This package is a meta package providing all tools to convert data in real time distributed on several PCs and to visulize them in real time (> 20 Hz). The online monitor is based on a concept with these enitites:
-
Producer: This is your DAQ system that sends data via a ZMQ PUB socket. The data format is your choise. The producer is not part of the online_monitor. For testing / debugging a simulation producer is provided that can generate fake data.
-
Converter: A converter converts data from one (ore more) producers (e.g. histogramming) and publishes the converted data as a ZMQ PUB socket. Since the converter is specific to your data type you have to define the converter! Take a look at the example folder.
-
Receiver: A receiver connects to a converter and defines the plots to be shown. Since the receiver is specific to your wished / data you have to define the receiver! Take a look at the example folder.
Complex chains are possible with several parallel/interconnected converters, receivers and producers. One configuraion *. yaml file defines your system. Take a look at the example folder or the main folder for a configuration.yaml example.
There are start script to start the online monitor and/or the converters and producers simulating data.
To start the online monitor including simulation producers / converters type into the console:
start_online_monitor configuration.yaml
To start the converters type:
start_converters configuration.yaml
Custom plugins
To use your own online_monitor plugins within your e.g. DAQ system, you have to add your respective converter / receiver/ etc paths to the OnlineMonitor.ini. This can be done by using the plugin_online_monitor script, running
plugin_online_monitor path/to/my/plugin/folder
or
cd path/to/my/plugin/folder
plugin_online_monitor
This makes all converter / receiver / etc. instances within path/to/plugin/folder available to online_monitor.
Custom receiver
Have a look at the examples.
When building your custom receiver, use pyqtgraph only for plotting-related tasks e.g. pg.ImageItem etc.
Avoid using pyqtgraph for building generic widgets (especially the deprecated QtGui submodule), instead use pyqt6 directly:
from PyQt6 import QtWidgets, QtCore
my_custom_label = QtWidgets.QLabel("My label")
my_custom_double_spinbox = QtWidgets.QDoubleSpinBox()
my_custom_grid_layout = QtWidgets.QGridLayout()
my_custom_signal = QtCore.pyqtSignal(str)
...
Custom producer
The producer allows to replay previously recorded data at a custom replay rate. For most SiLAB-type DAQ systems, the silab_default_producer works out-of-the box and is automatically availabe after install.
Testing
Everything is tested on Windows and Linux for Python 3.8/9 with coverage. Have a look at the tests as well as the respective GH actions and coverall.io pages.
Metadata
Release files for online-monitor 0.7.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| online_monitor-0.7.0.tar.gz | 30.6 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| online_monitor-0.7.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 74.1 kB
Release files / online_monitor-0.7.0.tar.gz
| Download URL | online_monitor-0.7.0.tar.gz |
|---|---|
| Size | 30.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
93d16a04a25b96e310b2aa211868b42b415959c173b4ec112c89d1ed95261274
|
|
BLAKE2b-256 checksum How to use checksums |
e82a7868b9e99e0a633ab996b7900516e74abfbcba57646daa40193f375c1313
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 19, 2026.
Transparency logRelease files / online_monitor-0.7.0-py3-none-any.whl
| Download URL | online_monitor-0.7.0-py3-none-any.whl |
|---|---|
| Size | 43.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
82b2909c79ef784280fd3d902e887d4456a40093d621cd450a174a70ba8043ba
|
|
BLAKE2b-256 checksum How to use checksums |
8d596948cc76cf45cba8d201de6d8646e95174f88437b654078d2df693986343
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 19, 2026.
Transparency logSecurity for online-monitor 0.7.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for online_monitor-0.7.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Mar 19, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.