DISCOSClient is a Python client for accessing telemetry data streams from DISCOS (Development of the Italian Single-dish COntrol System), the control system used by INAF's radio telescopes.
The client allows subscriptions to specific components (e.g., mount, antenna) and provides thread-safe, read-only access to their internal state via a structured and immutable interface.
- ZeroMQ SUB client for structured telemetry updates
- Asynchronous and synchronous interface
- Immutable nested namespaces for safe access
- Lightweight and dependency-minimal
- JSON schemas used as metadata for message structure
Clone the repository and install the package:
git clone https://github.com/discos/DISCOSClient.git
cd DISCOSClient
pip install .
from discos_client import DISCOSClient
SRT = DISCOSClient("mount", address="127.0.0.1")
az = SRT.mount.azimuth.currentPosition
el = SRT.mount.elevation.currentPosition
print(f"Azimuth: {az}\nElevation: {el}")
discos_client/
– Main client implementationdiscos_client/schemas/
– JSON schemas used as structural metadatatests/
– Unit tests
For more details, read the full documentation, available at:
📘 https://discosclient.readthedocs.io/en/latest/
This project is licensed under the GPL-3.0-only license.
See the LICENSE
file for details.
Giuseppe Carboni – [email protected]