| 1234567891011121314151617181920212223242526272829303132 |
- //AA 长度1[类型 .....] 校验码 BB
- bool Light_CheckData ( u8 *Data, u16 Len, pDataBuff *Out )
- {
- u8 tail_pos = 0; //尾位
- u8 head_pos = 0; //0xF0 头位置
- for(int i=0; (i<Net_RcvData.size()-1); i++){
- //只检查头尾"@@" .. "##"
- if( ((quint8)Net_RcvData[i+0] == 0xaa) && ((quint8)Net_RcvData[i+1] == 0xaa) ){ //
- head_pos = i;
- if(Net_RcvData.size()-i>=DATA_LEN){ //剩余数据>=7
- int size = Put16Byte((quint8)Net_RcvData[i+3], (quint8)Net_RcvData[i+2]) + DATA_LEN;
- if(size <= (Net_RcvData.size()-i)){ //2.判断数据长 <= 实际长; 不足说明未发完,需要等待
- if( ((quint8)Net_RcvData[i+size-2] == 0xbb) && ((quint8)Net_RcvData[i+size-1] == 0xbb) ){
- //1.粘包处理, 譬如,2个包粘做一个包
-
- }
|