2017-08-30 86 views
0

我在使用pySerial监听串口。只有当我有大量数据时才处理数据,我可以处理。简单的事件调度程序监听来自readet的事件,然后处理事件数据。处理可能涉及IO,网络和另一种耗时的操作系统操作。但是谁会在处理最后数据时从串行读取数据?使用串口而不丢失数据

例如

Port stream >> | 1111111111111111 | 222222 | 2222222 | 33333 
        --------------------------------------------- 
Programm thread >> | listen port 1 -> | handle | listen2 | ..... 

所以从港口数据,及时赶来处理上会丢失?喜欢2的包的开始?

如何保证所有来自端口的数据都能及时处理?

  • 设备:覆盆子PI 3B
  • OS:Raspbian
  • 的Python:V2.7

回答

1

在Python中使用循环缓冲器和线程将是一个解决方案。另一个是实现不同的协议,以便发送者在发送新数据之前等待收听者确认接收