@@ -103,6 +103,7 @@ typedef struct
103
103
UBX_NAV_POSECEF_data_t data ;
104
104
UBX_NAV_POSECEF_moduleQueried_t moduleQueried ;
105
105
void (* callbackPointer )(UBX_NAV_POSECEF_data_t );
106
+ void (* callbackPointerPtr )(UBX_NAV_POSECEF_data_t * );
106
107
UBX_NAV_POSECEF_data_t * callbackData ;
107
108
} UBX_NAV_POSECEF_t ;
108
109
@@ -146,6 +147,7 @@ typedef struct
146
147
UBX_NAV_POSLLH_data_t data ;
147
148
UBX_NAV_POSLLH_moduleQueried_t moduleQueried ;
148
149
void (* callbackPointer )(UBX_NAV_POSLLH_data_t );
150
+ void (* callbackPointerPtr )(UBX_NAV_POSLLH_data_t * );
149
151
UBX_NAV_POSLLH_data_t * callbackData ;
150
152
} UBX_NAV_POSLLH_t ;
151
153
@@ -246,6 +248,7 @@ typedef struct
246
248
UBX_NAV_STATUS_data_t data ;
247
249
UBX_NAV_STATUS_moduleQueried_t moduleQueried ;
248
250
void (* callbackPointer )(UBX_NAV_STATUS_data_t );
251
+ void (* callbackPointerPtr )(UBX_NAV_STATUS_data_t * );
249
252
UBX_NAV_STATUS_data_t * callbackData ;
250
253
} UBX_NAV_STATUS_t ;
251
254
@@ -291,6 +294,7 @@ typedef struct
291
294
UBX_NAV_DOP_data_t data ;
292
295
UBX_NAV_DOP_moduleQueried_t moduleQueried ;
293
296
void (* callbackPointer )(UBX_NAV_DOP_data_t );
297
+ void (* callbackPointerPtr )(UBX_NAV_DOP_data_t * );
294
298
UBX_NAV_DOP_data_t * callbackData ;
295
299
} UBX_NAV_DOP_t ;
296
300
@@ -337,6 +341,7 @@ typedef struct
337
341
UBX_NAV_ATT_data_t data ;
338
342
UBX_NAV_ATT_moduleQueried_t moduleQueried ;
339
343
void (* callbackPointer )(UBX_NAV_ATT_data_t );
344
+ void (* callbackPointerPtr )(UBX_NAV_ATT_data_t * );
340
345
UBX_NAV_ATT_data_t * callbackData ;
341
346
} UBX_NAV_ATT_t ;
342
347
@@ -500,6 +505,7 @@ typedef struct
500
505
UBX_NAV_PVT_data_t data ;
501
506
UBX_NAV_PVT_moduleQueried_t moduleQueried ;
502
507
void (* callbackPointer )(UBX_NAV_PVT_data_t );
508
+ void (* callbackPointerPtr )(UBX_NAV_PVT_data_t * );
503
509
UBX_NAV_PVT_data_t * callbackData ;
504
510
} UBX_NAV_PVT_t ;
505
511
@@ -540,6 +546,7 @@ typedef struct
540
546
UBX_NAV_ODO_data_t data ;
541
547
UBX_NAV_ODO_moduleQueried_t moduleQueried ;
542
548
void (* callbackPointer )(UBX_NAV_ODO_data_t );
549
+ void (* callbackPointerPtr )(UBX_NAV_ODO_data_t * );
543
550
UBX_NAV_ODO_data_t * callbackData ;
544
551
} UBX_NAV_ODO_t ;
545
552
@@ -579,6 +586,7 @@ typedef struct
579
586
UBX_NAV_VELECEF_data_t data ;
580
587
UBX_NAV_VELECEF_moduleQueried_t moduleQueried ;
581
588
void (* callbackPointer )(UBX_NAV_VELECEF_data_t );
589
+ void (* callbackPointerPtr )(UBX_NAV_VELECEF_data_t * );
582
590
UBX_NAV_VELECEF_data_t * callbackData ;
583
591
} UBX_NAV_VELECEF_t ;
584
592
@@ -626,6 +634,7 @@ typedef struct
626
634
UBX_NAV_VELNED_data_t data ;
627
635
UBX_NAV_VELNED_moduleQueried_t moduleQueried ;
628
636
void (* callbackPointer )(UBX_NAV_VELNED_data_t );
637
+ void (* callbackPointerPtr )(UBX_NAV_VELNED_data_t * );
629
638
UBX_NAV_VELNED_data_t * callbackData ;
630
639
} UBX_NAV_VELNED_t ;
631
640
@@ -685,6 +694,7 @@ typedef struct
685
694
UBX_NAV_HPPOSECEF_data_t data ;
686
695
UBX_NAV_HPPOSECEF_moduleQueried_t moduleQueried ;
687
696
void (* callbackPointer )(UBX_NAV_HPPOSECEF_data_t );
697
+ void (* callbackPointerPtr )(UBX_NAV_HPPOSECEF_data_t * );
688
698
UBX_NAV_HPPOSECEF_data_t * callbackData ;
689
699
} UBX_NAV_HPPOSECEF_t ;
690
700
@@ -750,6 +760,7 @@ typedef struct
750
760
UBX_NAV_HPPOSLLH_data_t data ;
751
761
UBX_NAV_HPPOSLLH_moduleQueried_t moduleQueried ;
752
762
void (* callbackPointer )(UBX_NAV_HPPOSLLH_data_t );
763
+ void (* callbackPointerPtr )(UBX_NAV_HPPOSLLH_data_t * );
753
764
UBX_NAV_HPPOSLLH_data_t * callbackData ;
754
765
} UBX_NAV_HPPOSLLH_t ;
755
766
@@ -924,6 +935,7 @@ typedef struct
924
935
UBX_NAV_PVAT_data_t data ;
925
936
UBX_NAV_PVAT_moduleQueried_t moduleQueried ;
926
937
void (* callbackPointer )(UBX_NAV_PVAT_data_t );
938
+ void (* callbackPointerPtr )(UBX_NAV_PVAT_data_t * );
927
939
UBX_NAV_PVAT_data_t * callbackData ;
928
940
} UBX_NAV_PVAT_t ;
929
941
@@ -988,6 +1000,7 @@ typedef struct
988
1000
UBX_NAV_TIMEUTC_data_t data ;
989
1001
UBX_NAV_TIMEUTC_moduleQueried_t moduleQueried ;
990
1002
void (* callbackPointer )(UBX_NAV_TIMEUTC_data_t );
1003
+ void (* callbackPointerPtr )(UBX_NAV_TIMEUTC_data_t * );
991
1004
UBX_NAV_TIMEUTC_data_t * callbackData ;
992
1005
} UBX_NAV_TIMEUTC_t ;
993
1006
@@ -1027,6 +1040,7 @@ typedef struct
1027
1040
UBX_NAV_CLOCK_data_t data ;
1028
1041
UBX_NAV_CLOCK_moduleQueried_t moduleQueried ;
1029
1042
void (* callbackPointer )(UBX_NAV_CLOCK_data_t );
1043
+ void (* callbackPointerPtr )(UBX_NAV_CLOCK_data_t * );
1030
1044
UBX_NAV_CLOCK_data_t * callbackData ;
1031
1045
} UBX_NAV_CLOCK_t ;
1032
1046
@@ -1087,6 +1101,7 @@ typedef struct
1087
1101
UBX_NAV_TIMELS_data_t data ;
1088
1102
UBX_NAV_TIMELS_moduleQueried_t moduleQueried ;
1089
1103
void (* callbackPointer )(UBX_NAV_TIMELS_data_t );
1104
+ void (* callbackPointerPtr )(UBX_NAV_TIMELS_data_t * );
1090
1105
UBX_NAV_TIMELS_data_t * callbackData ;
1091
1106
} UBX_NAV_TIMELS_t ;
1092
1107
@@ -1160,6 +1175,7 @@ typedef struct
1160
1175
UBX_NAV_SAT_data_t data ;
1161
1176
bool moduleQueried ;
1162
1177
void (* callbackPointer )(UBX_NAV_SAT_data_t );
1178
+ void (* callbackPointerPtr )(UBX_NAV_SAT_data_t * );
1163
1179
UBX_NAV_SAT_data_t * callbackData ;
1164
1180
} UBX_NAV_SAT_t ;
1165
1181
@@ -1218,6 +1234,7 @@ typedef struct
1218
1234
UBX_NAV_SVIN_data_t data ;
1219
1235
UBX_NAV_SVIN_moduleQueried_t moduleQueried ;
1220
1236
void (* callbackPointer )(UBX_NAV_SVIN_data_t );
1237
+ void (* callbackPointerPtr )(UBX_NAV_SVIN_data_t * );
1221
1238
UBX_NAV_SVIN_data_t * callbackData ;
1222
1239
} UBX_NAV_SVIN_t ;
1223
1240
@@ -1317,6 +1334,7 @@ typedef struct
1317
1334
UBX_NAV_RELPOSNED_data_t data ;
1318
1335
UBX_NAV_RELPOSNED_moduleQueried_t moduleQueried ;
1319
1336
void (* callbackPointer )(UBX_NAV_RELPOSNED_data_t );
1337
+ void (* callbackPointerPtr )(UBX_NAV_RELPOSNED_data_t * );
1320
1338
UBX_NAV_RELPOSNED_data_t * callbackData ;
1321
1339
} UBX_NAV_RELPOSNED_t ;
1322
1340
@@ -1362,6 +1380,7 @@ typedef struct
1362
1380
UBX_NAV_AOPSTATUS_data_t data ;
1363
1381
UBX_NAV_AOPSTATUS_moduleQueried_t moduleQueried ;
1364
1382
void (* callbackPointer )(UBX_NAV_AOPSTATUS_data_t );
1383
+ void (* callbackPointerPtr )(UBX_NAV_AOPSTATUS_data_t * );
1365
1384
UBX_NAV_AOPSTATUS_data_t * callbackData ;
1366
1385
} UBX_NAV_AOPSTATUS_t ;
1367
1386
@@ -1393,6 +1412,7 @@ typedef struct
1393
1412
UBX_RXM_SFRBX_data_t data ;
1394
1413
bool moduleQueried ;
1395
1414
void (* callbackPointer )(UBX_RXM_SFRBX_data_t );
1415
+ void (* callbackPointerPtr )(UBX_RXM_SFRBX_data_t * );
1396
1416
UBX_RXM_SFRBX_data_t * callbackData ;
1397
1417
} UBX_RXM_SFRBX_t ;
1398
1418
@@ -1460,6 +1480,7 @@ typedef struct
1460
1480
UBX_RXM_RAWX_data_t data ;
1461
1481
bool moduleQueried ;
1462
1482
void (* callbackPointer )(UBX_RXM_RAWX_data_t );
1483
+ void (* callbackPointerPtr )(UBX_RXM_RAWX_data_t * );
1463
1484
UBX_RXM_RAWX_data_t * callbackData ;
1464
1485
} UBX_RXM_RAWX_t ;
1465
1486
@@ -1499,6 +1520,63 @@ typedef struct
1499
1520
1500
1521
// CFG-specific structs
1501
1522
1523
+ // UBX-CFG-PRT (0x06 0x00): Port configuration
1524
+ // The content changes depending on which port type is being configured
1525
+ // This struct defines the common structure
1526
+ const uint16_t UBX_CFG_PRT_LEN = 20 ;
1527
+
1528
+ typedef struct
1529
+ {
1530
+ uint8_t portID ; // Port identifier number
1531
+ uint8_t reserved0 ; // Reserved
1532
+ union
1533
+ {
1534
+ uint16_t all ;
1535
+ struct
1536
+ {
1537
+ uint16_t en : 1 ; // Enable TX ready feature for this port
1538
+ uint16_t pol : 1 ; // Polarity: 0 High-active; 1 Low-active
1539
+ uint16_t pin : 5 ; // PIO to be used (must not be in use by another function)
1540
+ uint16_t thres : 9 ; // Threshold
1541
+ } bits ;
1542
+ } txReady ;
1543
+ uint32_t mode ; // Content changes depending on the port type
1544
+ uint32_t baudRate ; // Content changes depending on the port type
1545
+ union
1546
+ {
1547
+ uint16_t all ;
1548
+ struct
1549
+ {
1550
+ uint16_t inUbx : 1 ; // UBX protocol
1551
+ uint16_t inNmea : 1 ; // NMEA protocol
1552
+ uint16_t inRtcm : 1 ; // RTCM2 protocol
1553
+ uint16_t reserved : 2 ;
1554
+ uint16_t inRtcm3 : 1 ; // RTCM3 protocol (not supported for protocol versions less than 20.00)
1555
+ uint16_t inSPARTN : 1 ;
1556
+ } bits ;
1557
+ } inProtoMask ;
1558
+ union
1559
+ {
1560
+ uint16_t all ;
1561
+ struct
1562
+ {
1563
+ uint16_t outUbx : 1 ; // UBX protocol
1564
+ uint16_t outNmea : 1 ; // NMEA protocol
1565
+ uint16_t reserved : 3 ;
1566
+ uint16_t outRtcm3 : 1 ; // RTCM3 protocol (not supported for protocol versions less than 20.00)
1567
+ uint16_t outSPARTN : 1 ;
1568
+ } bits ;
1569
+ } outProtoMask ;
1570
+ uint16_t flags ; // Content changes depending on the port type
1571
+ uint16_t reserved1 ;
1572
+ } UBX_CFG_PRT_data_t ;
1573
+
1574
+ typedef struct
1575
+ {
1576
+ UBX_CFG_PRT_data_t data ;
1577
+ bool dataValid ;
1578
+ } UBX_CFG_PRT_t ;
1579
+
1502
1580
// UBX-CFG-RATE (0x06 0x08): Navigation/measurement rate settings
1503
1581
const uint16_t UBX_CFG_RATE_LEN = 6 ;
1504
1582
@@ -1531,6 +1609,7 @@ typedef struct
1531
1609
UBX_CFG_RATE_data_t data ;
1532
1610
UBX_CFG_RATE_moduleQueried_t moduleQueried ;
1533
1611
void (* callbackPointer )(UBX_CFG_RATE_data_t );
1612
+ void (* callbackPointerPtr )(UBX_CFG_RATE_data_t * );
1534
1613
UBX_CFG_RATE_data_t * callbackData ;
1535
1614
} UBX_CFG_RATE_t ;
1536
1615
@@ -1637,6 +1716,7 @@ typedef struct
1637
1716
UBX_TIM_TM2_data_t data ;
1638
1717
UBX_TIM_TM2_moduleQueried_t moduleQueried ;
1639
1718
void (* callbackPointer )(UBX_TIM_TM2_data_t );
1719
+ void (* callbackPointerPtr )(UBX_TIM_TM2_data_t * );
1640
1720
UBX_TIM_TM2_data_t * callbackData ;
1641
1721
} UBX_TIM_TM2_t ;
1642
1722
@@ -1711,6 +1791,7 @@ typedef struct
1711
1791
UBX_ESF_ALG_data_t data ;
1712
1792
UBX_ESF_ALG_moduleQueried_t moduleQueried ;
1713
1793
void (* callbackPointer )(UBX_ESF_ALG_data_t );
1794
+ void (* callbackPointerPtr )(UBX_ESF_ALG_data_t * );
1714
1795
UBX_ESF_ALG_data_t * callbackData ;
1715
1796
} UBX_ESF_ALG_t ;
1716
1797
@@ -1777,6 +1858,7 @@ typedef struct
1777
1858
UBX_ESF_INS_data_t data ;
1778
1859
UBX_ESF_INS_moduleQueried_t moduleQueried ;
1779
1860
void (* callbackPointer )(UBX_ESF_INS_data_t );
1861
+ void (* callbackPointerPtr )(UBX_ESF_INS_data_t * );
1780
1862
UBX_ESF_INS_data_t * callbackData ;
1781
1863
} UBX_ESF_INS_t ;
1782
1864
@@ -1847,6 +1929,7 @@ typedef struct
1847
1929
UBX_ESF_MEAS_data_t data ;
1848
1930
UBX_ESF_MEAS_moduleQueried_t moduleQueried ;
1849
1931
void (* callbackPointer )(UBX_ESF_MEAS_data_t );
1932
+ void (* callbackPointerPtr )(UBX_ESF_MEAS_data_t * );
1850
1933
UBX_ESF_MEAS_data_t * callbackData ;
1851
1934
} UBX_ESF_MEAS_t ;
1852
1935
@@ -1894,6 +1977,7 @@ typedef struct
1894
1977
UBX_ESF_RAW_data_t data ;
1895
1978
UBX_ESF_RAW_moduleQueried_t moduleQueried ;
1896
1979
void (* callbackPointer )(UBX_ESF_RAW_data_t );
1980
+ void (* callbackPointerPtr )(UBX_ESF_RAW_data_t * );
1897
1981
UBX_ESF_RAW_data_t * callbackData ;
1898
1982
} UBX_ESF_RAW_t ;
1899
1983
@@ -1981,6 +2065,7 @@ typedef struct
1981
2065
UBX_ESF_STATUS_data_t data ;
1982
2066
UBX_ESF_STATUS_moduleQueried_t moduleQueried ;
1983
2067
void (* callbackPointer )(UBX_ESF_STATUS_data_t );
2068
+ void (* callbackPointerPtr )(UBX_ESF_STATUS_data_t * );
1984
2069
UBX_ESF_STATUS_data_t * callbackData ;
1985
2070
} UBX_ESF_STATUS_t ;
1986
2071
@@ -2151,6 +2236,7 @@ typedef struct
2151
2236
UBX_HNR_PVT_data_t data ;
2152
2237
UBX_HNR_PVT_moduleQueried_t moduleQueried ;
2153
2238
void (* callbackPointer )(UBX_HNR_PVT_data_t );
2239
+ void (* callbackPointerPtr )(UBX_HNR_PVT_data_t * );
2154
2240
UBX_HNR_PVT_data_t * callbackData ;
2155
2241
} UBX_HNR_PVT_t ;
2156
2242
@@ -2197,6 +2283,7 @@ typedef struct
2197
2283
UBX_HNR_ATT_data_t data ;
2198
2284
UBX_HNR_ATT_moduleQueried_t moduleQueried ;
2199
2285
void (* callbackPointer )(UBX_HNR_ATT_data_t );
2286
+ void (* callbackPointerPtr )(UBX_HNR_ATT_data_t * );
2200
2287
UBX_HNR_ATT_data_t * callbackData ;
2201
2288
} UBX_HNR_ATT_t ;
2202
2289
@@ -2263,6 +2350,7 @@ typedef struct
2263
2350
UBX_HNR_INS_data_t data ;
2264
2351
UBX_HNR_INS_moduleQueried_t moduleQueried ;
2265
2352
void (* callbackPointer )(UBX_HNR_INS_data_t );
2353
+ void (* callbackPointerPtr )(UBX_HNR_INS_data_t * );
2266
2354
UBX_HNR_INS_data_t * callbackData ;
2267
2355
} UBX_HNR_INS_t ;
2268
2356
@@ -2302,6 +2390,7 @@ typedef struct
2302
2390
NMEA_GGA_data_t workingCopy ; // Incoming data is added to the working copy
2303
2391
NMEA_GGA_data_t completeCopy ; // The working copy is copied into the complete copy when all data has been received and the checksum is valid
2304
2392
void (* callbackPointer )(NMEA_GGA_data_t );
2393
+ void (* callbackPointerPtr )(NMEA_GGA_data_t * );
2305
2394
NMEA_GGA_data_t * callbackCopy ; // The callback gets its own preserved copy of the complete copy
2306
2395
} NMEA_GPGGA_t ;
2307
2396
@@ -2311,6 +2400,7 @@ typedef struct
2311
2400
NMEA_GGA_data_t workingCopy ; // Incoming data is added to the working copy
2312
2401
NMEA_GGA_data_t completeCopy ; // The working copy is copied into the complete copy when all data has been received and the checksum is valid
2313
2402
void (* callbackPointer )(NMEA_GGA_data_t );
2403
+ void (* callbackPointerPtr )(NMEA_GGA_data_t * );
2314
2404
NMEA_GGA_data_t * callbackCopy ; // The callback gets its own preserved copy of the complete copy
2315
2405
} NMEA_GNGGA_t ;
2316
2406
0 commit comments