对网络发送过来的串口数据的读取
我得知,收到的数据和上位机发送的数据,字节数长度uiWireLessRLenth确实是一样的。可是,为什么下面这个程序要经过这样的received_buf的转换呢?
for( i = 0; i < uiWireLessRLenth*2; ++i )
{
if((i%2) == 0)
{
received_buf[i/2] = atox(received_buf+i,2);
#ifdef WIRELESS_DEBUG
printf( "0x%02x ", received_buf[i/2] );
#endif
}
}
printf( "\n");
for( i = 0; i < uiWireLessRLenth; ++i )
{
if((i%2) == 0)
{
received_buf[i/2] = atox(received_buf+i,2);
#ifdef WIRELESS_DEBUG
printf( "0x%02x ", received_buf[i/2] );
#endif
}
}
利用AT指令读取数据
if(bSerExpectFlag==1)
{
if(cFindString(received_bufer,received_buf,"IPDR:",uiserBrecieveLen))//收到正确数据包
{
uiWireLessRLenth = 0;
if(received_buf[10]!=',')//收到正确指令
uiWireLessRLenth = (received_buf[9]-48)*10+received_buf[10]-48;
else
uiWireLessRLenth = received_buf[9]-48;
if(uiWireLessRLenth!=0)
{
if(uiWireLessRLenth<10)
for(i=0;i<uiWireLessRLenth*2;i++)
received_buf[i] = received_buf[12+i];
else
for(i=0;i<uiWireLessRLenth*2;i++)
received_buf[i] = received_buf[13+i];
my_sock->nextstate = My_Rcv_Pkt( my_sock ); //处理接收数据
memset(received_bufer,0x00,sizeof(received_bufer));
uiserBrecieveLen = 0;
}
else
my_sock->nextstate = DATA_RECIEVE; //收到数据长度超界
}