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
46
47
48
49
|
| from tkinter import *
import tkinter as tk
from tkinter import scrolledtext
import serial
import threading
class App:
def __init__(self,master):
self.root=root
self.root.title("command panel")
self.root.configure(background="white")
self.root.geometry("850x600")
self.command_field=Entry(self.root, width=80)
self.command_field.place(x=30,y=10)
self.message_frame=tk.Frame(self.root,width=100, height=30)
self.message_frame.place(x=30,y=50)
self.message_area=scrolledtext.ScrolledText(self.message_frame)
self.message_area.pack()
self.message_line=0
self.send_button=Button(self.root, text="send",bd=2,bg='white',
command=self.click_button,width=8, relief=RIDGE)
self.send_button.place(x=700,y=10)
self.serial=serial.Serial('/dev/ttyACM0',115200)
self.serial.flush()
thread=threading.Thread(target=self.read_loop,args=[],name='thread1')
thread.start()
def click_button(self):
inx=self.command_field.get()
print("inx="+inx)
self.serial.write(inx.encode('utf-8'))
self.message_line=self.message_line+1
self.message_area.insert(tk.END,">"+inx)
self.message_area.insert(tk.END,'\n')
self.serial.write('\n'.encode('utf-8'))
self.command_field.delete(0,END)
def read_loop(self):
while True:
c=self.serial.readline().decode('utf-8').rstrip()
self.message_line=self.message_line+1
self.message_area.insert(tk.END,c)
self.message_area.insert(tk.END,'\n')
if __name__=="__main__":
root = Tk()
root.wm_title('Scrolling')
app = App(root)
root.mainloop()
|