Update callback examples to use new callback pointers
This commit is contained in:
@@ -33,38 +33,38 @@ SFE_UBLOX_GNSS myGNSS;
|
||||
// | / _____ You can use any name you like for the struct
|
||||
// | | /
|
||||
// | | |
|
||||
void printPVTdata(UBX_NAV_PVT_data_t ubxDataStruct)
|
||||
void printPVTdata(UBX_NAV_PVT_data_t *ubxDataStruct)
|
||||
{
|
||||
Serial.println();
|
||||
|
||||
Serial.print(F("Time: ")); // Print the time
|
||||
uint8_t hms = ubxDataStruct.hour; // Print the hours
|
||||
uint8_t hms = ubxDataStruct->hour; // Print the hours
|
||||
if (hms < 10) Serial.print(F("0")); // Print a leading zero if required
|
||||
Serial.print(hms);
|
||||
Serial.print(F(":"));
|
||||
hms = ubxDataStruct.min; // Print the minutes
|
||||
hms = ubxDataStruct->min; // Print the minutes
|
||||
if (hms < 10) Serial.print(F("0")); // Print a leading zero if required
|
||||
Serial.print(hms);
|
||||
Serial.print(F(":"));
|
||||
hms = ubxDataStruct.sec; // Print the seconds
|
||||
hms = ubxDataStruct->sec; // Print the seconds
|
||||
if (hms < 10) Serial.print(F("0")); // Print a leading zero if required
|
||||
Serial.print(hms);
|
||||
Serial.print(F("."));
|
||||
unsigned long millisecs = ubxDataStruct.iTOW % 1000; // Print the milliseconds
|
||||
unsigned long millisecs = ubxDataStruct->iTOW % 1000; // Print the milliseconds
|
||||
if (millisecs < 100) Serial.print(F("0")); // Print the trailing zeros correctly
|
||||
if (millisecs < 10) Serial.print(F("0"));
|
||||
Serial.print(millisecs);
|
||||
|
||||
long latitude = ubxDataStruct.lat; // Print the latitude
|
||||
long latitude = ubxDataStruct->lat; // Print the latitude
|
||||
Serial.print(F(" Lat: "));
|
||||
Serial.print(latitude);
|
||||
|
||||
long longitude = ubxDataStruct.lon; // Print the longitude
|
||||
long longitude = ubxDataStruct->lon; // Print the longitude
|
||||
Serial.print(F(" Long: "));
|
||||
Serial.print(longitude);
|
||||
Serial.print(F(" (degrees * 10^-7)"));
|
||||
|
||||
long altitude = ubxDataStruct.hMSL; // Print the height above mean sea level
|
||||
long altitude = ubxDataStruct->hMSL; // Print the height above mean sea level
|
||||
Serial.print(F(" Height above MSL: "));
|
||||
Serial.print(altitude);
|
||||
Serial.println(F(" (mm)"));
|
||||
@@ -91,7 +91,7 @@ void setup()
|
||||
|
||||
myGNSS.setNavigationFrequency(2); //Produce two solutions per second
|
||||
|
||||
myGNSS.setAutoPVTcallback(&printPVTdata); // Enable automatic NAV PVT messages with callback to printPVTdata
|
||||
myGNSS.setAutoPVTcallbackPtr(&printPVTdata); // Enable automatic NAV PVT messages with callback to printPVTdata
|
||||
}
|
||||
|
||||
void loop()
|
||||
|
||||
@@ -33,22 +33,22 @@ SFE_UBLOX_GNSS myGNSS;
|
||||
// | / _____ You can use any name you like for the struct
|
||||
// | | /
|
||||
// | | |
|
||||
void printODOdata(UBX_NAV_ODO_data_t ubxDataStruct)
|
||||
void printODOdata(UBX_NAV_ODO_data_t *ubxDataStruct)
|
||||
{
|
||||
Serial.println();
|
||||
|
||||
Serial.print(F("TOW: ")); // Print the Time Of Week
|
||||
unsigned long iTOW = ubxDataStruct.iTOW; // iTOW is in milliseconds
|
||||
unsigned long iTOW = ubxDataStruct->iTOW; // iTOW is in milliseconds
|
||||
Serial.print(iTOW);
|
||||
Serial.print(F(" (ms)"));
|
||||
|
||||
Serial.print(F(" Distance: "));
|
||||
unsigned long distance = ubxDataStruct.distance; // Print the distance
|
||||
unsigned long distance = ubxDataStruct->distance; // Print the distance
|
||||
Serial.print(distance);
|
||||
Serial.print(F(" (m)"));
|
||||
|
||||
Serial.print(F(" Total Distance: "));
|
||||
unsigned long totalDistance = ubxDataStruct.totalDistance; // Print the total distance
|
||||
unsigned long totalDistance = ubxDataStruct->totalDistance; // Print the total distance
|
||||
Serial.print(totalDistance);
|
||||
Serial.println(F(" (m)"));
|
||||
}
|
||||
@@ -76,7 +76,7 @@ void setup()
|
||||
|
||||
//myGNSS.resetOdometer(); //Uncomment this line to reset the odometer
|
||||
|
||||
myGNSS.setAutoNAVODOcallback(&printODOdata); // Enable automatic NAV ODO messages with callback to printODOdata
|
||||
myGNSS.setAutoNAVODOcallbackPtr(&printODOdata); // Enable automatic NAV ODO messages with callback to printODOdata
|
||||
}
|
||||
|
||||
void loop()
|
||||
|
||||
@@ -48,30 +48,30 @@ int dotsPrinted = 0; // Print dots in rows of 50 while waiting for a TIM TM2 mes
|
||||
// | / _____ You can use any name you like for the struct
|
||||
// | | /
|
||||
// | | |
|
||||
void printTIMTM2data(UBX_TIM_TM2_data_t ubxDataStruct)
|
||||
void printTIMTM2data(UBX_TIM_TM2_data_t *ubxDataStruct)
|
||||
{
|
||||
Serial.println();
|
||||
|
||||
Serial.print(F("newFallingEdge: ")); // 1 if a new falling edge was detected
|
||||
Serial.print(ubxDataStruct.flags.bits.newFallingEdge);
|
||||
Serial.print(ubxDataStruct->flags.bits.newFallingEdge);
|
||||
|
||||
Serial.print(F(" newRisingEdge: ")); // 1 if a new rising edge was detected
|
||||
Serial.print(ubxDataStruct.flags.bits.newRisingEdge);
|
||||
Serial.print(ubxDataStruct->flags.bits.newRisingEdge);
|
||||
|
||||
Serial.print(F(" Rising Edge Counter: ")); // Rising edge counter
|
||||
Serial.print(ubxDataStruct.count);
|
||||
Serial.print(ubxDataStruct->count);
|
||||
|
||||
Serial.print(F(" towMsR: ")); // Time Of Week of rising edge (ms)
|
||||
Serial.print(ubxDataStruct.towMsR);
|
||||
Serial.print(ubxDataStruct->towMsR);
|
||||
|
||||
Serial.print(F(" towSubMsR: ")); // Millisecond fraction of Time Of Week of rising edge in nanoseconds
|
||||
Serial.print(ubxDataStruct.towSubMsR);
|
||||
Serial.print(ubxDataStruct->towSubMsR);
|
||||
|
||||
Serial.print(F(" towMsF: ")); // Time Of Week of falling edge (ms)
|
||||
Serial.print(ubxDataStruct.towMsF);
|
||||
Serial.print(ubxDataStruct->towMsF);
|
||||
|
||||
Serial.print(F(" towSubMsF: ")); // Millisecond fraction of Time Of Week of falling edge in nanoseconds
|
||||
Serial.println(ubxDataStruct.towSubMsF);
|
||||
Serial.println(ubxDataStruct->towSubMsF);
|
||||
|
||||
dotsPrinted = 0; // Reset dotsPrinted
|
||||
}
|
||||
@@ -97,7 +97,7 @@ void setup()
|
||||
|
||||
myGNSS.setNavigationFrequency(1); //Produce one solution per second
|
||||
|
||||
myGNSS.setAutoTIMTM2callback(&printTIMTM2data); // Enable automatic TIM TM2 messages with callback to printTIMTM2data
|
||||
myGNSS.setAutoTIMTM2callbackPtr(&printTIMTM2data); // Enable automatic TIM TM2 messages with callback to printTIMTM2data
|
||||
}
|
||||
|
||||
void loop()
|
||||
|
||||
@@ -38,39 +38,39 @@ SFE_UBLOX_GNSS myGNSS;
|
||||
// | / _____ You can use any name you like for the struct
|
||||
// | | /
|
||||
// | | |
|
||||
void printHNRATTdata(UBX_HNR_ATT_data_t ubxDataStruct)
|
||||
void printHNRATTdata(UBX_HNR_ATT_data_t *ubxDataStruct)
|
||||
{
|
||||
Serial.println();
|
||||
Serial.print(F("Roll: ")); // Print selected data
|
||||
Serial.print((float)ubxDataStruct.roll / 100000.0, 2); // Convert roll to degrees
|
||||
Serial.print((float)ubxDataStruct->roll / 100000.0, 2); // Convert roll to degrees
|
||||
Serial.print(F(" Pitch: "));
|
||||
Serial.print((float)ubxDataStruct.pitch / 100000.0, 2); // Convert pitch to degrees
|
||||
Serial.print((float)ubxDataStruct->pitch / 100000.0, 2); // Convert pitch to degrees
|
||||
Serial.print(F(" Heading: "));
|
||||
Serial.println((float)ubxDataStruct.heading / 100000.0, 2); // Convert heading to degrees
|
||||
Serial.println((float)ubxDataStruct->heading / 100000.0, 2); // Convert heading to degrees
|
||||
}
|
||||
|
||||
// Callback: printHNRINSdata will be called when new HNR INS data arrives
|
||||
// See u-blox_structs.h for the full definition of UBX_HNR_INS_data_t
|
||||
void printHNRINSdata(UBX_HNR_INS_data_t ubxDataStruct)
|
||||
void printHNRINSdata(UBX_HNR_INS_data_t *ubxDataStruct)
|
||||
{
|
||||
Serial.print(F("xAccel: ")); // Print selected data
|
||||
Serial.print(ubxDataStruct.xAccel);
|
||||
Serial.print(ubxDataStruct->xAccel);
|
||||
Serial.print(F(" yAccel: "));
|
||||
Serial.print(ubxDataStruct.yAccel);
|
||||
Serial.print(ubxDataStruct->yAccel);
|
||||
Serial.print(F(" zAccel: "));
|
||||
Serial.println(ubxDataStruct.zAccel);
|
||||
Serial.println(ubxDataStruct->zAccel);
|
||||
}
|
||||
|
||||
// Callback: printHNRPVTdata will be called when new HNR PVT data arrives
|
||||
// See u-blox_structs.h for the full definition of UBX_HNR_PVT_data_t
|
||||
void printHNRPVTdata(UBX_HNR_PVT_data_t ubxDataStruct)
|
||||
void printHNRPVTdata(UBX_HNR_PVT_data_t *ubxDataStruct)
|
||||
{
|
||||
Serial.print(F("ns: ")); // Print selected data
|
||||
Serial.print(ubxDataStruct.nano);
|
||||
Serial.print(ubxDataStruct->nano);
|
||||
Serial.print(F(" Lat: "));
|
||||
Serial.print(ubxDataStruct.lat);
|
||||
Serial.print(ubxDataStruct->lat);
|
||||
Serial.print(F(" Lon: "));
|
||||
Serial.println(ubxDataStruct.lon);
|
||||
Serial.println(ubxDataStruct->lon);
|
||||
}
|
||||
|
||||
void setup()
|
||||
@@ -97,13 +97,13 @@ void setup()
|
||||
else
|
||||
Serial.println(F("setHNRNavigationRate was NOT successful"));
|
||||
|
||||
if (myGNSS.setAutoHNRATTcallback(&printHNRATTdata) == true) // Enable automatic HNR ATT messages with callback to printHNRATTdata
|
||||
if (myGNSS.setAutoHNRATTcallbackPtr(&printHNRATTdata) == true) // Enable automatic HNR ATT messages with callback to printHNRATTdata
|
||||
Serial.println(F("setAutoHNRATTcallback successful"));
|
||||
|
||||
if (myGNSS.setAutoHNRINScallback(&printHNRINSdata) == true) // Enable automatic HNR INS messages with callback to printHNRINSdata
|
||||
if (myGNSS.setAutoHNRINScallbackPtr(&printHNRINSdata) == true) // Enable automatic HNR INS messages with callback to printHNRINSdata
|
||||
Serial.println(F("setAutoHNRINScallback successful"));
|
||||
|
||||
if (myGNSS.setAutoHNRPVTcallback(&printHNRPVTdata) == true) // Enable automatic HNR PVT messages with callback to printHNRPVTdata
|
||||
if (myGNSS.setAutoHNRPVTcallbackPtr(&printHNRPVTdata) == true) // Enable automatic HNR PVT messages with callback to printHNRPVTdata
|
||||
Serial.println(F("setAutoHNRPVTcallback successful"));
|
||||
}
|
||||
|
||||
|
||||
@@ -35,39 +35,39 @@ SFE_UBLOX_GNSS myGNSS;
|
||||
// | / _____ You can use any name you like for the struct
|
||||
// | | /
|
||||
// | | |
|
||||
void printESFALGdata(UBX_ESF_ALG_data_t ubxDataStruct)
|
||||
void printESFALGdata(UBX_ESF_ALG_data_t *ubxDataStruct)
|
||||
{
|
||||
Serial.println();
|
||||
|
||||
Serial.print(F("TOW: ")); // Print the Time Of Week
|
||||
unsigned long iTOW = ubxDataStruct.iTOW; // iTOW is in milliseconds
|
||||
unsigned long iTOW = ubxDataStruct->iTOW; // iTOW is in milliseconds
|
||||
Serial.print(iTOW);
|
||||
Serial.print(F(" (ms)"));
|
||||
|
||||
Serial.print(F(" Roll: ")); // Print selected data
|
||||
Serial.print((float)ubxDataStruct.roll / 100.0, 2); // Convert roll to degrees
|
||||
Serial.print((float)ubxDataStruct->roll / 100.0, 2); // Convert roll to degrees
|
||||
|
||||
Serial.print(F(" Pitch: "));
|
||||
Serial.print((float)ubxDataStruct.pitch / 100.0, 2); // Convert pitch to degrees
|
||||
Serial.print((float)ubxDataStruct->pitch / 100.0, 2); // Convert pitch to degrees
|
||||
|
||||
Serial.print(F(" Yaw: "));
|
||||
Serial.print((float)ubxDataStruct.yaw / 100.0, 2); // Convert yaw to degrees
|
||||
Serial.print((float)ubxDataStruct->yaw / 100.0, 2); // Convert yaw to degrees
|
||||
|
||||
Serial.println(F(" (Degrees)"));
|
||||
}
|
||||
|
||||
// Callback: printESFINSdata will be called when new ESF INS data arrives
|
||||
// See u-blox_structs.h for the full definition of UBX_ESF_INS_data_t
|
||||
void printESFINSdata(UBX_ESF_INS_data_t ubxDataStruct)
|
||||
void printESFINSdata(UBX_ESF_INS_data_t *ubxDataStruct)
|
||||
{
|
||||
Serial.print(F("xAccel: ")); // Print selected data
|
||||
Serial.print(ubxDataStruct.xAccel);
|
||||
Serial.print(ubxDataStruct->xAccel);
|
||||
|
||||
Serial.print(F(" yAccel: "));
|
||||
Serial.print(ubxDataStruct.yAccel);
|
||||
Serial.print(ubxDataStruct->yAccel);
|
||||
|
||||
Serial.print(F(" zAccel: "));
|
||||
Serial.print(ubxDataStruct.zAccel);
|
||||
Serial.print(ubxDataStruct->zAccel);
|
||||
|
||||
Serial.println(F(" (m/s^2)"));
|
||||
}
|
||||
@@ -75,23 +75,23 @@ void printESFINSdata(UBX_ESF_INS_data_t ubxDataStruct)
|
||||
// Callback: printESFMEASdata will be called when new ESF MEAS data arrives
|
||||
// See u-blox_structs.h for the full definition of UBX_ESF_MEAS_data_t
|
||||
// and UBX_ESF_MEAS_sensorData_t
|
||||
void printESFMEASdata(UBX_ESF_MEAS_data_t ubxDataStruct)
|
||||
void printESFMEASdata(UBX_ESF_MEAS_data_t *ubxDataStruct)
|
||||
{
|
||||
Serial.println();
|
||||
|
||||
Serial.print(F("id: ")); // Print selected data
|
||||
Serial.print(ubxDataStruct.id);
|
||||
Serial.print(ubxDataStruct->id);
|
||||
|
||||
Serial.print(F(" numMeas: "));
|
||||
Serial.println(ubxDataStruct.flags.bits.numMeas);
|
||||
Serial.println(ubxDataStruct->flags.bits.numMeas);
|
||||
|
||||
for (uint8_t num = 0; num < ubxDataStruct.flags.bits.numMeas; num++) // For each sensor
|
||||
for (uint8_t num = 0; num < ubxDataStruct->flags.bits.numMeas; num++) // For each sensor
|
||||
{
|
||||
Serial.print(F("Sensor "));
|
||||
Serial.print(num);
|
||||
|
||||
UBX_ESF_MEAS_sensorData_t sensorData;
|
||||
myGNSS.getSensorFusionMeasurement(&sensorData, ubxDataStruct, num); // Extract the data for one sensor
|
||||
myGNSS.getSensorFusionMeasurement(&sensorData, *ubxDataStruct, num); // Extract the data for one sensor
|
||||
|
||||
Serial.print(F(": Type: "));
|
||||
Serial.print(sensorData.data.bits.dataType);
|
||||
@@ -103,21 +103,21 @@ void printESFMEASdata(UBX_ESF_MEAS_data_t ubxDataStruct)
|
||||
// Callback: printESFSTATUSdata will be called when new ESF STATUS data arrives
|
||||
// See u-blox_structs.h for the full definition of UBX_ESF_STATUS_data_t
|
||||
// and UBX_ESF_STATUS_sensorStatus_t
|
||||
void printESFSTATUSdata(UBX_ESF_STATUS_data_t ubxDataStruct)
|
||||
void printESFSTATUSdata(UBX_ESF_STATUS_data_t *ubxDataStruct)
|
||||
{
|
||||
Serial.print(F("fusionMode: ")); // Print selected data
|
||||
Serial.print(ubxDataStruct.fusionMode);
|
||||
Serial.print(ubxDataStruct->fusionMode);
|
||||
|
||||
Serial.print(F(" numSens: "));
|
||||
Serial.println(ubxDataStruct.numSens);
|
||||
Serial.println(ubxDataStruct->numSens);
|
||||
|
||||
for (uint8_t num = 0; num < ubxDataStruct.numSens; num++) // For each sensor
|
||||
for (uint8_t num = 0; num < ubxDataStruct->numSens; num++) // For each sensor
|
||||
{
|
||||
Serial.print(F("Sensor "));
|
||||
Serial.print(num);
|
||||
|
||||
UBX_ESF_STATUS_sensorStatus_t sensorStatus;
|
||||
myGNSS.getSensorFusionStatus(&sensorStatus, ubxDataStruct, num); // Extract the data for one sensor
|
||||
myGNSS.getSensorFusionStatus(&sensorStatus, *ubxDataStruct, num); // Extract the data for one sensor
|
||||
|
||||
Serial.print(F(": Type: "));
|
||||
Serial.print(sensorStatus.sensStatus1.bits.type);
|
||||
@@ -156,16 +156,16 @@ void setup()
|
||||
|
||||
myGNSS.setI2CpollingWait(50); //Allow checkUblox to poll I2C data every 50ms to keep up with the ESF MEAS messages
|
||||
|
||||
if (myGNSS.setAutoESFALGcallback(&printESFALGdata) == true) // Enable automatic ESF ALG messages with callback to printESFALGdata
|
||||
if (myGNSS.setAutoESFALGcallbackPtr(&printESFALGdata) == true) // Enable automatic ESF ALG messages with callback to printESFALGdata
|
||||
Serial.println(F("setAutoESFALGcallback successful"));
|
||||
|
||||
if (myGNSS.setAutoESFINScallback(&printESFINSdata) == true) // Enable automatic ESF INS messages with callback to printESFINSdata
|
||||
if (myGNSS.setAutoESFINScallbackPtr(&printESFINSdata) == true) // Enable automatic ESF INS messages with callback to printESFINSdata
|
||||
Serial.println(F("setAutoESFINScallback successful"));
|
||||
|
||||
if (myGNSS.setAutoESFMEAScallback(&printESFMEASdata) == true) // Enable automatic ESF MEAS messages with callback to printESFMEASdata
|
||||
if (myGNSS.setAutoESFMEAScallbackPtr(&printESFMEASdata) == true) // Enable automatic ESF MEAS messages with callback to printESFMEASdata
|
||||
Serial.println(F("setAutoESFMEAScallback successful"));
|
||||
|
||||
if (myGNSS.setAutoESFSTATUScallback(&printESFSTATUSdata) == true) // Enable automatic ESF STATUS messages with callback to printESFSTATUSdata
|
||||
if (myGNSS.setAutoESFSTATUScallbackPtr(&printESFSTATUSdata) == true) // Enable automatic ESF STATUS messages with callback to printESFSTATUSdata
|
||||
Serial.println(F("setAutoESFSTATUScallback successful"));
|
||||
}
|
||||
|
||||
|
||||
@@ -31,38 +31,38 @@ SFE_UBLOX_GNSS myGNSS;
|
||||
// | / _____ You can use any name you like for the struct
|
||||
// | | /
|
||||
// | | |
|
||||
void newRAWX(UBX_RXM_RAWX_data_t ubxDataStruct)
|
||||
void newRAWX(UBX_RXM_RAWX_data_t *ubxDataStruct)
|
||||
{
|
||||
Serial.println();
|
||||
|
||||
Serial.print(F("New RAWX data received. It contains "));
|
||||
Serial.print(ubxDataStruct.header.numMeas); // Print numMeas (Number of measurements / blocks)
|
||||
Serial.print(ubxDataStruct->header.numMeas); // Print numMeas (Number of measurements / blocks)
|
||||
Serial.println(F(" data blocks:"));
|
||||
|
||||
for (uint8_t block = 0; block < ubxDataStruct.header.numMeas; block++) // For each block
|
||||
for (uint8_t block = 0; block < ubxDataStruct->header.numMeas; block++) // For each block
|
||||
{
|
||||
Serial.print(F("GNSS ID: "));
|
||||
if (ubxDataStruct.blocks[block].gnssId < 100) Serial.print(F(" ")); // Align the gnssId
|
||||
if (ubxDataStruct.blocks[block].gnssId < 10) Serial.print(F(" ")); // Align the gnssId
|
||||
Serial.print(ubxDataStruct.blocks[block].gnssId);
|
||||
if (ubxDataStruct->blocks[block].gnssId < 100) Serial.print(F(" ")); // Align the gnssId
|
||||
if (ubxDataStruct->blocks[block].gnssId < 10) Serial.print(F(" ")); // Align the gnssId
|
||||
Serial.print(ubxDataStruct->blocks[block].gnssId);
|
||||
Serial.print(F(" SV ID: "));
|
||||
if (ubxDataStruct.blocks[block].svId < 100) Serial.print(F(" ")); // Align the svId
|
||||
if (ubxDataStruct.blocks[block].svId < 10) Serial.print(F(" ")); // Align the svId
|
||||
Serial.print(ubxDataStruct.blocks[block].svId);
|
||||
if (ubxDataStruct->blocks[block].svId < 100) Serial.print(F(" ")); // Align the svId
|
||||
if (ubxDataStruct->blocks[block].svId < 10) Serial.print(F(" ")); // Align the svId
|
||||
Serial.print(ubxDataStruct->blocks[block].svId);
|
||||
|
||||
if (sizeof(double) == 8) // Check if our processor supports 64-bit double
|
||||
{
|
||||
// Convert prMes from uint8_t[8] to 64-bit double
|
||||
// prMes is little-endian
|
||||
double pseudorange;
|
||||
memcpy(&pseudorange, &ubxDataStruct.blocks[block].prMes, 8);
|
||||
memcpy(&pseudorange, &ubxDataStruct->blocks[block].prMes, 8);
|
||||
Serial.print(F(" PR: "));
|
||||
Serial.print(pseudorange, 3);
|
||||
|
||||
// Convert cpMes from uint8_t[8] to 64-bit double
|
||||
// cpMes is little-endian
|
||||
double carrierPhase;
|
||||
memcpy(&carrierPhase, &ubxDataStruct.blocks[block].cpMes, 8);
|
||||
memcpy(&carrierPhase, &ubxDataStruct->blocks[block].cpMes, 8);
|
||||
Serial.print(F(" m CP: "));
|
||||
Serial.print(carrierPhase, 3);
|
||||
Serial.print(F(" cycles"));
|
||||
@@ -94,7 +94,7 @@ void setup()
|
||||
|
||||
myGNSS.setNavigationFrequency(1); //Produce one solution per second (RAWX produces a _lot_ of data!)
|
||||
|
||||
myGNSS.setAutoRXMRAWXcallback(&newRAWX); // Enable automatic RXM RAWX messages with callback to newRAWX
|
||||
myGNSS.setAutoRXMRAWXcallbackPtr(&newRAWX); // Enable automatic RXM RAWX messages with callback to newRAWX
|
||||
}
|
||||
|
||||
void loop()
|
||||
|
||||
@@ -31,21 +31,21 @@ SFE_UBLOX_GNSS myGNSS;
|
||||
// | / _____ You can use any name you like for the struct
|
||||
// | | /
|
||||
// | | |
|
||||
void newNAVSAT(UBX_NAV_SAT_data_t ubxDataStruct)
|
||||
void newNAVSAT(UBX_NAV_SAT_data_t *ubxDataStruct)
|
||||
{
|
||||
Serial.println();
|
||||
|
||||
Serial.print(F("New NAV SAT data received. It contains data for "));
|
||||
Serial.print(ubxDataStruct.header.numSvs);
|
||||
if (ubxDataStruct.header.numSvs == 1)
|
||||
Serial.print(ubxDataStruct->header.numSvs);
|
||||
if (ubxDataStruct->header.numSvs == 1)
|
||||
Serial.println(F(" SV."));
|
||||
else
|
||||
Serial.println(F(" SVs."));
|
||||
|
||||
// Just for giggles, print the signal strength for each SV as a barchart
|
||||
for (uint16_t block = 0; block < ubxDataStruct.header.numSvs; block++) // For each SV
|
||||
for (uint16_t block = 0; block < ubxDataStruct->header.numSvs; block++) // For each SV
|
||||
{
|
||||
switch (ubxDataStruct.blocks[block].gnssId) // Print the GNSS ID
|
||||
switch (ubxDataStruct->blocks[block].gnssId) // Print the GNSS ID
|
||||
{
|
||||
case 0:
|
||||
Serial.print(F("GPS "));
|
||||
@@ -73,14 +73,14 @@ void newNAVSAT(UBX_NAV_SAT_data_t ubxDataStruct)
|
||||
break;
|
||||
}
|
||||
|
||||
Serial.print(ubxDataStruct.blocks[block].svId); // Print the SV ID
|
||||
Serial.print(ubxDataStruct->blocks[block].svId); // Print the SV ID
|
||||
|
||||
if (ubxDataStruct.blocks[block].svId < 10) Serial.print(F(" "));
|
||||
else if (ubxDataStruct.blocks[block].svId < 100) Serial.print(F(" "));
|
||||
if (ubxDataStruct->blocks[block].svId < 10) Serial.print(F(" "));
|
||||
else if (ubxDataStruct->blocks[block].svId < 100) Serial.print(F(" "));
|
||||
else Serial.print(F(" "));
|
||||
|
||||
// Print the signal strength as a bar chart
|
||||
for (uint8_t cno = 0; cno < ubxDataStruct.blocks[block].cno; cno++)
|
||||
for (uint8_t cno = 0; cno < ubxDataStruct->blocks[block].cno; cno++)
|
||||
Serial.print(F("="));
|
||||
|
||||
Serial.println();
|
||||
@@ -108,7 +108,7 @@ void setup()
|
||||
|
||||
myGNSS.setNavigationFrequency(1); //Produce one solution per second
|
||||
|
||||
myGNSS.setAutoNAVSATcallback(&newNAVSAT); // Enable automatic NAV SAT messages with callback to newNAVSAT
|
||||
myGNSS.setAutoNAVSATcallbackPtr(&newNAVSAT); // Enable automatic NAV SAT messages with callback to newNAVSAT
|
||||
}
|
||||
|
||||
void loop()
|
||||
|
||||
Reference in New Issue
Block a user