在不丢失数据的情况下使用串行
Working with serial without data loss
我正在使用 pySerial
监听串口。仅当我获得可以处理的数据块时才处理数据。简单的事件调度器监听来自 readet 的事件,然后处理事件数据。处理可能涉及 IO、网络和其他类型的耗时 OS 操作。但是谁会在处理最后一个数据时从串口读取数据呢?
例如
Port stream >> | 1111111111111111 | 222222 | 2222222 | 33333
---------------------------------------------
Programm thread >> | listen port 1 -> | handle | listen2 | .....
那么处理及时的端口数据会丢失吗?就像 2
?
包的开始
如何保证来自端口的所有数据都得到及时处理?
- 硬件:Raspberry PI3b
- OS: Raspbian
- Python: v2.7
在 python 中使用循环缓冲区和线程将是一个解决方案。另一种方法是实现不同的协议,以便发送方在发送新数据之前等待侦听器确认接收
我正在使用 pySerial
监听串口。仅当我获得可以处理的数据块时才处理数据。简单的事件调度器监听来自 readet 的事件,然后处理事件数据。处理可能涉及 IO、网络和其他类型的耗时 OS 操作。但是谁会在处理最后一个数据时从串口读取数据呢?
例如
Port stream >> | 1111111111111111 | 222222 | 2222222 | 33333
---------------------------------------------
Programm thread >> | listen port 1 -> | handle | listen2 | .....
那么处理及时的端口数据会丢失吗?就像 2
?
如何保证来自端口的所有数据都得到及时处理?
- 硬件:Raspberry PI3b
- OS: Raspbian
- Python: v2.7
在 python 中使用循环缓冲区和线程将是一个解决方案。另一种方法是实现不同的协议,以便发送方在发送新数据之前等待侦听器确认接收