damfino
01.01.2016, 21:11
Ich will vom GPS Empfänger das UBX Protokoll auslesen, geht soweit das der Start von der Nachricht und Nachricht ID erkannt wird.
Die Werte bekomme ich aber nicht heraus. Der Wert auf den ich aus bin besteht aus 4 Bytes im little Endian Format.
Mein Problem: ich bekomme derzeit nichtmal ein einziges Byte umgewandelt.
Probiert habe ich:
x[0]=gps_string[3+offset];x[1]= 0;
temp=atoi(x);
Temp ist aber immer Null (Ausgabe LCD mit itoa(temp,buffer,10);lcd_puts(buffer); )
Ebenso probiert (die ersten 2 Byte würde mir genügen):
x[0]=gps_string[3+offset];
x[1]=gps_string[2+offset];
x[2]=0;
pos_acc=atoi(x);
und
x[0]=gps_string[3+offset];
x[1]=gps_string[2+offset];
x[2]=0;
pos_acc=strtol(x, NULL, 10);
Es kommt immer nur Null raus.
Werte sollten zwischen 100-5000 liegen. Dazu lasse ich mir den 2D Accuracy Wert übers NEMA Protokoll ausgeben der ungefähr die gleiche Größenodung hat wie der 3D Wert den ich hier über ubx Protokoll auslesen will.
Die ganze GPS Auswertung funktioniert bei mit mit atoi, warum hier nicht?
Wie muss man das richtig umwandeln?
Werte kommen vom GPS Empfänger raus, erstens werden die ersten 4 Bytes der Nachricht überprüft (2 Sync Char, 1 Byte Class, 1 Byte ID) um die richtige Nachricht zu erkennen, was ich mir anzeige lassen, und am uBlox Center kann man sich auch die Daten ansehen.
LG!
Die Werte bekomme ich aber nicht heraus. Der Wert auf den ich aus bin besteht aus 4 Bytes im little Endian Format.
Mein Problem: ich bekomme derzeit nichtmal ein einziges Byte umgewandelt.
Probiert habe ich:
x[0]=gps_string[3+offset];x[1]= 0;
temp=atoi(x);
Temp ist aber immer Null (Ausgabe LCD mit itoa(temp,buffer,10);lcd_puts(buffer); )
Ebenso probiert (die ersten 2 Byte würde mir genügen):
x[0]=gps_string[3+offset];
x[1]=gps_string[2+offset];
x[2]=0;
pos_acc=atoi(x);
und
x[0]=gps_string[3+offset];
x[1]=gps_string[2+offset];
x[2]=0;
pos_acc=strtol(x, NULL, 10);
Es kommt immer nur Null raus.
Werte sollten zwischen 100-5000 liegen. Dazu lasse ich mir den 2D Accuracy Wert übers NEMA Protokoll ausgeben der ungefähr die gleiche Größenodung hat wie der 3D Wert den ich hier über ubx Protokoll auslesen will.
Die ganze GPS Auswertung funktioniert bei mit mit atoi, warum hier nicht?
Wie muss man das richtig umwandeln?
Werte kommen vom GPS Empfänger raus, erstens werden die ersten 4 Bytes der Nachricht überprüft (2 Sync Char, 1 Byte Class, 1 Byte ID) um die richtige Nachricht zu erkennen, was ich mir anzeige lassen, und am uBlox Center kann man sich auch die Daten ansehen.
LG!