2011-10-12 44 views
0

串口庫上有更詳細的信息嗎?我問的原因是,我收到的串行數據被切割成看似隨機大小的塊。我知道這是相當連續的,但也許很小的時間延遲導致接收數據事件被多次觸發。我正在使用異步流。是否在啓動另一個流之前允許異步流中的時間延遲?或者,也許它只是一個藍牙功能,發送數據包中的數據?如果必須的話,我可能會使用計時器而不是異步流,並將數據堆積起來,但是如果我不'必須這樣做,我寧可不使用。我收到的數據看起來不錯,如果它全部合併到一個流中。藍牙串行數據 - 切碎?

回答

0

常規模式下的AsyncStream只是在數據可用時傳輸數據。由於數據由串行設備進行緩衝,因此您有責任正確分割和合並消息。

如果你有雙方的控制權,那麼你可以在前綴模式下使用AsyncStreams。在這種模式下,AsyncStreams負責在內部拆分和合並消息,從而顯着簡化您的工作。有關更多信息,請參見此link