PlotJuggler - ZMQ - Python minimales Datenquellen-Beispiel

Das folgende Beispiel dient als Ausgangspunkt, wie man eine benutzerdefinierte Datenquelle für PlotJuggler mit Python und ZeroMQ entwickelt.

Um es zu verwenden, konfiguriere PlotJuggler so

PlotJuggler streaming

PlotJuggler config

plotjuggler_zmq_producer.py
import zmq
import time
import json
import math

# ZeroMQ-Einrichtung
context = zmq.Context()
socket = context.socket(zmq.PUB)
socket.bind("tcp://*:5555")  # An einen Port binden, mit dem sich PlotJuggler verbindet

# Daten erzeugen und senden
time_start = time.time()
try:
    while True:
        elapsed_time = time.time() - time_start
        value = {
            "timestamp": elapsed_time,  # Zeit in Sekunden seit Scriptstart
            "variables": {
                "sin": math.sin(elapsed_time),  # Sinuswelle
                "cos": math.cos(elapsed_time),  # Kosinuswelle
            },
        }

        # Sende Daten als JSON mit dem Thema "sincos"
        socket.send_string("sincos", zmq.SNDMORE)
        socket.send_string(json.dumps(value))
        time.sleep(0.01)  # 100 Hz Update-Rate
except KeyboardInterrupt:
    print("Datenstrom unterbrochen.")
finally:
    socket.close()
    context.term()

Klicke nun auf Start im Streaming-Tab und vergiss nicht, die sin- und cos-Variablen in den Plot zu ziehen.

PlotJuggler add curves

Ausgabe-Beispiel

PlotJuggler Python ZMQ example


Ähnliche Beiträge nach Kategorie: Python, ZeroMQ