c2fb4eec0c838efc71c050cd092340a8c66a6242.svn-base 728 B

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