[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