[Talk-de] unbekanntes Datenformat aus GPS-Logger

gmbo gmbo at kilometerfresser.eu
So Jun 10 15:34:38 UTC 2012


Hier werden dann die Beschleunigungsdaten umgeleitet, damit dann der Aufruf

./gs1000car2nmea GS1000-GPSLOG.FILE0001.dat 2> beschleunigung.txt | 
gpsbabel -i nmea -f - -o gpx -F ausgabe.gpx

ein gültiges gpx- File erzeugt.
Die Ausgabe der Beschleunigung landet TAB-getrennt im txt- File

#include <stdlib.h>
#include <stdio.h>

int main (int argc, char *argv[])
{
     if (argc != 2)
     {
         fprintf(stderr,"usage: %s filename\n", argv[0]);
         exit(1);
     }
     else
     {
         FILE *file = fopen(argv[1],"r");

         if (file == NULL)
         {
             fprintf(stderr,"Could not open file\n");
             exit(1);
         }
         else
         {
             int start = 0;
             int detect = 0;
         int nmea = 0;
         int c;
             long int pos = 0;
             int shift;

             while ((c = fgetc(file)) != EOF)
             {
                 if (c == '\n')
                 {
             nmea = 0;
                     if(start)
                     {
                         printf("\n");
                     }
                     else
                     {
                         start = 1;
                     }
                 }
                 else
                 {
                     if(start)
                     {
                         if(detect)
                         {
                             c+=shift;
                             c+=128;
                             c%=128;
                 if ( c == '$')
                 {
                    nmea = 1;
                                    fprintf(stderr,"\n");
                 }
                             if (nmea)
                 {
                                    printf("%c",c);
                                 }
                                 else
                                 {
                                     fprintf(stderr,"%c",c);
                                 }
                         }
                         else
                         {
                             pos = ftell(file);

                             while ((c = fgetc(file)) != EOF)
                             {
                                 if (c == '\n')
                                 {
                                     fseek(file,-4,SEEK_CUR);
                                     shift = '*' - fgetc(file);
                                     detect = 1;
//                                     printf("shift: %d\n",shift);
                                     break;
                                 }
                             }

                             fseek(file,pos,SEEK_SET);
                         }
                     }
                 }
             }

             fclose(file);
         }
     }

     return 0;
}




Am 10.06.2012 14:15, schrieb qunuxy-osmmailinglists at yahoo.com:
> Jetzt mit Offset-Berechnung, verwendet "*" aus der NMEA-Prüfsumme:
>
>
> #include <stdlib.h>
> #include <stdio.h>
>
> int main (int argc, char *argv[])
> {
>      if (argc != 2)
>      {
>          printf("usage: %s filename\n", argv[0]);
>          exit(1);
>      }
>      else
>      {
>          FILE *file = fopen(argv[1],"r");
>          
>          if (file == NULL)
>          {
>              printf("Could not open file\n");
>              exit(1);
>          }
>          else
>          {
>              int start = 0;
>              int detect = 0;
>              int c;
>              long int pos = 0;
>              int shift;
>              
>              while ((c = fgetc(file)) != EOF)
>              {
>                  if (c == '\n')
>                  {
>                      if(start)
>                      {
>                          printf("\n");
>                      }
>                      else
>                      {
>                          start = 1;
>                      }
>                  }
>                  else
>                  {
>                      if(start)
>                      {
>                          if(detect)
>                          {
>                              c+=shift;
>                              c+=128;
>                              c%=128;
>                              printf("%c",c);
>                          }
>                          else
>                          {
>                              pos = ftell(file);
>                              
>                              while ((c = fgetc(file)) != EOF)
>                              {
>                                  if (c == '\n')
>                                  {
>                                      fseek(file,-4,SEEK_CUR);
>                                      shift = '*' - fgetc(file);
>                                      detect = 1;
> //                                     printf("shift: %d\n",shift);
>                                      break;
>                                  }
>                              }
>                              
>                              fseek(file,pos,SEEK_SET);
>                          }
>                      }
>                  }
>              }
>              
>              fclose(file);
>          }
>      }
>      
>      return 0;
> }
>
>
>
>
> ----- Ursprüngliche Message -----
> Von: Paul Hartmann <phaaurlt at googlemail.com>
> An: Openstreetmap allgemeines in Deutsch <talk-de at openstreetmap.org>
> CC:
> Gesendet: 10:33 Sonntag, 10.Juni 2012
> Betreff: Re: [Talk-de] unbekanntes Datenformat aus GPS-Logger
>
> Hm, als zusätzliche Schikane scheint der Offset für jede Datei
> verschieden zu sein (vergleiche erste Mail). Naheliegenderweise müsste
> der Wert im Header kodiert sein:
>
> 559683543 => 57
> 545946117 => 40
>
> Was haben sich die Hersteller hier nur wieder einfallen lassen, um
> sicherzustellen, dass der Käufer auch brav die mitgelieferte Software
> nutzt?
>
> Paul
>
> _______________________________________________
> Talk-de mailing list
> Talk-de at openstreetmap.org
> http://lists.openstreetmap.org/listinfo/talk-de
>
>
> _______________________________________________
> Talk-de mailing list
> Talk-de at openstreetmap.org
> http://lists.openstreetmap.org/listinfo/talk-de
>






Mehr Informationen über die Mailingliste Talk-de