android byte数组 解析
android 读串口
串口不断的有byte数组得到,我这里获得数组以后,要对其解析打包,解析规则
命令(4byte)+总长度(2byte)+用户地址(4byte)+电文长度(2byte)+电文(Nbyte)+校验码(1byte)
例如命令:$TXX (每条命令都是以$开始+三条英文字符=4byte)
总长度:14 4+2+4+2+1+1=14个byte(加入电文内容为1byte)
用户地址:1211
电文长度:1
电文:我
校验码:异或此位之前的byte算出来的。
有效的数据应为:{0x24 ,0x54,0x58,0x58,0x31,0x32,0x31,0x31·········}
串口得到的byte,可能只有1byte 也可能有上百个byte,可能包含一条完整的数据,也可能包含好几条,也可能一条也不完整,可
能丢包,也可能有其他信息。怎么去一条完整的数据出来,求思路,求算法;
有人指点做一个环形数组,独到了就去写入环形数组,用两个int去追踪写的位置和读的位置,利用%符号去判断一条完整语句的开
始,然后根据总长度去读取长度,用校验位去判断是否有效。
但是实现起来很麻烦啊。
也有说用两个进程去处理,一个进程处理收到的byte数组,放入静态数组中。一个进程处理去读取和判断。
求代码啊······