Pyqt4.7没有从QIODevice继承的类,该类允许直接与串行端口(例如QSerialDevice)进行对话。因此,我认为使用QProcess类并从另一个使用QProcess接口与主QT应用程序接口的进程实现对串行端口的实际读/写会更容易。
现在的问题是,当我使用下面的代码时,发送和接收的字节数是不一样的。所以我的问题是如何正确地从串行端口读取二进制数据,然后将所有数据转发到stdout?
这是我创建QProcess的主QT程序的摘录:
self.micromouse_socket = QProcess()
self.micromouse_socket.start("/home/ansis/Source/Perforce-pele/Pele/tools/console/comtalker.py", "")
self.micromouse_socket.started.connect(self.on_micromouse_socket_started)
self.label_8.setText("Starting COM...")
这是与串行端口(comtalker.py;非阻塞部分尚未完成)对话的过程:
#!/usr/bin/python
import serial
import sys
if __name__ == "__main__":
ser = serial.Serial(0)
while 1 :
x = ser.read(1)
sys.stdout.write(x)
sys.stdout.flush()
可能是问题出在别的地方而不是PySerial。在另一台计算机上,我用这个命令“/binary\u data\u generator>;”dev/ttyS0”写入ttyS0。当我只发送ASCII字符(文本+数字)时,同样的代码似乎工作得很好
目前没有回答
相关问题 更多 >
编程相关推荐