Я хочу сделать приложение, постоянно отслеживающее последовательный порт и изменяющее пользовательский интерфейс в соответствии с данными, полученными от порта. Мне удалось прочитать строки из порта с помощью pyserial под Linux, но я не уверен, как это сделать обычным образом: создать отдельный поток и проверить ввод для события таймера? Как мне убедиться, что я ничего не пропустил? (реализация какого-либо рукопожатия / протокола кажется излишним для этого ...) И самое главное: как мне это сделать с помощью средств qt4?
Редактировать: Это то, что я делаю сейчас (я хочу делать это периодически, когда остальная часть приложения работает и не ждет)
class MessageBox(QtGui.QWidget):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
ser = serial.Serial('/dev/ttyS0', 9600, bytesize=serial.EIGHTBITS,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
timeout=None,
xonxoff=0,
rtscts=0,
interCharTimeout=None)
self.label = QtGui.QLabel(ser.readline(), self)
self.label.move(15, 10)
ser.close()
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('Authentication')
self.color = QtGui.QColor(0, 0, 0)
self.square = QtGui.QWidget(self)
self.square.setGeometry(120, 20, 100, 100)
self.square.setStyleSheet("QWidget { background-color: %s }" % self.color.name())