a043934b4b6d001d1abbddeb07d1d3a2

来自「在开发FPGA上比较有用」· 代码 · 共 79 行

TXT
79
字号
#include <stdio.h>
#include <string.h>

int main()
{
    
while(ch=fgetc(fp_scdt))
{   
if((ch=fgetc(fp_scdt))=='$')
{ 
        j=1;
   data_in[0]='$';
while ((data_in[j]=fgetc(fp_scdt))!='*') 
{  
    putchar(data_in[j]);
    j=j+1;  
}
}
m=0;
n=j;       
for(i=0;i<n;i++)
      {
          if(data_in[i]==',')
          {   
           m=m+1;
           cont[m-1]=i;    
          }
          switch(m)
          {
            case 0 :
            gps_data.mark[i]=data_in[i];                                     ///数据分包包装
            break;
            case 1:
            gps_data.time[(i-cont[0])]=data_in[i+1];
            break;
            case 2:
            gps_data.value=data_in[i];
            break;
            case  3:
            gps_data.dim[(i-cont[m-1])]=data_in[i+1];
            break;
            case  4:
            gps_data.dim_name=data_in[i];
            break;
            case  5:
            gps_data.lon[(i-cont[m-1])]=data_in[i+1];
            break;
            case  6:
            gps_data.lon_name=data_in[i];
            break;
          case  9:
        gps_data.ddmmyy[(i-cont[m-1])]=data_in[i+1];
        break;
          }
        
      }
printf("\n");
for(i=0;i<cont[0];i++)
printf("%c",gps_data.mark[i]);
printf("\n");
for(i=0;i<cont[1]-cont[0]-1;i++)
printf("%c",gps_data.time[i]);
printf("\n");
printf("%c",gps_data.value);
printf("\n");
for(i=0;i<cont[3]-cont[2]-1;i++)
printf("%c",gps_data.dim[i]);
printf("\n");
printf("%c\n",gps_data.dim_name);
for(i=0;i<cont[5]-cont[4]-1;i++)
printf("%c",gps_data.lon[i]);
printf("\n");
printf("%c",gps_data.lon_name);
printf("\n");
for(i=0;i<cont[9]-cont[8]-1;i++)
printf("%c",gps_data.ddmmyy[i]);
printf("\n");
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?