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

If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow