$GPGRS,083516.00,1,-0.4,-0.1,0.2,3.7,-1.1,2.1,,,,,,*6A<CR><LF>
串口接收后提取其中有用部分进行如下运算
谁能帮我看看我这么写问题处在哪吗?编译通过了 但是没有实现预期功能
void Deal_Data1(void)//GPGRS数据处理
{
uchar i=0;
uchar j;
switch(uComma_Count)//逗号作为数据的分隔符
{
case 1: //1~2逗号之间的数据uTime[6];//时间//<1>
break;
case 2: //2~3逗号之间的数据模式0/1
break;
case 3: //3~4逗号之间的数据伪距1
uBuf[uByte_Count]=uTmp;
if(uByte_Count>=2)
{if(uByte_Count<3)
{range_error=((uBuf[0]-0x30)+(uBuf[2]-0x30)*0.1);
}
else
{range_error=((uBuf[1]-0x30)+(uBuf[3]-0x30)*0.1);
}
i++;
}
break;
case 4: //4~5逗号之间的数据伪距2
uBuf[uByte_Count]=uTmp;
if(uByte_Count>=2)
{if(uByte_Count<3)
{range_error=((uBuf[0]-0x30)+(uBuf[2]-0x30)*0.1);
}
else
{range_error=((uBuf[1]-0x30)+(uBuf[3]-0x30)*0.1);
}
i++;
}
break;
case 5: //5~6逗号之间的数据伪距3
uBuf[uByte_Count]=uTmp;
if(uByte_Count>=2)
{if(uByte_Count<3)
{range_error=((uBuf[0]-0x30)+(uBuf[2]-0x30)*0.1);
}
else
{range_error=((uBuf[1]-0x30)+(uBuf[3]-0x30)*0.1);
}
i++;
}
break;
case 6: //6~7逗号之间的数据伪距4
uBuf[uByte_Count]=uTmp;
if(uByte_Count>=2)
{if(uByte_Count<3)
{range_error=((uBuf[0]-0x30)+(uBuf[2]-0x30)*0.1);
}
else
{range_error=((uBuf[1]-0x30)+(uBuf[3]-0x30)*0.1);
}
i++;
}
break;
case 7: //7~8逗号之间的数据伪距5
uBuf[uByte_Count]=uTmp;
if(uByte_Count>=2)
{if(uByte_Count<3)
{range_error=((uBuf[0]-0x30)+(uBuf[2]-0x30)*0.1);
}
else
{range_error=((uBuf[1]-0x30)+(uBuf[3]-0x30)*0.1);
}
i++;
}
break;
case 8: //8~9逗号之间的数据伪距6
uBuf[uByte_Count]=uTmp;
if(uByte_Count>=2)
{if(uByte_Count<3)
{range_error=((uBuf[0]-0x30)+(uBuf[2]-0x30)*0.1);
}
else
{range_error=((uBuf[1]-0x30)+(uBuf[3]-0x30)*0.1);
}
i++;
}
break;
case 9: //9~10逗号之间的数据伪距7
uBuf[uByte_Count]=uTmp;
if(uByte_Count>=2)
{if(uByte_Count<3)
{range_error=((uBuf[0]-0x30)+(uBuf[2]-0x30)*0.1);
}
else
{range_error=((uBuf[1]-0x30)+(uBuf[3]-0x30)*0.1);
}
i++;
}
break;
case 10: //10~11逗号之间的数据伪距8
uBuf[uByte_Count]=uTmp;
if(uByte_Count>=2)
{if(uByte_Count<3)
{range_error=((uBuf[0]-0x30)+(uBuf[2]-0x30)*0.1);
}
else
{range_error=((uBuf[1]-0x30)+(uBuf[3]-0x30)*0.1);
}
i++;
}
break;
case 11: //11~12逗号之间的数据伪距9
uBuf[uByte_Count]=uTmp;
if(uByte_Count>=2)
{if(uByte_Count<3)
{range_error=((uBuf[0]-0x30)+(uBuf[2]-0x30)*0.1);
}
else
{range_error=((uBuf[1]-0x30)+(uBuf[3]-0x30)*0.1);
}
i++;
}
break;
case 12: //12~13逗号之间的数据伪距10
uBuf[uByte_Count]=uTmp;
if(uByte_Count>=2)
{if(uByte_Count<3)
{range_error=((uBuf[0]-0x30)+(uBuf[2]-0x30)*0.1);
}
else
{range_error=((uBuf[1]-0x30)+(uBuf[3]-0x30)*0.1);
}
i++;
}
break;
case 13: //13~14逗号之间的数据伪距11
uBuf[uByte_Count]=uTmp;
if(uByte_Count>=2)
{if(uByte_Count<3)
{range_error=((uBuf[0]-0x30)+(uBuf[2]-0x30)*0.1);
}
else
{range_error=((uBuf[1]-0x30)+(uBuf[3]-0x30)*0.1);
}
i++;
}
break;
default:break;
}
comma_number=i;
for(j=0;j<comma_number;j++)
{
squre_error=squre_error+range_error[j]*range_error[j];
}
sse_error=sqrt(squre_error/(comma_number-4));
sv_status(comma_number,sse_error);
}
工程文件见附件
|