繁体   English   中英

如何在iOS中捕获异步和间歇数据?

[英]How to capture asynchronous and intermittent data in iOS?

平台:带有TCP / IP通讯的iOS。

以下是传入数据流的示例。

$ PLTIT,HV,0.20,M,0.00,D,-58.70,D,0.30,M * 71
$ PLTIT,HV,1.90,M,0.00,D,-8.30,D,1.90,M * 41

有效的消息框架如下所示:

$PLTIT,HV,1.90,M,0.00,D,-8.30,D,1.90,M*41

但是有时候我会得到这个:

[time n+0]  $PLTIT,HV,0.20,M,0.00,D,-58.70,D,0.30,M*71
[time n+1]  $PLTIT,HV,1.90,M,
[time n+2]  0.00,D,-8.30,D,1.90
[time n+3]  ,M*41
[time n+4]  $PLTIT,HV,0.20,M,0.00,D,-58.70,D,0.30,M*71
[time n+5]  $PLTIT,HV,0.20,M,
[time n+6]  0.00,D,-58.70,D,0.30,M*71
[time n+7]  $PLTIT,HV,0.20,M,0.00,D,-58.70,D,0.30,M*71
[time n+8]  $PLTIT,HV,0.20,M,0.00,D,-58.70,D,0.30,M*71

结果是中间的消息框破裂。

我可以在iOS下使用哪些对象/容器,以使我能够正确收集所有数据字节以进行解析,并且不会由于某些间歇性的通讯或设备而丢失任何位?

任何种类的简单缓冲区都可以解决问题。 如果您的数据始终是文本数据,那么您甚至可以追加到NSMutableString

您要做的就是追加数据,检查缓冲区是否包含$字符的多个实例(我认为这是您在条目之间的定界符),然后检查每个条目是否除外。最后一个,将最后一个保留在缓冲区中,直到下一个数据块到达为止。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM