//
|
// Created by pansen on 2017/8/24.
|
//
|
#include <string.h>
|
#include "FunctionalProc.h"
|
#include "FunctionalUDPPeer.h"
|
|
bool UDPPacking::proc(uint8_t *buffer, size_t buffSize)
|
{
|
FUPHeader* fupHeader ;
|
memcpy(fupHeader,buffer, sizeof(fupHeader));
|
|
ret = fupHeader->magic!=123? false: true;
|
|
if(!ret)
|
return false;
|
|
if(!tFlag)
|
{
|
seq = fupHeader->seq;
|
magic = fupHeader->magic;
|
parts = fupHeader->parts;
|
size = fupHeader->size;
|
|
minSeq = seq;
|
maxSeq = seq + parts - 1;
|
num=parts;
|
|
dataSize = sizeof(fupHeader)- sizeof( fupHeader->data);
|
}
|
|
fupHeader->data;
|
|
if( tFlag == 0 && magic > 1)
|
{
|
tFlag=1;
|
memcpy(tempData,fupHeader->data,dataSize);
|
num--;
|
}
|
else
|
{
|
if(fupHeader->parts <= maxSeq && fupHeader->parts)
|
{
|
return false;
|
}
|
else
|
{
|
ret = parts == fupHeader->parts;
|
if(!ret)
|
return false;
|
memcpy(tempData+(fupHeader->seq - minSeq),fupHeader->data,dataSize);
|
num--;
|
if(num == 0){
|
tFlag =0;
|
//触发回调
|
|
|
}
|
}
|
}
|
}
|