GnssNavigationMessage-Struct-Referenz
#include <
gps.h
>
Datenfelder |
|
size_t | size |
int16_t | svid |
GnssNavigationMessageType | type |
NavigationMessageStatus | status |
int16_t | message_id |
int16_t | submessage_id |
size_t | data_length |
uint8_t * | Daten |
Detaillierte Beschreibung
Stellt eine GPS-Navigationsnachricht (oder ein Fragment davon) dar.
Felddokumentation
uint8_t* data |
Die Daten der gemeldeten GPS-Nachricht. Die Bytes (oder Wörter), die im Big-Endian-Format (MSB zuerst) angegeben sind.
- Bei GPS L1 C/A, Beidou D1 und Beidou D2 enthält jeder Subframe 10 30‑Bit-Wörter. Jedes Wort (30 Bit) sollte in die letzten 30 Bit eines 4‑Byte-Worts passen (B31 und B32 überspringen), wobei das MSB zuerst kommt.Das ergibt insgesamt 40 Byte, die einen Zeitraum von jeweils 6, 6 und 0,6 Sekunden abdecken.
- Bei Glonass L1 C/A enthält jeder String 85 Datenbits, einschließlich der Prüfsumme. Diese Bits sollten in 11 Byte passen, wobei das MSB zuerst kommt (B86–B88 überspringen). Sie sollten einen Zeitraum von 2 Sekunden abdecken.
- Bei Galileo F/NAV besteht jedes Wort aus 238 Bit (ohne Synchronisations- und Endzeichen). Jedes Wort sollte 30 Byte umfassen, wobei das MSB zuerst kommt (B239, B240 überspringen). Es deckt einen Zeitraum von 10 Sekunden ab.
- Bei Galileo I/NAV enthält jede Seite zwei Seitenteile, gerade und ungerade, mit insgesamt 2 × 114 = 228 Bit (ohne SYNC und TAIL), die in 29 Byte passen sollten, wobei das höchste Bit zuerst kommt (B229–B232 überspringen).
size_t data_length |
Die Länge der Daten (in Byte), die in der aktuellen Nachricht enthalten sind. Wenn sich dieser Wert von null unterscheidet, muss „data“ auf ein Array derselben Größe verweisen. Beispiel: Für L1 C/A beträgt die Größe des Unterframes 40 Byte (10 Wörter, 30 Bit/Wort).
Dies ist ein Pflichtfeld.
int16_t message_id |
Nachrichten-ID. Er enthält einen Index, damit die vollständige Navigationsnachricht zusammengesetzt werden kann.
- Bei GPS L1 C/A-Subframe 4 und 5 entspricht dieser Wert der „Frame-ID“ der Navigationsnachricht im Bereich von 1 bis 25. Subframe 1, 2 und 3 enthalten keine „Frame-ID“ und dieser Wert kann auf -1 gesetzt werden.
- Bei Glonass L1 C/A bezieht sich dies auf die Frame-ID im Bereich von 1 bis 5.
- Bei BeiDou D1 bezieht sich dies auf die Frame-Nummer im Bereich von 1 bis 24.
- Bei Beidou D2 bezieht sich dies auf die Frame-Nummer im Bereich von 1–120.
- Für das Galileo-F/NAV-Nominalframe-Format bezieht sich dies auf die Subframe-Nummer im Bereich von 1–12.
- Bei der Galileo-I/NAV-Nominalframstruktur bezieht sich dies auf die Subframe-Nummer im Bereich von 1 bis 24.
size_t-Größe |
NavigationMessageStatus status |
int16_t submessage_id |
Untergeordnete Nachrichten-ID. Wenn vom Nachrichtentyp „type“ gefordert, enthält dieser Wert einen Unterindex innerhalb der aktuellen Nachricht (oder des Frames), die bzw. der übertragen wird.
- Bei GPS L1 C/A, BeiDou D1 und BeiDou D2 entspricht die Unternachricht-ID der Subframe-Nummer der Navigationsnachricht im Bereich von 1 bis 5.
- Bei Glonass L1 C/A bezieht sich dies auf die Stringnummer im Bereich von 1 bis 15.
- Bei Galileo F/NAV bezieht sich dies auf den Seitentyp im Bereich 1–6.
- Bei Galileo I/NAV bezieht sich dies auf den Worttyp im Bereich 1–10+.
int16_t svid |
Die Satelliten-Fahrzeug-ID, wie in GnssSvInfo::svid definiert. Dies ist ein Pflichtwert.
Die Dokumentation für diese Struktur wurde aus der folgenden Datei generiert:
- hardware/libhardware/include/hardware/ gps.h