Bonjour a tous et merci pour votre forum.
Je débute avec python ...
Je voudrais faire une petite appli qui affiche "serial_port.readline()"
J'utilise la lib serial pour dialoguer avec une carte électronique.
A terme je voudrais que mon appli affiche les RX du port com, les stockes dans un fichier .log, et prenne des décision en fonction.
Mais commençons d'abord par l'affichage.
A force de tuto et autre cours sur le web je suis parvenu a pondre un bout de code fonctionnel (manque la scrollbar auto) :
Mais voila : j'ai commancer a vouloir le trasnformer en classe mais je bloque total apres ça :
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42 import serial import threading from Tkinter import * ######################## form1=Tk() form1.title('form1') form1.resizable(width=FALSE, height=FALSE) form1.geometry('235x154+100+100') richTextBox1=Text(font = '{MS Sans Serif} 10') richTextBox1.place(relx=0.05, rely=0.07, relwidth=0.89, relheight=0.59) scrollbar = Scrollbar(richTextBox1) scrollbar.pack( side = RIGHT, fill=Y ) ######################## serial_port = serial.Serial('COM6') serial_port.baudrate=9600 ######################## def form1mainloop(): form1.mainloop() ######################## def scan(): richTextBox1.insert(END,serial_port.readline()) form1.after(100,scan) ######################## form1.after(100,scan) form1.mainloop() serial_port.close()
Est-ce bien utile pour moi de passer par une classe ? pourquoi ?
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 import serial import threading import Tkinter ######################## serial_port = serial.Serial('COM6') serial_port.baudrate=9600 class alex_app(Tkinter.Tk): def __init__(self,parent): Tkinter.Tk.__init__(self,parent) self.parent = parent self.initialize() def initialize(self): self.grid() self.richTextBox1=Tkinter.Text(self) self.richTextBox1.grid(column=0,row=0,sticky='EW') self.labelVariable = Tkinter.StringVar() label = Tkinter.Label(self,textvariable=self.labelVariable, anchor="w",fg="white",bg="blue") label.grid(column=0,row=1,columnspan=2,sticky='EW') self.grid_columnconfigure(0,weight=1) self.resizable(False,False) def read_port_com(self): #c'est ici que je voudrais appeler ma fonction toute les x ms #ou avoir un event si rx port com ? ######################## if __name__ == "__main__": app = alex_app(None) app.title('my application') app.mainloop() serial_port.close()
Un petit coup de main pour me debloquer et pour la scrollbar ?
Merci d'avance.
Partager