def updateV(self, event):
""""""
global v
v=random.uniform(1,10)
print('battery voltage =')
print(v)
if v>3:
self.labelOne.SetBackgroundColour('red')
self.labelOne.SetLabel('Battery Voltage : ' + str(v))
else:
self.labelOne.SetBackgroundColour('white')
self.labelOne.SetLabel('Battery Voltage : ' + str(v))
self.Refresh()
Это функция в моем графическом интерфейсе wxpython, который я использую для генерации случайных значений. Я добавил эту функцию в свой класс панели GUI. Я поместил функцию wx.Bind, которая присваивает ему значение таймера и регулярно обновляет его для изменения значения.Интеграция последовательной связи в wx GUI
Теперь графический интерфейс должен иметь последовательную связь, так как мне нужно получить значения датчиков и ввести их в свой экран графического интерфейса. Таким образом, я нашел этот код для последовательного inputing значения:
def updateV(self, event):
""""""
global v
v=ser.readline()
print v
if v>3:
self.labelOne.SetBackgroundColour('red')
self.labelOne.SetLabel('Battery Voltage : ' + str(v))
else:
self.labelOne.SetBackgroundColour('white')
self.labelOne.SetLabel('Battery Voltage : ' + str(v))
self.Refresh()
Я тогда пошел ему инициализации части класса панели и добавил этот код:
ser = serial.Serial('COM3', 9600, timeout=0)
На запущене графического интерфейса пользователя, значение не отображается и не печатает его в графическом интерфейсе. Я знаю, что здесь совершаю большую ошибку. В любом случае значения прямо сейчас проходят через arduino uno, подключенный к экрану XBEE, который получает 1-20 значений через другой arduino, conencted к экрану XBEE. Кстати, случайные переменные генерируются должным образом и печатаются в графическом интерфейсе, поэтому нет никакой функции с функцией. Мне нужно, чтобы python читал значение серийно и назначал его переменной, чтобы я мог напечатать значение, которое я получаю на экране моего графического интерфейса. PS: Я использовал тот же серийный код, чтобы правильно получить 0 1 2 3 4 5 6 7 8 9 10 значение на экране команды модуля python.
import serial
import time
ser = serial.Serial('COM3', 9600, timeout=0)
while 1:
v=ser.readline()
print v
time.sleep(1)
Я пытаюсь привыкнуть к питону, но эти маленькие вещи мешают моему прогресс .. Я новичок в Python, пожалуйста, медведь со мной!
Я никогда не добавлял цикл while в графическом интерфейсе. Я ожидал, что mainloop() будет выполнять ту же работу, что и бесконечный цикл, но никогда не работает. В любом случае, я могу получить последовательную связь в графическом интерфейсе с помощью mainloop()? –
Вы прочитали (и поняли) примеры, которые я опубликовал в своем ответе? – nepix32
Я прочитал его, но в них больше ясности. Я не могу связать, как использовать их в моем графическом интерфейсе. Мне нужно больше материала, я думаю –