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_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.

Exemple de sortie

Si cet article vous a aidé, pensez à m'offrir un café ou à faire un don via PayPal pour soutenir la recherche et la publication de nouveaux articles sur TechOverflow