Bonjour,
Actuellement en cours de développement d'un script pour récupérer des données via une commande SSH + script en local, j'aimerai faire l'affichage des informations (Numérique) sur un graphique en mode dynamique avec rafraîchissement auto.
Déja fonctionnelle :
- Connexion ssh + mise ne vairable des informations .
- Affichage des données après scan via regex pour centrer les informations utiles.
Proposition :
- Test avec Matplotlib pour faire un affichage dynamique mais le graphique n'évolue pas.
- Test avec sauvegarde du graphique en png puis lecture des image, mais idem pas d'affichage. L'affichage évolutif est possible lorsque j'ouvre une image sur l'explorateur.
Code d'ouverture :
Code de récupération des informations :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 def start(ip, cmd): proc = Popen( TEMPLATE.format(ip, ip, cmd), stdout=PIPE, stderr=STDOUT, text=True, shell=True, ) return proc
Code de création d'images :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 while 1: text = test.stdout.readline()[:-1] reg = re.findall(r"current : (-[0-9].[0-9]+|[0-9].[0-9]+)", text) if reg : current1.append(reg[0])
Affichage :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 plt.plot(current1) plt.savefig(str(directory )+ "/" + str(j) +".png") j+=1 if j ==10: j =0
Questions :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 directory = Path(__file__).parent fenetre = Tk() im = cv2.imread(str(directory )+ "/1.png") h,w,c = im.shape x = h*1.33 y = w*0.75 width = fenetre.winfo_screenwidth() height = fenetre.winfo_screenheight() #fenetre.configure(width=width//2, height=height//2) fenetre.configure(width=x, height=y) canvas = Canvas(fenetre, width=x, height=y) i = 0 j = 0 while TRUE: photo = PhotoImage(file=str(directory )+ "/" + str(j) +".png") canvas.create_image(0, 0,anchor = NW, image=photo) j +=1 if j ==10: j=0 canvas.pack() fenetre.mainloop()
- Est ce que Matplot lib est bien adapté pour faire cela ?
- Existe-t-il une libriarie plus adaptée?
- N'étant pas expert en python, il est fort probable que ma démarche pour réaliser cela ne soit plus la plus optimal, comment puis-je corriger cela?
D'avance merci.
Partager