Skip to content

Commit 40a2d4f

Browse files
committed
Unicore GNSS: Integrate the SparkFun Extensible Message Parser
1 parent 1cc711f commit 40a2d4f

File tree

3 files changed

+332
-13
lines changed

3 files changed

+332
-13
lines changed

examples/Example17_Parser/Example17_Parser.ino

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,18 +22,18 @@ int pin_UART1_RX = 13;
2222
SEMP_PARSE_ROUTINE const parserTable[] =
2323
{
2424
sempNmeaPreamble,
25-
sempNmeaHashPreamble,
25+
sempUnicoreHashPreamble,
2626
sempRtcmPreamble,
27-
sempUnicorePreamble,
27+
sempUnicoreBinaryPreamble,
2828
};
2929
const int parserCount = sizeof(parserTable) / sizeof(parserTable[0]);
3030

3131
const char * const parserNames[] =
3232
{
33-
"NMEA_$",
34-
"NMEA_#",
35-
"RTCM",
36-
"Unicore",
33+
"NMEA Parser",
34+
"Unicore Hash (#) Parser",
35+
"RTCM Parser",
36+
"Unicore Binary Parser",
3737
};
3838
const int parserNameCount = sizeof(parserNames) / sizeof(parserNames[0]);
3939

@@ -77,6 +77,10 @@ void setup()
7777
Serial.println("UM980 failed to respond. Check ports and baud rates. Freezing...");
7878
while (true);
7979
}
80+
// myGNSS.enablePrintBadChecksums();
81+
// myGNSS.enablePrintRxMessages();
82+
// myGNSS.enableRxMessageDump();
83+
8084
Serial.println("UM980 detected!");
8185

8286
// Clear saved configurations, satellite ephemerides, position information, and reset baud rate to 115200bps.
@@ -125,17 +129,16 @@ void setup()
125129
if (!parse)
126130
reportFatalError("Failed to initialize the parser");
127131

128-
// Enable debugging for the parser
129-
sempEnableDebugOutput(parse);
130-
131132
if (COMPILE_CAPTURE_RAW_DATA_STREAM)
132133
{
133134
// Disable parser output
134-
sempDisableDebugOutput(parse);
135135
sempDisableErrorOutput(parse);
136136
Serial.println("const uint8_t rawDataStream[] =");
137137
Serial.println("{");
138138
}
139+
else
140+
// Enable debugging for the parser
141+
sempEnableDebugOutput(parse);
139142

140143
Serial.println("Mixture of NMEA, RTCM, and UM980 binary now reporting. Have fun!");
141144
}
@@ -311,12 +314,18 @@ const char *getParseStateName(SEMP_PARSE_STATE *parse)
311314
do
312315
{
313316
name = sempNmeaGetStateName(parse);
317+
if (name)
318+
break;
319+
name = sempNmeaGetStateName(parse);
314320
if (name)
315321
break;
316322
name = sempRtcmGetStateName(parse);
317323
if (name)
318324
break;
319-
name = sempUnicoreGetStateName(parse);
325+
name = sempUnicoreBinaryGetStateName(parse);
326+
if (name)
327+
break;
328+
name = sempUnicoreHashGetStateName(parse);
320329
if (name)
321330
break;
322331
name = sempGetStateName(parse);

0 commit comments

Comments
 (0)