Skip to content

Commit c701d67

Browse files
committed
Adding support for multiple message rates
1 parent de5e739 commit c701d67

File tree

4 files changed

+326
-89
lines changed

4 files changed

+326
-89
lines changed

examples/Example27_MultipleRates/Example27_MultipleRates.ino

+23-7
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
basically do whatever you want with this code.
88
99
This example shows how to configure the U-Blox GNSS to output multiple messages at different rates:
10-
PVT is output once per measurement;
11-
POS_ECEF is output every second measurement;
12-
VEL_NED is output every third measurement.
10+
PVT is output every second;
11+
POSECEF is output every five seconds;
12+
VELNED is output every ten seconds.
1313
1414
Feel like supporting open source hardware?
1515
Buy a board from SparkFun!
@@ -46,9 +46,9 @@ void setup()
4646
myGNSS.setMeasurementRate(1000); //Produce a measurement every 1000ms
4747
myGNSS.setNavigationRate(1); //Produce a navigation solution every measurement
4848

49-
myGNSS.setAutoPVTrate(1); //Tell the GNSS to "send" each PVT solution every measurement
50-
//myGNSS.setAutoPOSECEFrate(2); //Tell the GNSS to "send" each POS_ECEF solution every second measurement
51-
myGNSS.setAutoNAVVELNEDrate(3); //Tell the GNSS to "send" each VEL_NED solution every third measurement
49+
myGNSS.setAutoPVTrate(1); //Tell the GNSS to send the PVT solution every measurement
50+
myGNSS.setAutoNAVPOSECEFrate(5); //Tell the GNSS to send each POSECEF solution every 5th measurement
51+
myGNSS.setAutoNAVVELNEDrate(10); //Tell the GNSS to send each VELNED solution every 10th measurement
5252
//myGNSS.saveConfiguration(); //Optional: Save the current settings to flash and BBR
5353
}
5454

@@ -72,7 +72,23 @@ void loop()
7272
Serial.println(F(" (mm)"));
7373
}
7474

75-
// Calling getVELNED returns true if there actually is fresh velocity data available.
75+
// Calling getNAVPOSECEF returns true if there actually is a fresh position solution available.
76+
if (myGNSS.getNAVPOSECEF())
77+
{
78+
Serial.print(F("ecefX: "));
79+
Serial.print((float)myGNSS.packetUBXNAVPOSECEF->data.ecefX / 100.0, 2); // convert ecefX to m
80+
81+
Serial.print(F(" ecefY: "));
82+
Serial.print((float)myGNSS.packetUBXNAVPOSECEF->data.ecefY / 100.0, 2); // convert ecefY to m
83+
84+
Serial.print(F(" ecefZ: "));
85+
Serial.print((float)myGNSS.packetUBXNAVPOSECEF->data.ecefZ / 100.0, 2); // convert ecefY to m
86+
Serial.println(F(" (m)"));
87+
88+
myGNSS.flushNAVPOSECEF(); //Mark all the data as read/stale so we get fresh data next time
89+
}
90+
91+
// Calling getNAVVELNED returns true if there actually is fresh velocity data available.
7692
if (myGNSS.getNAVVELNED())
7793
{
7894
Serial.print(F("velN: "));

keywords.txt

+23-12
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ sendCfgValset32 KEYWORD2
166166

167167
getNAVPOSECEF KEYWORD2
168168
setAutoNAVPOSECEF KEYWORD2
169-
setAutoNAVPOSECEF KEYWORD2
169+
setAutoNAVPOSECEFrate KEYWORD2
170170
setAutoNAVPOSECEFcallback KEYWORD2
171171
assumeAutoNAVPOSECEF KEYWORD2
172172
initPacketUBXNAVPOSECEF KEYWORD2
@@ -175,7 +175,7 @@ logNAVPOSECEF KEYWORD2
175175

176176
getNAVSTATUS KEYWORD2
177177
setAutoNAVSTATUS KEYWORD2
178-
setAutoNAVSTATUS KEYWORD2
178+
setAutoNAVSTATUSrate KEYWORD2
179179
setAutoNAVSTATUScallback KEYWORD2
180180
assumeAutoNAVSTATUS KEYWORD2
181181
initPacketUBXNAVSTATUS KEYWORD2
@@ -184,7 +184,7 @@ logNAVSTATUS KEYWORD2
184184

185185
getDOP KEYWORD2
186186
setAutoDOP KEYWORD2
187-
setAutoDOP KEYWORD2
187+
setAutoDOPrate KEYWORD2
188188
setAutoDOPcallback KEYWORD2
189189
assumeAutoDOP KEYWORD2
190190
initPacketUBXNAVDOP KEYWORD2
@@ -194,7 +194,7 @@ logNAVDOP KEYWORD2
194194
getVehAtt KEYWORD2
195195
getNAVATT KEYWORD2
196196
setAutoNAVATT KEYWORD2
197-
setAutoNAVATT KEYWORD2
197+
setAutoNAVATTrate KEYWORD2
198198
setAutoNAVATTcallback KEYWORD2
199199
assumeAutoNAVATT KEYWORD2
200200
initPacketUBXNAVATT KEYWORD2
@@ -203,7 +203,7 @@ logNAVATT KEYWORD2
203203

204204
getPVT KEYWORD2
205205
setAutoPVT KEYWORD2
206-
setAutoPVT KEYWORD2
206+
setAutoPVTrate KEYWORD2
207207
setAutoPVTcallback KEYWORD2
208208
assumeAutoPVT KEYWORD2
209209
initPacketUBXNAVPVT KEYWORD2
@@ -212,7 +212,7 @@ logNAVPVT KEYWORD2
212212

213213
getNAVODO KEYWORD2
214214
setAutoNAVODO KEYWORD2
215-
setAutoNAVODO KEYWORD2
215+
setAutoNAVODOrate KEYWORD2
216216
setAutoNAVODOcallback KEYWORD2
217217
assumeAutoNAVODO KEYWORD2
218218
initPacketUBXNAVODO KEYWORD2
@@ -221,7 +221,7 @@ logNAVODO KEYWORD2
221221

222222
getNAVVELECEF KEYWORD2
223223
setAutoNAVVELECEF KEYWORD2
224-
setAutoNAVVELECEF KEYWORD2
224+
setAutoNAVVELECEFrate KEYWORD2
225225
setAutoNAVVELECEFcallback KEYWORD2
226226
assumeAutoNAVVELECEF KEYWORD2
227227
initPacketUBXNAVVELECEF KEYWORD2
@@ -230,6 +230,7 @@ logNAVVELECEF KEYWORD2
230230

231231
getNAVVELNED KEYWORD2
232232
setAutoNAVVELNED KEYWORD2
233+
setAutoNAVVELNEDrate KEYWORD2
233234
setAutoNAVVELNEDcallback KEYWORD2
234235
assumeAutoNAVVELNED KEYWORD2
235236
initPacketUBXNAVVELNED KEYWORD2
@@ -238,7 +239,7 @@ logNAVVELNED KEYWORD2
238239

239240
getNAVHPPOSECEF KEYWORD2
240241
setAutoNAVHPPOSECEF KEYWORD2
241-
setAutoNAVHPPOSECEF KEYWORD2
242+
setAutoNAVHPPOSECEFrate KEYWORD2
242243
setAutoNAVHPPOSECEFcallback KEYWORD2
243244
assumeAutoNAVHPPOSECEF KEYWORD2
244245
initPacketUBXNAVHPPOSECEF KEYWORD2
@@ -247,7 +248,7 @@ logNAVHPPOSECEF KEYWORD2
247248

248249
getHPPOSLLH KEYWORD2
249250
setAutoHPPOSLLH KEYWORD2
250-
setAutoHPPOSLLH KEYWORD2
251+
setAutoHPPOSLLHrate KEYWORD2
251252
setAutoHPPOSLLHcallback KEYWORD2
252253
assumeAutoHPPOSLLH KEYWORD2
253254
initPacketUBXNAVHPPOSLLH KEYWORD2
@@ -256,7 +257,7 @@ logNAVHPPOSLLH KEYWORD2
256257

257258
getNAVCLOCK KEYWORD2
258259
setAutoNAVCLOCK KEYWORD2
259-
setAutoNAVCLOCK KEYWORD2
260+
setAutoNAVCLOCKrate KEYWORD2
260261
setAutoNAVCLOCKcallback KEYWORD2
261262
assumeAutoNAVCLOCK KEYWORD2
262263
initPacketUBXNAVCLOCK KEYWORD2
@@ -268,6 +269,7 @@ initPacketUBXNAVSVIN KEYWORD2
268269

269270
getRELPOSNED KEYWORD2
270271
setAutoRELPOSNED KEYWORD2
272+
setAutoRELPOSNEDrate KEYWORD2
271273
setAutoRELPOSNEDcallback KEYWORD2
272274
assumeAutoRELPOSNED KEYWORD2
273275
initPacketUBXNAVRELPOSNED KEYWORD2
@@ -276,6 +278,7 @@ logNAVRELPOSNED KEYWORD2
276278

277279
getRXMSFRBX KEYWORD2
278280
setAutoRXMSFRBX KEYWORD2
281+
setAutoRXMSFRBXrate KEYWORD2
279282
setAutoRXMSFRBXcallback KEYWORD2
280283
assumeAutoRXMSFRBX KEYWORD2
281284
initPacketUBXRXMSFRBX KEYWORD2
@@ -284,7 +287,7 @@ logRXMSFRBX KEYWORD2
284287

285288
getRXMRAWX KEYWORD2
286289
setAutoRXMRAWX KEYWORD2
287-
setAutoRXMRAWX KEYWORD2
290+
setAutoRXMRAWXrate KEYWORD2
288291
setAutoRXMRAWXcallback KEYWORD2
289292
assumeAutoRXMRAWX KEYWORD2
290293
initPacketUBXRXMRAWX KEYWORD2
@@ -293,6 +296,7 @@ logRXMRAWX KEYWORD2
293296

294297
getTIMTM2 KEYWORD2
295298
setAutoTIMTM2 KEYWORD2
299+
setAutoTIMTM2rate KEYWORD2
296300
setAutoTIMTM2callback KEYWORD2
297301
assumeAutoTIMTM2 KEYWORD2
298302
initPacketUBXTIMTM2 KEYWORD2
@@ -302,6 +306,7 @@ logTIMTM2 KEYWORD2
302306
getEsfAlignment KEYWORD2
303307
getESFALG KEYWORD2
304308
setAutoESFALG KEYWORD2
309+
setAutoESFALGrate KEYWORD2
305310
setAutoESFALGcallback KEYWORD2
306311
assumeAutoESFALG KEYWORD2
307312
initPacketUBXESFALG KEYWORD2
@@ -311,6 +316,7 @@ logESFALG KEYWORD2
311316
getEsfInfo KEYWORD2
312317
getESFSTATUS KEYWORD2
313318
setAutoESFSTATUS KEYWORD2
319+
setAutoESFSTATUSrate KEYWORD2
314320
setAutoESFSTATUScallback KEYWORD2
315321
assumeAutoESFSTATUS KEYWORD2
316322
initPacketUBXESFSTATUS KEYWORD2
@@ -320,6 +326,7 @@ logESFSTATUS KEYWORD2
320326
getEsfIns KEYWORD2
321327
getESFINS KEYWORD2
322328
setAutoESFINS KEYWORD2
329+
setAutoESFINSrate KEYWORD2
323330
setAutoESFINScallback KEYWORD2
324331
assumeAutoESFINS KEYWORD2
325332
initPacketUBXESFINS KEYWORD2
@@ -329,6 +336,7 @@ logESFINS KEYWORD2
329336
getEsfDataInfo KEYWORD2
330337
getESFMEAS KEYWORD2
331338
setAutoESFMEAS KEYWORD2
339+
setAutoESFMEASrate KEYWORD2
332340
setAutoESFMEAScallback KEYWORD2
333341
assumeAutoESFMEAS KEYWORD2
334342
initPacketUBXESFMEAS KEYWORD2
@@ -338,6 +346,7 @@ logESFMEAS KEYWORD2
338346
getEsfRawDataInfo KEYWORD2
339347
getESFRAW KEYWORD2
340348
setAutoESFRAW KEYWORD2
349+
setAutoESFRAWrate KEYWORD2
341350
setAutoESFRAWcallback KEYWORD2
342351
assumeAutoESFRAW KEYWORD2
343352
initPacketUBXESFRAW KEYWORD2
@@ -347,6 +356,7 @@ logESFRAW KEYWORD2
347356
getHNRAtt KEYWORD2
348357
getHNRATT KEYWORD2
349358
setAutoHNRATT KEYWORD2
359+
setAutoHNRATTrate KEYWORD2
350360
setAutoHNRATTcallback KEYWORD2
351361
assumeAutoHNRATT KEYWORD2
352362
initPacketUBXHNRATT KEYWORD2
@@ -356,6 +366,7 @@ logHNRATT KEYWORD2
356366
getHNRDyn KEYWORD2
357367
getHNRINS KEYWORD2
358368
setAutoHNRINS KEYWORD2
369+
setAutoHNRINSrate KEYWORD2
359370
setAutoHNRINScallback KEYWORD2
360371
assumeAutoHNRINS KEYWORD2
361372
initPacketUBXHNRINS KEYWORD2
@@ -364,7 +375,7 @@ logHNRINS KEYWORD2
364375

365376
getHNRPVT KEYWORD2
366377
setAutoHNRPVT KEYWORD2
367-
setAutoHNRPVT KEYWORD2
378+
setAutoHNRPVTrate KEYWORD2
368379
setAutoHNRPVTcallback KEYWORD2
369380
assumeAutoHNRPVT KEYWORD2
370381
initPacketUBXHNRPVT KEYWORD2

0 commit comments

Comments
 (0)