Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 9e13794

Browse files
committedFeb 5, 2022
Adding callback pointers for all auto messages
1 parent eba8063 commit 9e13794

File tree

4 files changed

+897
-139
lines changed

4 files changed

+897
-139
lines changed
 

‎Adding_New_Messages.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -129,21 +129,23 @@ See [this commit](https://github.com/sparkfun/SparkFun_u-blox_GNSS_Arduino_Libra
129129

130130
See [this commit](https://github.com/sparkfun/SparkFun_u-blox_GNSS_Arduino_Library/commit/b746d8e2742961ede95e2d06d5db3a3a557e571d) for the changes.
131131

132-
#### Step 6.3: Update processUBXpacket()
132+
#### Step 6.3: Update getMaxPayloadSize()
133+
134+
#### Step 6.4: Update processUBXpacket()
133135

134136
Take time to double-check that you have used the correct data width, signed/unsigned and position for each field.
135137

136138
See [this commit](https://github.com/sparkfun/SparkFun_u-blox_GNSS_Arduino_Library/commit/8eecdd5044f810b0e2b567150ff63a17c219fe8e) for the changes.
137139

138-
#### Step 6.4: Update checkCallbacks()
140+
#### Step 6.5: Update checkCallbacks()
139141

140142
See [this commit](https://github.com/sparkfun/SparkFun_u-blox_GNSS_Arduino_Library/commit/b53bffaa3ae12482cfb268f23796963d0b8519c9) for the changes.
141143

142-
#### Step 6.5: Add the "auto" functions
144+
#### Step 6.6: Add the "auto" functions
143145

144146
See [this commit](https://github.com/sparkfun/SparkFun_u-blox_GNSS_Arduino_Library/commit/e394ae003ad38117d150598774d0552059416473) for the changes.
145147

146-
#### Step 6.6: Add the helper functions (if any)
148+
#### Step 6.7: Add the helper functions (if any)
147149

148150
See [this commit](https://github.com/sparkfun/SparkFun_u-blox_GNSS_Arduino_Library/commit/318e76383e96d6676bbb57294c25e665c0d4a31f) for the changes.
149151

‎src/SparkFun_u-blox_GNSS_Arduino_Library.cpp

Lines changed: 761 additions & 124 deletions
Large diffs are not rendered by default.

‎src/SparkFun_u-blox_GNSS_Arduino_Library.h

Lines changed: 40 additions & 11 deletions
Large diffs are not rendered by default.

‎src/u-blox_structs.h

Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@ typedef struct
103103
UBX_NAV_POSECEF_data_t data;
104104
UBX_NAV_POSECEF_moduleQueried_t moduleQueried;
105105
void (*callbackPointer)(UBX_NAV_POSECEF_data_t);
106+
void (*callbackPointerPtr)(UBX_NAV_POSECEF_data_t *);
106107
UBX_NAV_POSECEF_data_t *callbackData;
107108
} UBX_NAV_POSECEF_t;
108109

@@ -146,6 +147,7 @@ typedef struct
146147
UBX_NAV_POSLLH_data_t data;
147148
UBX_NAV_POSLLH_moduleQueried_t moduleQueried;
148149
void (*callbackPointer)(UBX_NAV_POSLLH_data_t);
150+
void (*callbackPointerPtr)(UBX_NAV_POSLLH_data_t *);
149151
UBX_NAV_POSLLH_data_t *callbackData;
150152
} UBX_NAV_POSLLH_t;
151153

@@ -246,6 +248,7 @@ typedef struct
246248
UBX_NAV_STATUS_data_t data;
247249
UBX_NAV_STATUS_moduleQueried_t moduleQueried;
248250
void (*callbackPointer)(UBX_NAV_STATUS_data_t);
251+
void (*callbackPointerPtr)(UBX_NAV_STATUS_data_t *);
249252
UBX_NAV_STATUS_data_t *callbackData;
250253
} UBX_NAV_STATUS_t;
251254

@@ -291,6 +294,7 @@ typedef struct
291294
UBX_NAV_DOP_data_t data;
292295
UBX_NAV_DOP_moduleQueried_t moduleQueried;
293296
void (*callbackPointer)(UBX_NAV_DOP_data_t);
297+
void (*callbackPointerPtr)(UBX_NAV_DOP_data_t *);
294298
UBX_NAV_DOP_data_t *callbackData;
295299
} UBX_NAV_DOP_t;
296300

@@ -337,6 +341,7 @@ typedef struct
337341
UBX_NAV_ATT_data_t data;
338342
UBX_NAV_ATT_moduleQueried_t moduleQueried;
339343
void (*callbackPointer)(UBX_NAV_ATT_data_t);
344+
void (*callbackPointerPtr)(UBX_NAV_ATT_data_t *);
340345
UBX_NAV_ATT_data_t *callbackData;
341346
} UBX_NAV_ATT_t;
342347

@@ -500,6 +505,7 @@ typedef struct
500505
UBX_NAV_PVT_data_t data;
501506
UBX_NAV_PVT_moduleQueried_t moduleQueried;
502507
void (*callbackPointer)(UBX_NAV_PVT_data_t);
508+
void (*callbackPointerPtr)(UBX_NAV_PVT_data_t *);
503509
UBX_NAV_PVT_data_t *callbackData;
504510
} UBX_NAV_PVT_t;
505511

@@ -540,6 +546,7 @@ typedef struct
540546
UBX_NAV_ODO_data_t data;
541547
UBX_NAV_ODO_moduleQueried_t moduleQueried;
542548
void (*callbackPointer)(UBX_NAV_ODO_data_t);
549+
void (*callbackPointerPtr)(UBX_NAV_ODO_data_t *);
543550
UBX_NAV_ODO_data_t *callbackData;
544551
} UBX_NAV_ODO_t;
545552

@@ -579,6 +586,7 @@ typedef struct
579586
UBX_NAV_VELECEF_data_t data;
580587
UBX_NAV_VELECEF_moduleQueried_t moduleQueried;
581588
void (*callbackPointer)(UBX_NAV_VELECEF_data_t);
589+
void (*callbackPointerPtr)(UBX_NAV_VELECEF_data_t *);
582590
UBX_NAV_VELECEF_data_t *callbackData;
583591
} UBX_NAV_VELECEF_t;
584592

@@ -626,6 +634,7 @@ typedef struct
626634
UBX_NAV_VELNED_data_t data;
627635
UBX_NAV_VELNED_moduleQueried_t moduleQueried;
628636
void (*callbackPointer)(UBX_NAV_VELNED_data_t);
637+
void (*callbackPointerPtr)(UBX_NAV_VELNED_data_t *);
629638
UBX_NAV_VELNED_data_t *callbackData;
630639
} UBX_NAV_VELNED_t;
631640

@@ -685,6 +694,7 @@ typedef struct
685694
UBX_NAV_HPPOSECEF_data_t data;
686695
UBX_NAV_HPPOSECEF_moduleQueried_t moduleQueried;
687696
void (*callbackPointer)(UBX_NAV_HPPOSECEF_data_t);
697+
void (*callbackPointerPtr)(UBX_NAV_HPPOSECEF_data_t *);
688698
UBX_NAV_HPPOSECEF_data_t *callbackData;
689699
} UBX_NAV_HPPOSECEF_t;
690700

@@ -750,6 +760,7 @@ typedef struct
750760
UBX_NAV_HPPOSLLH_data_t data;
751761
UBX_NAV_HPPOSLLH_moduleQueried_t moduleQueried;
752762
void (*callbackPointer)(UBX_NAV_HPPOSLLH_data_t);
763+
void (*callbackPointerPtr)(UBX_NAV_HPPOSLLH_data_t *);
753764
UBX_NAV_HPPOSLLH_data_t *callbackData;
754765
} UBX_NAV_HPPOSLLH_t;
755766

@@ -924,6 +935,7 @@ typedef struct
924935
UBX_NAV_PVAT_data_t data;
925936
UBX_NAV_PVAT_moduleQueried_t moduleQueried;
926937
void (*callbackPointer)(UBX_NAV_PVAT_data_t);
938+
void (*callbackPointerPtr)(UBX_NAV_PVAT_data_t *);
927939
UBX_NAV_PVAT_data_t *callbackData;
928940
} UBX_NAV_PVAT_t;
929941

@@ -988,6 +1000,7 @@ typedef struct
9881000
UBX_NAV_TIMEUTC_data_t data;
9891001
UBX_NAV_TIMEUTC_moduleQueried_t moduleQueried;
9901002
void (*callbackPointer)(UBX_NAV_TIMEUTC_data_t);
1003+
void (*callbackPointerPtr)(UBX_NAV_TIMEUTC_data_t *);
9911004
UBX_NAV_TIMEUTC_data_t *callbackData;
9921005
} UBX_NAV_TIMEUTC_t;
9931006

@@ -1027,6 +1040,7 @@ typedef struct
10271040
UBX_NAV_CLOCK_data_t data;
10281041
UBX_NAV_CLOCK_moduleQueried_t moduleQueried;
10291042
void (*callbackPointer)(UBX_NAV_CLOCK_data_t);
1043+
void (*callbackPointerPtr)(UBX_NAV_CLOCK_data_t *);
10301044
UBX_NAV_CLOCK_data_t *callbackData;
10311045
} UBX_NAV_CLOCK_t;
10321046

@@ -1087,6 +1101,7 @@ typedef struct
10871101
UBX_NAV_TIMELS_data_t data;
10881102
UBX_NAV_TIMELS_moduleQueried_t moduleQueried;
10891103
void (*callbackPointer)(UBX_NAV_TIMELS_data_t);
1104+
void (*callbackPointerPtr)(UBX_NAV_TIMELS_data_t *);
10901105
UBX_NAV_TIMELS_data_t *callbackData;
10911106
} UBX_NAV_TIMELS_t;
10921107

@@ -1160,6 +1175,7 @@ typedef struct
11601175
UBX_NAV_SAT_data_t data;
11611176
bool moduleQueried;
11621177
void (*callbackPointer)(UBX_NAV_SAT_data_t);
1178+
void (*callbackPointerPtr)(UBX_NAV_SAT_data_t *);
11631179
UBX_NAV_SAT_data_t *callbackData;
11641180
} UBX_NAV_SAT_t;
11651181

@@ -1218,6 +1234,7 @@ typedef struct
12181234
UBX_NAV_SVIN_data_t data;
12191235
UBX_NAV_SVIN_moduleQueried_t moduleQueried;
12201236
void (*callbackPointer)(UBX_NAV_SVIN_data_t);
1237+
void (*callbackPointerPtr)(UBX_NAV_SVIN_data_t *);
12211238
UBX_NAV_SVIN_data_t *callbackData;
12221239
} UBX_NAV_SVIN_t;
12231240

@@ -1317,6 +1334,7 @@ typedef struct
13171334
UBX_NAV_RELPOSNED_data_t data;
13181335
UBX_NAV_RELPOSNED_moduleQueried_t moduleQueried;
13191336
void (*callbackPointer)(UBX_NAV_RELPOSNED_data_t);
1337+
void (*callbackPointerPtr)(UBX_NAV_RELPOSNED_data_t *);
13201338
UBX_NAV_RELPOSNED_data_t *callbackData;
13211339
} UBX_NAV_RELPOSNED_t;
13221340

@@ -1362,6 +1380,7 @@ typedef struct
13621380
UBX_NAV_AOPSTATUS_data_t data;
13631381
UBX_NAV_AOPSTATUS_moduleQueried_t moduleQueried;
13641382
void (*callbackPointer)(UBX_NAV_AOPSTATUS_data_t);
1383+
void (*callbackPointerPtr)(UBX_NAV_AOPSTATUS_data_t *);
13651384
UBX_NAV_AOPSTATUS_data_t *callbackData;
13661385
} UBX_NAV_AOPSTATUS_t;
13671386

@@ -1393,6 +1412,7 @@ typedef struct
13931412
UBX_RXM_SFRBX_data_t data;
13941413
bool moduleQueried;
13951414
void (*callbackPointer)(UBX_RXM_SFRBX_data_t);
1415+
void (*callbackPointerPtr)(UBX_RXM_SFRBX_data_t *);
13961416
UBX_RXM_SFRBX_data_t *callbackData;
13971417
} UBX_RXM_SFRBX_t;
13981418

@@ -1460,6 +1480,7 @@ typedef struct
14601480
UBX_RXM_RAWX_data_t data;
14611481
bool moduleQueried;
14621482
void (*callbackPointer)(UBX_RXM_RAWX_data_t);
1483+
void (*callbackPointerPtr)(UBX_RXM_RAWX_data_t *);
14631484
UBX_RXM_RAWX_data_t *callbackData;
14641485
} UBX_RXM_RAWX_t;
14651486

@@ -1499,6 +1520,63 @@ typedef struct
14991520

15001521
// CFG-specific structs
15011522

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+
15021580
// UBX-CFG-RATE (0x06 0x08): Navigation/measurement rate settings
15031581
const uint16_t UBX_CFG_RATE_LEN = 6;
15041582

@@ -1531,6 +1609,7 @@ typedef struct
15311609
UBX_CFG_RATE_data_t data;
15321610
UBX_CFG_RATE_moduleQueried_t moduleQueried;
15331611
void (*callbackPointer)(UBX_CFG_RATE_data_t);
1612+
void (*callbackPointerPtr)(UBX_CFG_RATE_data_t *);
15341613
UBX_CFG_RATE_data_t *callbackData;
15351614
} UBX_CFG_RATE_t;
15361615

@@ -1637,6 +1716,7 @@ typedef struct
16371716
UBX_TIM_TM2_data_t data;
16381717
UBX_TIM_TM2_moduleQueried_t moduleQueried;
16391718
void (*callbackPointer)(UBX_TIM_TM2_data_t);
1719+
void (*callbackPointerPtr)(UBX_TIM_TM2_data_t *);
16401720
UBX_TIM_TM2_data_t *callbackData;
16411721
} UBX_TIM_TM2_t;
16421722

@@ -1711,6 +1791,7 @@ typedef struct
17111791
UBX_ESF_ALG_data_t data;
17121792
UBX_ESF_ALG_moduleQueried_t moduleQueried;
17131793
void (*callbackPointer)(UBX_ESF_ALG_data_t);
1794+
void (*callbackPointerPtr)(UBX_ESF_ALG_data_t *);
17141795
UBX_ESF_ALG_data_t *callbackData;
17151796
} UBX_ESF_ALG_t;
17161797

@@ -1777,6 +1858,7 @@ typedef struct
17771858
UBX_ESF_INS_data_t data;
17781859
UBX_ESF_INS_moduleQueried_t moduleQueried;
17791860
void (*callbackPointer)(UBX_ESF_INS_data_t);
1861+
void (*callbackPointerPtr)(UBX_ESF_INS_data_t *);
17801862
UBX_ESF_INS_data_t *callbackData;
17811863
} UBX_ESF_INS_t;
17821864

@@ -1847,6 +1929,7 @@ typedef struct
18471929
UBX_ESF_MEAS_data_t data;
18481930
UBX_ESF_MEAS_moduleQueried_t moduleQueried;
18491931
void (*callbackPointer)(UBX_ESF_MEAS_data_t);
1932+
void (*callbackPointerPtr)(UBX_ESF_MEAS_data_t *);
18501933
UBX_ESF_MEAS_data_t *callbackData;
18511934
} UBX_ESF_MEAS_t;
18521935

@@ -1894,6 +1977,7 @@ typedef struct
18941977
UBX_ESF_RAW_data_t data;
18951978
UBX_ESF_RAW_moduleQueried_t moduleQueried;
18961979
void (*callbackPointer)(UBX_ESF_RAW_data_t);
1980+
void (*callbackPointerPtr)(UBX_ESF_RAW_data_t *);
18971981
UBX_ESF_RAW_data_t *callbackData;
18981982
} UBX_ESF_RAW_t;
18991983

@@ -1981,6 +2065,7 @@ typedef struct
19812065
UBX_ESF_STATUS_data_t data;
19822066
UBX_ESF_STATUS_moduleQueried_t moduleQueried;
19832067
void (*callbackPointer)(UBX_ESF_STATUS_data_t);
2068+
void (*callbackPointerPtr)(UBX_ESF_STATUS_data_t *);
19842069
UBX_ESF_STATUS_data_t *callbackData;
19852070
} UBX_ESF_STATUS_t;
19862071

@@ -2151,6 +2236,7 @@ typedef struct
21512236
UBX_HNR_PVT_data_t data;
21522237
UBX_HNR_PVT_moduleQueried_t moduleQueried;
21532238
void (*callbackPointer)(UBX_HNR_PVT_data_t);
2239+
void (*callbackPointerPtr)(UBX_HNR_PVT_data_t *);
21542240
UBX_HNR_PVT_data_t *callbackData;
21552241
} UBX_HNR_PVT_t;
21562242

@@ -2197,6 +2283,7 @@ typedef struct
21972283
UBX_HNR_ATT_data_t data;
21982284
UBX_HNR_ATT_moduleQueried_t moduleQueried;
21992285
void (*callbackPointer)(UBX_HNR_ATT_data_t);
2286+
void (*callbackPointerPtr)(UBX_HNR_ATT_data_t *);
22002287
UBX_HNR_ATT_data_t *callbackData;
22012288
} UBX_HNR_ATT_t;
22022289

@@ -2263,6 +2350,7 @@ typedef struct
22632350
UBX_HNR_INS_data_t data;
22642351
UBX_HNR_INS_moduleQueried_t moduleQueried;
22652352
void (*callbackPointer)(UBX_HNR_INS_data_t);
2353+
void (*callbackPointerPtr)(UBX_HNR_INS_data_t *);
22662354
UBX_HNR_INS_data_t *callbackData;
22672355
} UBX_HNR_INS_t;
22682356

@@ -2302,6 +2390,7 @@ typedef struct
23022390
NMEA_GGA_data_t workingCopy; // Incoming data is added to the working copy
23032391
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
23042392
void (*callbackPointer)(NMEA_GGA_data_t);
2393+
void (*callbackPointerPtr)(NMEA_GGA_data_t *);
23052394
NMEA_GGA_data_t *callbackCopy; // The callback gets its own preserved copy of the complete copy
23062395
} NMEA_GPGGA_t;
23072396

@@ -2311,6 +2400,7 @@ typedef struct
23112400
NMEA_GGA_data_t workingCopy; // Incoming data is added to the working copy
23122401
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
23132402
void (*callbackPointer)(NMEA_GGA_data_t);
2403+
void (*callbackPointerPtr)(NMEA_GGA_data_t *);
23142404
NMEA_GGA_data_t *callbackCopy; // The callback gets its own preserved copy of the complete copy
23152405
} NMEA_GNGGA_t;
23162406

0 commit comments

Comments
 (0)
Please sign in to comment.