VB通过串口接收下位机定时上传的数据,怎么根据特定格式判断数据包头?

例如:上位机下达开始指令后,下位机每隔10ms上传一组数据,其格式为十六进制B4B4ssxxxxxxxxyyyy,其中B4B4是固定的包头数据,ss为状态字节,xx和yy... 例如:上位机下达开始指令后,下位机每隔10ms上传一组数据,其格式为十六进制 B4 B4 ss xx xx xx xx yy yy,其中B4 B4是固定的包头数据,ss为状态字节,xx和yy是数据字节。
用VB编写上位机程序进行读取,怎么采集实时、准确地判断从什么时候开始有一整帧数据,并提取出xx和yy数据呢?
新手上路,谢谢指点!
展开
 我来答
money0_04c351c2
2015-01-08 · TA获得超过4142个赞
知道大有可为答主
回答量:5505
采纳率:49%
帮助的人:1625万
展开全部
初学者的思路一般是:收到B4就计数加1,当收到2个后开始读后面的 SS xx 之类。
但是这个路子问题很多,容错性很差,容易出现错误死锁。

专业做法是开辟一块缓冲区(简单的话定义一个足够大的数组即可),然后将读取数据和处理数据分开。有能力的可以用双线程,初学者也最好采用事件驱动的模式。
一段代码负责将收到的数据存入缓冲区;另一段代码负责解析处理缓冲区中的数据。

看上去好像挺高大上,其实实现起来真没多难。按照这个思路钻研一下吧,会有提高的。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-01-08
展开全部
你都 接收这些数据

然后 在 处理不就行啦 ?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式