Parsing NMEA---->AS-STARTKIT-BASIC-L1L2-NH-02

Hallo zusammen,

ich versuche verzweifelt NMEA Sätze zu vereinfachen. Es gibt ja schon unzählige Bibliotheken im Internet zu finden. Im Zuge eines Hochschulprojektes soll ich mit dem oben beschriebenen Board GPS-Daten erfassen. Ich kann mittels der Arduino-Software und dem seriellen Monitor NMEA Sätze ausgeben lassen. Diese kann ich jedoch nicht "sortieren".
Das Problem liegt meiner Meinung daran, dass die Arduino Software das Board nicht erkennt.
Gibt es eine Möglichkeit der Software das Board anzulernen?

Ich wüsste nicht, wie das gehen sollte. Besorge die Doku (Datenblatt o.ä.) und programmiere eine eigene Bibliothek (oder schreibe eine gefundene passend um).

Gruß

Gregor

Merksatz:

Der Weg in die Hölle, ist mit faschen Annahmen gepflastert.

Hallo
meine Suchmaschine gibt für den Suchbegriff nmea parser +arduino 54.600 Ergebnisse aus.
Da wird sicherlich ein passender dabei sein.

Ist es fair anzunehmen, dass diese Frage von Ihnen stammt?

haben Sie mit gpsd/linux versucht?

ja diese Frage stammt auch von mir.
Ich habe über den Jetson Nano (Ubuntu) die Ausgabe der NMEA_Sätze hinbekommen, aber ich kann diese noch nicht parsen.
Auch mit GPSD funktioniert es nicht.

Können Sie NMEA-Sätze teilen?

Kopieren/Einfügen ist kaputt ? :slight_smile:

Dies habe ich erhalten, wenn ich die NeoGPS-Bibliothek mit allen in den Konfigurationsdateien aktivierten Informationen verwendet habe.

#include <NMEAGPS.h>
#include "Streamers.h"
Stream & trace = Serial;

NMEAGPS gps;

const char sentences[] __PROGMEM =
  "$GLGSV,3,3,09,88,05,066,27,3*43\r\n"
  "$GAGSV,2,1,05,03,07,095,,05,10,046,39,15,61,056,49,21,56,282,,7*74\r\n"
  "$GAGSV,2,2,05,27,46,186,43,7*49\r\n"
  "$GAGSV,2,1,05,03,07,095,,05,10,046,44,15,61,056,53,21,56,282,31,2*72\r\n"
  "$GAGSV,2,2,05,27,46,186,40,2*4F\r\n"
  "$GBGSV,1,1,02,13,22,047,43,30,75,053,45,1*74\r\n"
  "$GBGSV,1,1,02,13,22,047,,30,75,053,,*43\r\n"
  "$GNGLL,4901.09186,N,01206.69881,E,145510.00,A,A*72\r\n"
  "$GNRMC,145511.00,A,4901.09186,N,01206.69887,E,0.010,,230421,,,A,V*11\r\n"
  "$GNVTG,,T,,M,0.010,N,0.018,K,A*35\r\n"
  "$GNGGA,145511.00,4901.09186,N,01206.69887,E,1,12,0.80,347.3,M,46.0,,*4A\r\n"
  "$GNGGA,A,3,1,18,20,23,26,,,,,,,,1.47,0.80,1.23,1*04\r\n"
  "$GNGGA,A,3,,80,65,81,66,73,82,,,,,,,1.47,0.80,1.23,2*04\r\n";


void setup()
{
  const char *ptr = sentences;
  char c;
  Serial.begin(115200);
  trace_header(Serial);
  while ( (c = pgm_read_byte( ptr++ )) != '\0' ) {
    if (gps.decode(c) == NMEAGPS::DECODE_COMPLETED) {
      trace_all(Serial, gps, gps.fix() );
    }
  }
}

void loop() {}

==> Serial Monitor

Status,UTC Date/Time,Lat,Lon,DMS,Hdg,Spd,Vel N,E,D,Alt,HDOP,VDOP,PDOP,Lat err,Lon err,Alt err,Spd err,Hdg err,Time err,Geoid Ht,Sats,Rx ok,Rx err,Rx chars,
,,,,,,,,,,,,,,,,,,,,,,1,0,31,
,,,,,,,,,,,,,,,,,,,,,,2,0,99,
,,,,,,,,,,,,,,,,,,,,,,3,0,132,
,,,,,,,,,,,,,,,,,,,,,,4,0,202,
,,,,,,,,,,,,,,,,,,,,,,5,0,235,
,,,,,,,,,,,,,,,,,,,,,,6,0,281,
,,,,,,,,,,,,,,,,,,,,,,7,0,322,
3,2000-01-01 14:55:10.000,490181977,121116468,49 01' 05.512" N 012 06' 41.928" E,,,,,,,,,,,,,,,,,,8,0,374,
3,2021-04-23 14:55:11.000,490181977,121116478,49 01' 05.512" N 012 06' 41.932" E,,10,,,,,,,,,,,,,,,,9,0,444,
3,,,,,,10,,,,,,,,,,,,,,,,10,0,479,

Vielleicht können Sie versuchen, die eingehenden Bytes zu streamen, anstatt aus dem PROGMEM-Satz zu lesen

Hier mit kopieren und einfügen :slight_smile:
12:15:03 $GLGSV,3,2,09,75,03,324,,80,18,148,32,82,17,040,41,83,65,037,31,378
12:15:03 $GLGSV,3,3,09,84,49,220,23,3
43
12:15:03 $GAGSV,1,1,04,09,00,006,,13,,,32,15,65,079,50,27,67,137,48,74A
12:15:03 $GAGSV,1,1,03,09,00,006,,15,65,079,49,27,67,137,48,2
43
12:15:03 $GBGSV,1,1,04,08,22,033,41,12,75,063,40,13,39,052,49,24,34,163,48,174
12:15:03 $GBGSV,1,1,04,08,22,033,,12,75,063,,13,39,052,,24,34,163,,45
12:15:03 $GNGLL,4901.09116,N,01206.69915,E,121503.00,A,A
77
12:15:04 $GNRMC,121504.00,A,4901.09117,N,01206.69916,E,0.035,,260421,,,A,V
14
12:15:04 $GNVTG,,T,,M,0.035,N,0.065,K,A38
12:15:04 $GNGGA,121504.00,4901.09117,N,01206.69916,E,1,12,0.98,342.1,M,46.0,M,,43
12:15:04 $GNGSA,A,3,02,18,25,31,29,,,,,,,,1.46,0.98,1.09,1
0E
12:15:04 $GNGSA,A,3,74,82,73,80,83,,,,,,,,1.46,0.98,1.09,2
06
12:15:04 $GNGSA,A,3,27,15,,,,,,,,,,,1.46,0.98,1.09,308
12:15:04 $GNGSA,A,3,13,24,08,12,,,,,,,,,1.46,0.98,1.09,4
01
12:15:04 $GPGSV,3,1,10,01,,,17,02,10,040,40,05,,,16,10,,,16,157
12:15:04 $GPGSV,3,2,10,15,,,16,18,35,181,44,20,11,134,,25,47,119,47,1
5A
12:15:04 $GPGSV,3,3,10,29,78,043,41,31,53,255,37,161
12:15:04 $GPGSV,2,1,06,02,10,040,,18,35,181,38,20,11,134,,25,47,119,46,6
66
12:15:04 $GPGSV,2,2,06,29,78,043,33,31,53,255,19,668
12:15:04 $GLGSV,3,1,09,66,10,011,21,67,02,058,36,73,69,161,45,74,55,317,26,1
74
12:15:04 $GLGSV,3,2,09,75,03,324,21,80,18,148,34,82,17,040,45,83,65,037,32,178
12:15:04 $GLGSV,3,3,09,84,49,220,,1
40
12:15:04 $GLGSV,3,1,09,66,10,011,,67,02,058,33,73,69,161,39,74,55,317,,37F
12:15:04 $GLGSV,3,2,09,75,03,324,,80,18,148,32,82,17,040,41,83,65,037,31,3
78
12:15:04 $GLGSV,3,3,09,84,49,220,24,344
12:15:04 $GAGSV,1,1,04,09,00,006,,13,,,33,15,65,079,50,27,67,137,48,7
4B
12:15:04 $GAGSV,1,1,03,09,00,006,,15,65,079,49,27,67,137,48,2*43

Ihnen fehlt die Prüfsumme am Ende jedes Satzes?

GLGSV,3,2,09,75,03,324,80,18,148,32,82,17,040,41,83,65,037,31,378
-->
$GLGSV,3,2,09,75,03,324,80,18,148,32,82,17,040,41,83,65,037,31,378*5B

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.