PlotJuggler - ZMQ - Python exemple minimal de source de données

L’exemple suivant sert de point de départ pour développer une source de données personnalisée pour PlotJuggler en utilisant Python et ZeroMQ.

Afin de l’utiliser, configurez PlotJuggler comme ceci

PlotJuggler streaming

PlotJuggler config

plotjuggler_zmq_producer.py
import zmq
import time
import json
import math

# Configuration ZeroMQ
context = zmq.Context()
socket = context.socket(zmq.PUB)
socket.bind("tcp://*:5555")  # Lier à un port auquel PlotJuggler se connectera

# Générer et envoyer les données
time_start = time.time()
try:
    while True:
        elapsed_time = time.time() - time_start
        value = {
            "timestamp": elapsed_time,  # Temps en secondes depuis le démarrage du script
            "variables": {
                "sin": math.sin(elapsed_time),  # Onde sinusoïdale
                "cos": math.cos(elapsed_time),  # Onde cosinusoïdale
            },
        }

        # Envoyer les données en JSON avec le sujet "sincos"
        socket.send_string("sincos", zmq.SNDMORE)
        socket.send_string(json.dumps(value))
        time.sleep(0.01)  # Taux de mise à jour de 100 Hz
except KeyboardInterrupt:
    print("Flux de données interrompu.")
finally:
    socket.close()
    context.term()

Maintenant cliquez sur Start dans l’onglet streaming et n’oubliez pas de glisser les variables sin et cos vers le graphique.

PlotJuggler add curves

Exemple de sortie

PlotJuggler Python ZMQ example


Check out similar posts by category: Python, ZeroMQ