Escribí un código para simular la recepción de una cadena NMEA desde mi GPS, pero tuve un problema al analizar la latitud, la longitud y la fecha. Quiero saber cuál es el problema con el código. Aquí está mi código:
void GPS_parseSTR(char *lat,char *lon,char *day,char *month,char *year,char *string){
int i;
for (i=0;i<9;i++)
{
lat[i]=string[i+14];
lat[i+1]=' void GPS_parseSTR(char *lat,char *lon,char *day,char *month,char *year,char *string){
int i;
for (i=0;i<9;i++)
{
lat[i]=string[i+14];
lat[i+1]='%pre%';
}
int j;
for (j=0;j<10;j++){
lon[j]=string[j+26];
lon[j+1]='%pre%';}
int k;
for (k=0;k<2;k++){
day[k]=string[k+49];
day[k+1]='%pre%';}
int l;
for (l=0;l<2;l++){
month[l]=string[l+51];
month[l+1]='%pre%';}
int m;
for (m=0;m<2;m++){
year[m]=string[m+53];
year[m+1]='%pre%';
}
}
int main(){
char lat[9];
char lon[10];
char day[2];
char month[2];
char year[2];
char string[55]=",075747.000,A,2232.8990,N,11405.3368,E,3.9,357.8,260210" ;
GPS_parseSTR(lat,lon,day,month,year,string);
printf("%s\n",lat);
printf("%s\n",lon);
printf("%s\n",day);
printf("%s\n",month);
printf("%s\n",year);
return 0 ;
}
';
}
int j;
for (j=0;j<10;j++){
lon[j]=string[j+26];
lon[j+1]='%pre%';}
int k;
for (k=0;k<2;k++){
day[k]=string[k+49];
day[k+1]='%pre%';}
int l;
for (l=0;l<2;l++){
month[l]=string[l+51];
month[l+1]='%pre%';}
int m;
for (m=0;m<2;m++){
year[m]=string[m+53];
year[m+1]='%pre%';
}
}
int main(){
char lat[9];
char lon[10];
char day[2];
char month[2];
char year[2];
char string[55]=",075747.000,A,2232.8990,N,11405.3368,E,3.9,357.8,260210" ;
GPS_parseSTR(lat,lon,day,month,year,string);
printf("%s\n",lat);
printf("%s\n",lon);
printf("%s\n",day);
printf("%s\n",month);
printf("%s\n",year);
return 0 ;
}