erste serielle tests
This commit is contained in:
parent
14f7f72a54
commit
a3e64638b5
33
gui/queue_thread.py
Normal file
33
gui/queue_thread.py
Normal file
@ -0,0 +1,33 @@
|
||||
import queue
|
||||
import threading
|
||||
|
||||
num_workers = 4
|
||||
|
||||
q = queue.Queue()
|
||||
|
||||
def do_work(item):
|
||||
print(item)
|
||||
|
||||
def worker():
|
||||
while True:
|
||||
item = q.get()
|
||||
if item is None:
|
||||
break
|
||||
do_work(item)
|
||||
q.task_done()
|
||||
|
||||
threads = []
|
||||
for i in range(num_workers):
|
||||
t = threading.Thread(target=worker)
|
||||
t.start()
|
||||
threads.append(t)
|
||||
|
||||
|
||||
for i in range(100):
|
||||
q.put(i)
|
||||
|
||||
for i in range(num_workers):
|
||||
q.put(None)
|
||||
|
||||
for t in threads:
|
||||
t.join()
|
||||
46
gui/ser_one.py
Normal file
46
gui/ser_one.py
Normal file
@ -0,0 +1,46 @@
|
||||
from tkinter import *
|
||||
import serial.tools.list_ports
|
||||
import functools
|
||||
|
||||
ports = serial.tools.list_ports.comports()
|
||||
serialObj = serial.Serial()
|
||||
|
||||
root = Tk()
|
||||
root.config(bg='grey')
|
||||
|
||||
def initComPort(index):
|
||||
currentPort = str(ports[index])
|
||||
comPortVar = str(currentPort.split(' ')[0])
|
||||
serialObj.port = comPortVar
|
||||
serialObj.baudrate = 9600
|
||||
serialObj.open()
|
||||
|
||||
for onePort in ports:
|
||||
comButton = Button(root,text=onePort,font=('Calibri','13'),height=1, width=45,command=functools.partial(initComPort,index=ports.index(onePort)))
|
||||
comButton.grid(row=ports.index(onePort),column=0)
|
||||
|
||||
dataCanvas = Canvas(root,width=600,height=400, bg='white')
|
||||
dataCanvas.grid(row=0, column=1,rowspan=100)
|
||||
vsb = Scrollbar(root,orient='vertical',command= dataCanvas.yview)
|
||||
vsb.grid(row=0,column=2,columnspan=100,sticky='ns')
|
||||
dataCanvas.config(yscrollcommand=vsb.set)
|
||||
dataFrame = Frame(dataCanvas,bg='white')
|
||||
dataCanvas.create_window((10,0),window=dataFrame,anchor='nw')
|
||||
|
||||
def letsDoIt():
|
||||
serialObj.write(b'Ok there\n')
|
||||
|
||||
b1 = Button(root,text='Click me',command=letsDoIt)
|
||||
b1.grid(row=0,column=3)
|
||||
|
||||
def checkSerialPort():
|
||||
if serialObj.isOpen() and serialObj.in_waiting:
|
||||
recentPacket = serialObj.readline()
|
||||
recentPacketString = recentPacket.decode('utf').rstrip('\n')
|
||||
Label(dataFrame,text=recentPacketString).pack()
|
||||
|
||||
while True:
|
||||
root.update()
|
||||
checkSerialPort()
|
||||
dataCanvas.config(scrollregion=dataCanvas.bbox("all"))
|
||||
|
||||
Loading…
Reference in New Issue
Block a user