//写报文
int tempIndex=0;//表示点的索引
while (1)
{
char SendChar[500];
char*pCurser,pNumberCurser;
SendChar[0]=0x01;
pCurser=SendChar+1;
*((int*)(pCurser))=0;
pNumberCurser=pCurser;//先保留点的个数的指针
pCurser+=sizeof(int);
int tempPointNum=0;//包里面点的个数
for (;tempIndex<Cindex;)
{
pCurser=(CDataRelationItem*)(pDoc->RelationMap[ChangedData[tempIndex]])->szSTS2PointName;
pCurser+=MAX_STRINGLENGTH;
*((float*)pCurser)=(CDataRelationItem*)(pDoc->RelationMap[ChangedData[tempIndex]])->szCurValue;
pCurser+=sizeof(float);
tempPointNum++;
tempIndex++;
if ((tempPointNum*(MAX_STRINGLENGTH+sizeof(float)+sizeof(int)+1))>460)//包满了
{
break;
}
}
*((int*)(pNumberCurser))= tempPointNum;
*((unsigned short*)pCurser)=CRC_Check(SendChar,tempPointNum*(MAX_STRINGLENGTH+sizeof(float))+sizeof(int)+1);
pCurser+=sizeof(unsigned short);
sendto(sockClient,SendChar,500,0,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
if(tempIndex>=Cindex)
{
break;
}
}
写报文实例
最新推荐文章于 2023-12-18 21:11:04 发布