2017-08-30 91 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中使用循環緩衝器和線程將是一個解決方案。另一個是實現不同的協議,以便發送者在發送新數據之前等待收聽者確認接收