python - pyserial/python和实时数据采集

标签 python real-time pyserial

我有一个红外摄像头/跟踪器,我通过串行端口与之通信。我目前正在使用 pyserial 模块来执行此操作。相机以 60 Hz 的速率更新被跟踪对象的位置。为了获得跟踪对象的位置,我执行了一个 pyserial.write(),然后使用 pyserial.read(serialObj.inWaiting()) 监听传入的回复。一旦收到回复/位置,就会重新进入 while 循环,依此类推。我的问题与这种方法的可靠性和速度有关。我需要计算机以至少 60Hz 的速率获取位置(然后位置将通过 UDP 发送到实时操作系统)。这是 Pyserial/Python 能够做到的,还是我应该研究替代的基于 C 的方法?

谢谢, 卢克

最佳答案

这更多是延迟问题而不是速度问题。

Python总是进行内存分配和释放,但是如果数据被重用,同样的内存也会被C库重用。 因此操作系统(C 库/UDP/IP 堆栈)将比 Python 本身产生更大的影响。

我真的认为你应该在你的 RTOS 机器上使用串行端口并使用 C 代码和预分配的缓冲区。

关于python - pyserial/python和实时数据采集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7629403/

相关文章:

python - 将 fortran double 格式读入 python

java - JAVA 中的实时文本流

C# 到 Java 延迟敏感类转换,在我的情况下,TreeMap 会取代 SortedList 吗?

python - 使用python在teensy bord和系统之间进行串行通信

python - 如何将变音符号发送到带有 GSM 模块的智能手机?

python - 如何在 Python 中获取 ASCII 西里尔字符代码?

python - 请求流示例在我的环境中不起作用

python - -753 在 `pd.Timestamp` 中的时区意味着什么

mongodb - PostgreSQL 相当于 MongoDB 中的 Oplog Tailing

python - 使用多处理/线程通过 Tkinter 读取串行端口和实时图形数据