Найти - Пользователи
Полная версия: Периодическое считывание данных с COM порта с помощью signal?
Начало » Python для новичков » Периодическое считывание данных с COM порта с помощью signal?
1 2
Aris_P@
тут похожая тема была http://python.su/forum/topic/22485/?page=2
JOHN_16
нет нет. О чем вообще речь?
Блин. Ребят. Вы что то путаете. Я вот лично работал и работаю с 5+ разными COM устройствами, как с обратной связью так и нет. И сейчас пока я пишу это сообщение есть некий компьютер, который стоит где то, в котором python программа, которая работает с COM (RS232) устройством которая считывает раз в 10 (десять) минут значение с прибора (температура и давление) и , к слову, рядом устройство которое считывает 50 значений за секунду (особое давление). Плюс к тому же есть другие приборы которые так же успешно работают. Например мои GPS антенны, хоть 1 раз в час, хоть 1 раз в секунду. Их работоспособность не зависит от чего либо, кроме как аппаратных возможностей.
Так вот, к чему я, в первую очередь нужно понимать в чем перво причина проблемы, к GUI я думаю, это относится на 0%. А насколько хороша/умна ваша железка вы уверенны? м.б. у нее аппаратный сбой после каждого замера, связанный с нехваткой питания или еще что.

Я думаю что проблема не так где вы ищите. Напишите мне в персональные сообщения ваши контакты, я постараюсь помочь разобраться.
romario82
Прогу изменил:
import serial
import os
from tkinter import *
def send (event):
        dat1 = str(dat.get())
        print (dat1)
        ser = serial.Serial('COM1', 9600)
        data = (bytes(dat1, encoding='ascii'))
        ser.write (data)
def temp ():
        ser = serial.Serial('COM1', 9600)
        s=str(ser.readline())
        s=s[2:5]
        t = s
        lab1['text'] = t
        lab1.after(900, temp)
        #return s
root = Tk()
t = StringVar()
#t = temp()
dat = StringVar()
lab1 = Label(root, font="Arial 22",)
#lab1['text'] = temp()
lab2 = Label(root, text = "Температура", font="Arial 18",)
but = Button(root, text="SEND", width=8, height=5)
ent = Entry(root,textvariable = dat, width=20, bd=3)
lab1.grid(row=0, column=0)
lab2.grid(row=1, column=0)
but.grid(row=0, column=1)
ent.grid(row=1, column=1)
lab1.after(250, temp)
but.bind("<Button-1>", send)
ent["textvariable"] = dat  
root.title("Terminal")
root.geometry('300x200')
root.maxsize(300, 200)
lab1.after_idle(temp)
root.mainloop()
Порт не закрывается и идёт постоянное считывание, но выводится пустая форма, виджеты не прогужаются?
JOHN_16
romario82
вы впустую тратите ваше же время, решая на форуме вопросы типа 2+2. Вставьте после считывания нужного значения print и смотрите. Если есть ваши значения, то дело в том как вы их выводите в ГУИ, если нет - то проблема в другом.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB