erste serielle tests

This commit is contained in:
jfsScience 2021-06-10 17:24:05 +02:00
parent 14f7f72a54
commit a3e64638b5
2 changed files with 79 additions and 0 deletions

33
gui/queue_thread.py Normal file
View 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
View 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"))