Форум сайта python.su
Подскажите, где что исправить.
Есть код для получения данных с датчика метеостанции на ардуино. С ардуино надо принять строку через com-порт и вывести температуру через окно Tk
Если увеличить root.after(10, run), скажем до 10000, то подвисаний практически нет. Но если требуется большая скорость обновления информации
from tkinter import Tk, Label, mainloop from time import sleep import serial import json ser = serial.Serial('COM3', 115200, timeout=1.0, xonxoff=False) ser.write(b'1') def datchik(): data=ser.readline() if len(data)>70: stroka=data.decode('utf-8') dict = json.loads(stroka) label1_2.config(text = str(dict["temp"])) label2_2.config(text = str(dict["hum"])) root.after(10000, datchik) root=Tk() datchik() label1_1 = Label(root, text="Температура ") label1_2 = Label(root,text='n/d') label1_1.grid(row=0, column=0) label1_2.grid(row=0, column=1) root.mainloop()
Офлайн
Предполагаю что это изза того что timeout=1.0 (1 сек), а root.after(10, run) тоесть 0.01 сек. Но это не точно . На самм деле ХЗ что там на самом деле, но я столкнулся с той-же проблемой с ардуиной, когда помогал “ребетенку” с дипломной работой. ГУИ подвисало в самый непредсказуемый момент, могло зависнуть на второй секундке, а могло без проблем отработать от начала до конца. Посколку времени было мало, чтобы досконально разобраться, то проблему решили радикально, вынесли опрос компорта в отдельный процесс, и зависания прекратились.
[code python][/code]
Отредактировано PEHDOM (Март 6, 2020 15:46:42)
Офлайн
PEHDOMВот с выносом в отдельный процесс пока у меня сложно(( Так как только осваиваю. Пару часов сегодня читал, но пока к своему скрипту не мог приспособить
Предполагаю что это изза того что timeout=1.0 (1 сек), а root.after(10, run) тоесть 0.01 сек. Но это не точно . На самм деле ХЗ что там на самом деле, но я столкнулся с той-же проблемой с ардуиной, когда помогал “ребетенку” с дипломной работой. ГУИ подвисало в самый непредсказуемый момент, могло зависнуть на второй секундке, а могло без проблем отработать от начала до конца. Посколку времени было мало, чтобы досконально разобраться, то проблему решили радикально, вынесли опрос компорта в отдельный процесс, и зависания прекратились.
Офлайн