蓝牙上的串行数据 - 被砍掉?

时间:2011-10-12 03:08:10

标签: basic4android

串行库上是否有更详细的信息?我问的原因是我收到的串行数据被切割成看似随机大小的块。我知道它是相当连续的,但也许很小的时间延迟导致接收数据事件被多次触发。我正在使用异步流。是一种在启动另一个流之前允许异步流中的时间延迟的方法吗?或者它可能只是蓝牙的功能,以数据包的形式发送数据?如果必须的话,我可能会使用计时器而不是异步流并将数据堆积起来,但如果我不这样做,我宁愿不这样做。我收到的数据看起来是正确的,如果它全部合并回一个流。

1 个答案:

答案 0 :(得分:0)

常规模式下的AsyncStream只会在数据可用时传输。由于数据由串行设备缓冲,因此您有责任正确拆分和合并消息。

如果您对双方都有控制权,那么您可以在前缀模式下使用AsyncStreams。在此模式下,AsyncStreams负责在内部拆分和合并消息,这大大简化了您的工作。有关详细信息,请参阅此link