我有一个红外摄像机/跟踪器,我通过串口进行通信.我现在正在使用pyserial模块执行此操作.摄像机以60 Hz的速率更新被跟踪物体的位置.为了获得被跟踪对象的位置,我执行一个pyserial.write(),然后用pyserial.read(serialObj.inWaiting())监听传入的回复.一旦收到回复/位置,就重新进入while循环,依此类推.我的问题与这种方法的可靠性和速度有关.我需要计算机以至少60Hz的速率获取该位置(然后该位置将通过UDP发送到实时操作系统).这是Pyserial/Python能够做到的事情,还是应该考虑其他基于C的方法?
谢谢,卢克
当我与之通信的设备发送二进制数据时,我可以恢复大部分数据.但是,似乎总会丢失一些字节,替换为非标准字符.例如,一个单独的输出如下所示:
\xc4\xa5\x06\x00.\xb3\x01\x01\x02\x00\x00\x00=\xa9
Run Code Online (Sandbox Code Playgroud)
句点和等号应该是十六进制格式的传统字节(我在另一个应用程序中证实了这一点).其他时候我得到其他奇怪的字符,如')'或's'.这些字符通常出现在完全相同的位置(随着我传递给设备的命令而变化).
我该如何解决这个问题?