谁能指导下,应该怎么改

[复制链接]
1616|3
 楼主| ahscchjch 发表于 2013-5-23 17:30 | 显示全部楼层 |阅读模式
TE, se, gp, AC, RS
$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);
}
工程文件见附件

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| ahscchjch 发表于 2013-5-23 20:15 | 显示全部楼层
哪位大神,帮帮忙啊
1988020566 发表于 2013-5-24 00:38 | 显示全部楼层
咋定义的类型?
1988020566 发表于 2013-5-24 00:39 | 显示全部楼层
要成float的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

10

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部