在接收下位机发送的帧数据时,一定要先了解帧格式,这样才能正确解析出
帧里面的数据来。上位机在开始接收数据时,不能保证接收的第一个字节就是我
们需要的帧头,因为下位机是一直处于发送数据的状态,很可能在串口发送一帧
数据的过程中串口就被初始化或者被清空了一次缓冲区,那么这一帧数据的前面
部分数据可能就会丢失,只留下后面一部分数据。因此需对上位机收到的数据进
行分析。结合下位机传输的数据格式,可以利用搜索替换字符串、截取字符串等
字符串函数,进行处理。因为下位机打印输出的数据格式为“…个byte , # , 4个
byte , 4个byte , # } } ",解析帧的数据的程序框图可设计如图4. 6所示:先利用搜
索替换字符串确定第一个标识符材的偏移量,然后截取包含两组数据的字符串。
注意截取字符串函数的字符偏移量从0开始,而搜索替换字符串的字符偏移量从
1开始,所以标识符#的偏移量要减去1才是截取字符串函数所要截取的字符的
开始偏移量。最后再拆分组内的两个字符串,得到两组独立的字符串数据。若要
将数据进行显示,则还需要用十进制数字符串至数值转换函数将字符串中的字符
转换为十进制整数。
|