Skip to content

Commit 1ada3d3

Browse files
committed
Update callback examples to use new callback pointers
1 parent 47348ab commit 1ada3d3

File tree

7 files changed

+83
-83
lines changed

7 files changed

+83
-83
lines changed

examples/Callbacks/CallbackExample1_NAV_PVT/CallbackExample1_NAV_PVT.ino

+9-9
Original file line numberDiff line numberDiff line change
@@ -33,38 +33,38 @@ SFE_UBLOX_GNSS myGNSS;
3333
// | / _____ You can use any name you like for the struct
3434
// | | /
3535
// | | |
36-
void printPVTdata(UBX_NAV_PVT_data_t ubxDataStruct)
36+
void printPVTdata(UBX_NAV_PVT_data_t *ubxDataStruct)
3737
{
3838
Serial.println();
3939

4040
Serial.print(F("Time: ")); // Print the time
41-
uint8_t hms = ubxDataStruct.hour; // Print the hours
41+
uint8_t hms = ubxDataStruct->hour; // Print the hours
4242
if (hms < 10) Serial.print(F("0")); // Print a leading zero if required
4343
Serial.print(hms);
4444
Serial.print(F(":"));
45-
hms = ubxDataStruct.min; // Print the minutes
45+
hms = ubxDataStruct->min; // Print the minutes
4646
if (hms < 10) Serial.print(F("0")); // Print a leading zero if required
4747
Serial.print(hms);
4848
Serial.print(F(":"));
49-
hms = ubxDataStruct.sec; // Print the seconds
49+
hms = ubxDataStruct->sec; // Print the seconds
5050
if (hms < 10) Serial.print(F("0")); // Print a leading zero if required
5151
Serial.print(hms);
5252
Serial.print(F("."));
53-
unsigned long millisecs = ubxDataStruct.iTOW % 1000; // Print the milliseconds
53+
unsigned long millisecs = ubxDataStruct->iTOW % 1000; // Print the milliseconds
5454
if (millisecs < 100) Serial.print(F("0")); // Print the trailing zeros correctly
5555
if (millisecs < 10) Serial.print(F("0"));
5656
Serial.print(millisecs);
5757

58-
long latitude = ubxDataStruct.lat; // Print the latitude
58+
long latitude = ubxDataStruct->lat; // Print the latitude
5959
Serial.print(F(" Lat: "));
6060
Serial.print(latitude);
6161

62-
long longitude = ubxDataStruct.lon; // Print the longitude
62+
long longitude = ubxDataStruct->lon; // Print the longitude
6363
Serial.print(F(" Long: "));
6464
Serial.print(longitude);
6565
Serial.print(F(" (degrees * 10^-7)"));
6666

67-
long altitude = ubxDataStruct.hMSL; // Print the height above mean sea level
67+
long altitude = ubxDataStruct->hMSL; // Print the height above mean sea level
6868
Serial.print(F(" Height above MSL: "));
6969
Serial.print(altitude);
7070
Serial.println(F(" (mm)"));
@@ -91,7 +91,7 @@ void setup()
9191

9292
myGNSS.setNavigationFrequency(2); //Produce two solutions per second
9393

94-
myGNSS.setAutoPVTcallback(&printPVTdata); // Enable automatic NAV PVT messages with callback to printPVTdata
94+
myGNSS.setAutoPVTcallbackPtr(&printPVTdata); // Enable automatic NAV PVT messages with callback to printPVTdata
9595
}
9696

9797
void loop()

examples/Callbacks/CallbackExample2_NAV_ODO/CallbackExample2_NAV_ODO.ino

+5-5
Original file line numberDiff line numberDiff line change
@@ -33,22 +33,22 @@ SFE_UBLOX_GNSS myGNSS;
3333
// | / _____ You can use any name you like for the struct
3434
// | | /
3535
// | | |
36-
void printODOdata(UBX_NAV_ODO_data_t ubxDataStruct)
36+
void printODOdata(UBX_NAV_ODO_data_t *ubxDataStruct)
3737
{
3838
Serial.println();
3939

4040
Serial.print(F("TOW: ")); // Print the Time Of Week
41-
unsigned long iTOW = ubxDataStruct.iTOW; // iTOW is in milliseconds
41+
unsigned long iTOW = ubxDataStruct->iTOW; // iTOW is in milliseconds
4242
Serial.print(iTOW);
4343
Serial.print(F(" (ms)"));
4444

4545
Serial.print(F(" Distance: "));
46-
unsigned long distance = ubxDataStruct.distance; // Print the distance
46+
unsigned long distance = ubxDataStruct->distance; // Print the distance
4747
Serial.print(distance);
4848
Serial.print(F(" (m)"));
4949

5050
Serial.print(F(" Total Distance: "));
51-
unsigned long totalDistance = ubxDataStruct.totalDistance; // Print the total distance
51+
unsigned long totalDistance = ubxDataStruct->totalDistance; // Print the total distance
5252
Serial.print(totalDistance);
5353
Serial.println(F(" (m)"));
5454
}
@@ -76,7 +76,7 @@ void setup()
7676

7777
//myGNSS.resetOdometer(); //Uncomment this line to reset the odometer
7878

79-
myGNSS.setAutoNAVODOcallback(&printODOdata); // Enable automatic NAV ODO messages with callback to printODOdata
79+
myGNSS.setAutoNAVODOcallbackPtr(&printODOdata); // Enable automatic NAV ODO messages with callback to printODOdata
8080
}
8181

8282
void loop()

examples/Callbacks/CallbackExample3_TIM_TM2/CallbackExample3_TIM_TM2.ino

+9-9
Original file line numberDiff line numberDiff line change
@@ -48,30 +48,30 @@ int dotsPrinted = 0; // Print dots in rows of 50 while waiting for a TIM TM2 mes
4848
// | / _____ You can use any name you like for the struct
4949
// | | /
5050
// | | |
51-
void printTIMTM2data(UBX_TIM_TM2_data_t ubxDataStruct)
51+
void printTIMTM2data(UBX_TIM_TM2_data_t *ubxDataStruct)
5252
{
5353
Serial.println();
5454

5555
Serial.print(F("newFallingEdge: ")); // 1 if a new falling edge was detected
56-
Serial.print(ubxDataStruct.flags.bits.newFallingEdge);
56+
Serial.print(ubxDataStruct->flags.bits.newFallingEdge);
5757

5858
Serial.print(F(" newRisingEdge: ")); // 1 if a new rising edge was detected
59-
Serial.print(ubxDataStruct.flags.bits.newRisingEdge);
59+
Serial.print(ubxDataStruct->flags.bits.newRisingEdge);
6060

6161
Serial.print(F(" Rising Edge Counter: ")); // Rising edge counter
62-
Serial.print(ubxDataStruct.count);
62+
Serial.print(ubxDataStruct->count);
6363

6464
Serial.print(F(" towMsR: ")); // Time Of Week of rising edge (ms)
65-
Serial.print(ubxDataStruct.towMsR);
65+
Serial.print(ubxDataStruct->towMsR);
6666

6767
Serial.print(F(" towSubMsR: ")); // Millisecond fraction of Time Of Week of rising edge in nanoseconds
68-
Serial.print(ubxDataStruct.towSubMsR);
68+
Serial.print(ubxDataStruct->towSubMsR);
6969

7070
Serial.print(F(" towMsF: ")); // Time Of Week of falling edge (ms)
71-
Serial.print(ubxDataStruct.towMsF);
71+
Serial.print(ubxDataStruct->towMsF);
7272

7373
Serial.print(F(" towSubMsF: ")); // Millisecond fraction of Time Of Week of falling edge in nanoseconds
74-
Serial.println(ubxDataStruct.towSubMsF);
74+
Serial.println(ubxDataStruct->towSubMsF);
7575

7676
dotsPrinted = 0; // Reset dotsPrinted
7777
}
@@ -97,7 +97,7 @@ void setup()
9797

9898
myGNSS.setNavigationFrequency(1); //Produce one solution per second
9999

100-
myGNSS.setAutoTIMTM2callback(&printTIMTM2data); // Enable automatic TIM TM2 messages with callback to printTIMTM2data
100+
myGNSS.setAutoTIMTM2callbackPtr(&printTIMTM2data); // Enable automatic TIM TM2 messages with callback to printTIMTM2data
101101
}
102102

103103
void loop()

examples/Callbacks/CallbackExample4_HNR/CallbackExample4_HNR.ino

+15-15
Original file line numberDiff line numberDiff line change
@@ -38,39 +38,39 @@ SFE_UBLOX_GNSS myGNSS;
3838
// | / _____ You can use any name you like for the struct
3939
// | | /
4040
// | | |
41-
void printHNRATTdata(UBX_HNR_ATT_data_t ubxDataStruct)
41+
void printHNRATTdata(UBX_HNR_ATT_data_t *ubxDataStruct)
4242
{
4343
Serial.println();
4444
Serial.print(F("Roll: ")); // Print selected data
45-
Serial.print((float)ubxDataStruct.roll / 100000.0, 2); // Convert roll to degrees
45+
Serial.print((float)ubxDataStruct->roll / 100000.0, 2); // Convert roll to degrees
4646
Serial.print(F(" Pitch: "));
47-
Serial.print((float)ubxDataStruct.pitch / 100000.0, 2); // Convert pitch to degrees
47+
Serial.print((float)ubxDataStruct->pitch / 100000.0, 2); // Convert pitch to degrees
4848
Serial.print(F(" Heading: "));
49-
Serial.println((float)ubxDataStruct.heading / 100000.0, 2); // Convert heading to degrees
49+
Serial.println((float)ubxDataStruct->heading / 100000.0, 2); // Convert heading to degrees
5050
}
5151

5252
// Callback: printHNRINSdata will be called when new HNR INS data arrives
5353
// See u-blox_structs.h for the full definition of UBX_HNR_INS_data_t
54-
void printHNRINSdata(UBX_HNR_INS_data_t ubxDataStruct)
54+
void printHNRINSdata(UBX_HNR_INS_data_t *ubxDataStruct)
5555
{
5656
Serial.print(F("xAccel: ")); // Print selected data
57-
Serial.print(ubxDataStruct.xAccel);
57+
Serial.print(ubxDataStruct->xAccel);
5858
Serial.print(F(" yAccel: "));
59-
Serial.print(ubxDataStruct.yAccel);
59+
Serial.print(ubxDataStruct->yAccel);
6060
Serial.print(F(" zAccel: "));
61-
Serial.println(ubxDataStruct.zAccel);
61+
Serial.println(ubxDataStruct->zAccel);
6262
}
6363

6464
// Callback: printHNRPVTdata will be called when new HNR PVT data arrives
6565
// See u-blox_structs.h for the full definition of UBX_HNR_PVT_data_t
66-
void printHNRPVTdata(UBX_HNR_PVT_data_t ubxDataStruct)
66+
void printHNRPVTdata(UBX_HNR_PVT_data_t *ubxDataStruct)
6767
{
6868
Serial.print(F("ns: ")); // Print selected data
69-
Serial.print(ubxDataStruct.nano);
69+
Serial.print(ubxDataStruct->nano);
7070
Serial.print(F(" Lat: "));
71-
Serial.print(ubxDataStruct.lat);
71+
Serial.print(ubxDataStruct->lat);
7272
Serial.print(F(" Lon: "));
73-
Serial.println(ubxDataStruct.lon);
73+
Serial.println(ubxDataStruct->lon);
7474
}
7575

7676
void setup()
@@ -97,13 +97,13 @@ void setup()
9797
else
9898
Serial.println(F("setHNRNavigationRate was NOT successful"));
9999

100-
if (myGNSS.setAutoHNRATTcallback(&printHNRATTdata) == true) // Enable automatic HNR ATT messages with callback to printHNRATTdata
100+
if (myGNSS.setAutoHNRATTcallbackPtr(&printHNRATTdata) == true) // Enable automatic HNR ATT messages with callback to printHNRATTdata
101101
Serial.println(F("setAutoHNRATTcallback successful"));
102102

103-
if (myGNSS.setAutoHNRINScallback(&printHNRINSdata) == true) // Enable automatic HNR INS messages with callback to printHNRINSdata
103+
if (myGNSS.setAutoHNRINScallbackPtr(&printHNRINSdata) == true) // Enable automatic HNR INS messages with callback to printHNRINSdata
104104
Serial.println(F("setAutoHNRINScallback successful"));
105105

106-
if (myGNSS.setAutoHNRPVTcallback(&printHNRPVTdata) == true) // Enable automatic HNR PVT messages with callback to printHNRPVTdata
106+
if (myGNSS.setAutoHNRPVTcallbackPtr(&printHNRPVTdata) == true) // Enable automatic HNR PVT messages with callback to printHNRPVTdata
107107
Serial.println(F("setAutoHNRPVTcallback successful"));
108108
}
109109

examples/Callbacks/CallbackExample5_ESF/CallbackExample5_ESF.ino

+23-23
Original file line numberDiff line numberDiff line change
@@ -35,63 +35,63 @@ SFE_UBLOX_GNSS myGNSS;
3535
// | / _____ You can use any name you like for the struct
3636
// | | /
3737
// | | |
38-
void printESFALGdata(UBX_ESF_ALG_data_t ubxDataStruct)
38+
void printESFALGdata(UBX_ESF_ALG_data_t *ubxDataStruct)
3939
{
4040
Serial.println();
4141

4242
Serial.print(F("TOW: ")); // Print the Time Of Week
43-
unsigned long iTOW = ubxDataStruct.iTOW; // iTOW is in milliseconds
43+
unsigned long iTOW = ubxDataStruct->iTOW; // iTOW is in milliseconds
4444
Serial.print(iTOW);
4545
Serial.print(F(" (ms)"));
4646

4747
Serial.print(F(" Roll: ")); // Print selected data
48-
Serial.print((float)ubxDataStruct.roll / 100.0, 2); // Convert roll to degrees
48+
Serial.print((float)ubxDataStruct->roll / 100.0, 2); // Convert roll to degrees
4949

5050
Serial.print(F(" Pitch: "));
51-
Serial.print((float)ubxDataStruct.pitch / 100.0, 2); // Convert pitch to degrees
51+
Serial.print((float)ubxDataStruct->pitch / 100.0, 2); // Convert pitch to degrees
5252

5353
Serial.print(F(" Yaw: "));
54-
Serial.print((float)ubxDataStruct.yaw / 100.0, 2); // Convert yaw to degrees
54+
Serial.print((float)ubxDataStruct->yaw / 100.0, 2); // Convert yaw to degrees
5555

5656
Serial.println(F(" (Degrees)"));
5757
}
5858

5959
// Callback: printESFINSdata will be called when new ESF INS data arrives
6060
// See u-blox_structs.h for the full definition of UBX_ESF_INS_data_t
61-
void printESFINSdata(UBX_ESF_INS_data_t ubxDataStruct)
61+
void printESFINSdata(UBX_ESF_INS_data_t *ubxDataStruct)
6262
{
6363
Serial.print(F("xAccel: ")); // Print selected data
64-
Serial.print(ubxDataStruct.xAccel);
64+
Serial.print(ubxDataStruct->xAccel);
6565

6666
Serial.print(F(" yAccel: "));
67-
Serial.print(ubxDataStruct.yAccel);
67+
Serial.print(ubxDataStruct->yAccel);
6868

6969
Serial.print(F(" zAccel: "));
70-
Serial.print(ubxDataStruct.zAccel);
70+
Serial.print(ubxDataStruct->zAccel);
7171

7272
Serial.println(F(" (m/s^2)"));
7373
}
7474

7575
// Callback: printESFMEASdata will be called when new ESF MEAS data arrives
7676
// See u-blox_structs.h for the full definition of UBX_ESF_MEAS_data_t
7777
// and UBX_ESF_MEAS_sensorData_t
78-
void printESFMEASdata(UBX_ESF_MEAS_data_t ubxDataStruct)
78+
void printESFMEASdata(UBX_ESF_MEAS_data_t *ubxDataStruct)
7979
{
8080
Serial.println();
8181

8282
Serial.print(F("id: ")); // Print selected data
83-
Serial.print(ubxDataStruct.id);
83+
Serial.print(ubxDataStruct->id);
8484

8585
Serial.print(F(" numMeas: "));
86-
Serial.println(ubxDataStruct.flags.bits.numMeas);
86+
Serial.println(ubxDataStruct->flags.bits.numMeas);
8787

88-
for (uint8_t num = 0; num < ubxDataStruct.flags.bits.numMeas; num++) // For each sensor
88+
for (uint8_t num = 0; num < ubxDataStruct->flags.bits.numMeas; num++) // For each sensor
8989
{
9090
Serial.print(F("Sensor "));
9191
Serial.print(num);
9292

9393
UBX_ESF_MEAS_sensorData_t sensorData;
94-
myGNSS.getSensorFusionMeasurement(&sensorData, ubxDataStruct, num); // Extract the data for one sensor
94+
myGNSS.getSensorFusionMeasurement(&sensorData, *ubxDataStruct, num); // Extract the data for one sensor
9595

9696
Serial.print(F(": Type: "));
9797
Serial.print(sensorData.data.bits.dataType);
@@ -103,21 +103,21 @@ void printESFMEASdata(UBX_ESF_MEAS_data_t ubxDataStruct)
103103
// Callback: printESFSTATUSdata will be called when new ESF STATUS data arrives
104104
// See u-blox_structs.h for the full definition of UBX_ESF_STATUS_data_t
105105
// and UBX_ESF_STATUS_sensorStatus_t
106-
void printESFSTATUSdata(UBX_ESF_STATUS_data_t ubxDataStruct)
106+
void printESFSTATUSdata(UBX_ESF_STATUS_data_t *ubxDataStruct)
107107
{
108108
Serial.print(F("fusionMode: ")); // Print selected data
109-
Serial.print(ubxDataStruct.fusionMode);
109+
Serial.print(ubxDataStruct->fusionMode);
110110

111111
Serial.print(F(" numSens: "));
112-
Serial.println(ubxDataStruct.numSens);
112+
Serial.println(ubxDataStruct->numSens);
113113

114-
for (uint8_t num = 0; num < ubxDataStruct.numSens; num++) // For each sensor
114+
for (uint8_t num = 0; num < ubxDataStruct->numSens; num++) // For each sensor
115115
{
116116
Serial.print(F("Sensor "));
117117
Serial.print(num);
118118

119119
UBX_ESF_STATUS_sensorStatus_t sensorStatus;
120-
myGNSS.getSensorFusionStatus(&sensorStatus, ubxDataStruct, num); // Extract the data for one sensor
120+
myGNSS.getSensorFusionStatus(&sensorStatus, *ubxDataStruct, num); // Extract the data for one sensor
121121

122122
Serial.print(F(": Type: "));
123123
Serial.print(sensorStatus.sensStatus1.bits.type);
@@ -156,16 +156,16 @@ void setup()
156156

157157
myGNSS.setI2CpollingWait(50); //Allow checkUblox to poll I2C data every 50ms to keep up with the ESF MEAS messages
158158

159-
if (myGNSS.setAutoESFALGcallback(&printESFALGdata) == true) // Enable automatic ESF ALG messages with callback to printESFALGdata
159+
if (myGNSS.setAutoESFALGcallbackPtr(&printESFALGdata) == true) // Enable automatic ESF ALG messages with callback to printESFALGdata
160160
Serial.println(F("setAutoESFALGcallback successful"));
161161

162-
if (myGNSS.setAutoESFINScallback(&printESFINSdata) == true) // Enable automatic ESF INS messages with callback to printESFINSdata
162+
if (myGNSS.setAutoESFINScallbackPtr(&printESFINSdata) == true) // Enable automatic ESF INS messages with callback to printESFINSdata
163163
Serial.println(F("setAutoESFINScallback successful"));
164164

165-
if (myGNSS.setAutoESFMEAScallback(&printESFMEASdata) == true) // Enable automatic ESF MEAS messages with callback to printESFMEASdata
165+
if (myGNSS.setAutoESFMEAScallbackPtr(&printESFMEASdata) == true) // Enable automatic ESF MEAS messages with callback to printESFMEASdata
166166
Serial.println(F("setAutoESFMEAScallback successful"));
167167

168-
if (myGNSS.setAutoESFSTATUScallback(&printESFSTATUSdata) == true) // Enable automatic ESF STATUS messages with callback to printESFSTATUSdata
168+
if (myGNSS.setAutoESFSTATUScallbackPtr(&printESFSTATUSdata) == true) // Enable automatic ESF STATUS messages with callback to printESFSTATUSdata
169169
Serial.println(F("setAutoESFSTATUScallback successful"));
170170
}
171171

examples/Callbacks/CallbackExample6_RAWX/CallbackExample6_RAWX.ino

+12-12
Original file line numberDiff line numberDiff line change
@@ -31,38 +31,38 @@ SFE_UBLOX_GNSS myGNSS;
3131
// | / _____ You can use any name you like for the struct
3232
// | | /
3333
// | | |
34-
void newRAWX(UBX_RXM_RAWX_data_t ubxDataStruct)
34+
void newRAWX(UBX_RXM_RAWX_data_t *ubxDataStruct)
3535
{
3636
Serial.println();
3737

3838
Serial.print(F("New RAWX data received. It contains "));
39-
Serial.print(ubxDataStruct.header.numMeas); // Print numMeas (Number of measurements / blocks)
39+
Serial.print(ubxDataStruct->header.numMeas); // Print numMeas (Number of measurements / blocks)
4040
Serial.println(F(" data blocks:"));
4141

42-
for (uint8_t block = 0; block < ubxDataStruct.header.numMeas; block++) // For each block
42+
for (uint8_t block = 0; block < ubxDataStruct->header.numMeas; block++) // For each block
4343
{
4444
Serial.print(F("GNSS ID: "));
45-
if (ubxDataStruct.blocks[block].gnssId < 100) Serial.print(F(" ")); // Align the gnssId
46-
if (ubxDataStruct.blocks[block].gnssId < 10) Serial.print(F(" ")); // Align the gnssId
47-
Serial.print(ubxDataStruct.blocks[block].gnssId);
45+
if (ubxDataStruct->blocks[block].gnssId < 100) Serial.print(F(" ")); // Align the gnssId
46+
if (ubxDataStruct->blocks[block].gnssId < 10) Serial.print(F(" ")); // Align the gnssId
47+
Serial.print(ubxDataStruct->blocks[block].gnssId);
4848
Serial.print(F(" SV ID: "));
49-
if (ubxDataStruct.blocks[block].svId < 100) Serial.print(F(" ")); // Align the svId
50-
if (ubxDataStruct.blocks[block].svId < 10) Serial.print(F(" ")); // Align the svId
51-
Serial.print(ubxDataStruct.blocks[block].svId);
49+
if (ubxDataStruct->blocks[block].svId < 100) Serial.print(F(" ")); // Align the svId
50+
if (ubxDataStruct->blocks[block].svId < 10) Serial.print(F(" ")); // Align the svId
51+
Serial.print(ubxDataStruct->blocks[block].svId);
5252

5353
if (sizeof(double) == 8) // Check if our processor supports 64-bit double
5454
{
5555
// Convert prMes from uint8_t[8] to 64-bit double
5656
// prMes is little-endian
5757
double pseudorange;
58-
memcpy(&pseudorange, &ubxDataStruct.blocks[block].prMes, 8);
58+
memcpy(&pseudorange, &ubxDataStruct->blocks[block].prMes, 8);
5959
Serial.print(F(" PR: "));
6060
Serial.print(pseudorange, 3);
6161

6262
// Convert cpMes from uint8_t[8] to 64-bit double
6363
// cpMes is little-endian
6464
double carrierPhase;
65-
memcpy(&carrierPhase, &ubxDataStruct.blocks[block].cpMes, 8);
65+
memcpy(&carrierPhase, &ubxDataStruct->blocks[block].cpMes, 8);
6666
Serial.print(F(" m CP: "));
6767
Serial.print(carrierPhase, 3);
6868
Serial.print(F(" cycles"));
@@ -94,7 +94,7 @@ void setup()
9494

9595
myGNSS.setNavigationFrequency(1); //Produce one solution per second (RAWX produces a _lot_ of data!)
9696

97-
myGNSS.setAutoRXMRAWXcallback(&newRAWX); // Enable automatic RXM RAWX messages with callback to newRAWX
97+
myGNSS.setAutoRXMRAWXcallbackPtr(&newRAWX); // Enable automatic RXM RAWX messages with callback to newRAWX
9898
}
9999

100100
void loop()

0 commit comments

Comments
 (0)