シリアルポートを常に見て、ポートから受信した入力に応じてユーザーインターフェイスを変更するアプリケーションを実行したいと考えています。私はLinux上でpyserialでポートから行を読み取ることに成功しましたが、私は定期的にこれを行う方法がわかりません:別のスレッドを作成し、タイマーイベントの入力をチェックしますか?私は何も見逃していないことを確認するにはどうすればいいですか? (何らかのハンドシェイク/プロトコルを実装することは、このような過剰なもののように思えます...)そして最も重要なのは、qt4の機能でどうすればいいのですか?pyqt4とpyserial
編集:これは私が今やっているものです(私はアプリの実行の残りの部分ではなく待っていると、定期的にこれをしたい)
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())