Remove setAutoRXMPMPcallback. setAutoRXMPMPcallbackPtr is the way to go...
This commit is contained in:
+5
-1
@@ -183,19 +183,24 @@ getVal KEYWORD2
|
|||||||
getVal8 KEYWORD2
|
getVal8 KEYWORD2
|
||||||
getVal16 KEYWORD2
|
getVal16 KEYWORD2
|
||||||
getVal32 KEYWORD2
|
getVal32 KEYWORD2
|
||||||
|
getVal64 KEYWORD2
|
||||||
setVal KEYWORD2
|
setVal KEYWORD2
|
||||||
setVal8 KEYWORD2
|
setVal8 KEYWORD2
|
||||||
setVal16 KEYWORD2
|
setVal16 KEYWORD2
|
||||||
setVal32 KEYWORD2
|
setVal32 KEYWORD2
|
||||||
|
setVal64 KEYWORD2
|
||||||
newCfgValset8 KEYWORD2
|
newCfgValset8 KEYWORD2
|
||||||
newCfgValset16 KEYWORD2
|
newCfgValset16 KEYWORD2
|
||||||
newCfgValset32 KEYWORD2
|
newCfgValset32 KEYWORD2
|
||||||
|
newCfgValset64 KEYWORD2
|
||||||
addCfgValset8 KEYWORD2
|
addCfgValset8 KEYWORD2
|
||||||
addCfgValset16 KEYWORD2
|
addCfgValset16 KEYWORD2
|
||||||
addCfgValset32 KEYWORD2
|
addCfgValset32 KEYWORD2
|
||||||
|
addCfgValset64 KEYWORD2
|
||||||
sendCfgValset8 KEYWORD2
|
sendCfgValset8 KEYWORD2
|
||||||
sendCfgValset16 KEYWORD2
|
sendCfgValset16 KEYWORD2
|
||||||
sendCfgValset32 KEYWORD2
|
sendCfgValset32 KEYWORD2
|
||||||
|
sendCfgValset64 KEYWORD2
|
||||||
|
|
||||||
getNAVPOSECEF KEYWORD2
|
getNAVPOSECEF KEYWORD2
|
||||||
setAutoNAVPOSECEF KEYWORD2
|
setAutoNAVPOSECEF KEYWORD2
|
||||||
@@ -356,7 +361,6 @@ initPacketUBXAOPSTATUS KEYWORD2
|
|||||||
flushAOPSTATUS KEYWORD2
|
flushAOPSTATUS KEYWORD2
|
||||||
logAOPSTATUS KEYWORD2
|
logAOPSTATUS KEYWORD2
|
||||||
|
|
||||||
setAutoRXMPMPcallback KEYWORD2
|
|
||||||
setAutoRXMPMPcallbackPtr KEYWORD2
|
setAutoRXMPMPcallbackPtr KEYWORD2
|
||||||
|
|
||||||
getRXMSFRBX KEYWORD2
|
getRXMSFRBX KEYWORD2
|
||||||
|
|||||||
@@ -3183,12 +3183,6 @@ void SFE_UBLOX_GNSS::processUBXpacket(ubxPacket *msg)
|
|||||||
memcpy(&packetUBXRXMPMP->callbackData->version, &packetUBXRXMPMP->data.version, sizeof(UBX_RXM_PMP_data_t));
|
memcpy(&packetUBXRXMPMP->callbackData->version, &packetUBXRXMPMP->data.version, sizeof(UBX_RXM_PMP_data_t));
|
||||||
packetUBXRXMPMP->automaticFlags.flags.bits.callbackCopyValid = true;
|
packetUBXRXMPMP->automaticFlags.flags.bits.callbackCopyValid = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//Check if we need to copy the data into the file buffer
|
|
||||||
if (packetUBXRXMPMP->automaticFlags.flags.bits.addToFileBuffer)
|
|
||||||
{
|
|
||||||
storePacket(msg);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (msg->id == UBX_RXM_SFRBX)
|
else if (msg->id == UBX_RXM_SFRBX)
|
||||||
@@ -4485,7 +4479,7 @@ void SFE_UBLOX_GNSS::checkCallbacks(void)
|
|||||||
// _debugSerial->println(F("checkCallbacks: calling callback for NAV POSECEF"));
|
// _debugSerial->println(F("checkCallbacks: calling callback for NAV POSECEF"));
|
||||||
packetUBXNAVPOSECEF->callbackPointer(*packetUBXNAVPOSECEF->callbackData); // Call the callback
|
packetUBXNAVPOSECEF->callbackPointer(*packetUBXNAVPOSECEF->callbackData); // Call the callback
|
||||||
}
|
}
|
||||||
else if (packetUBXNAVPOSECEF->callbackPointerPtr != NULL) // If the pointer to the callback has been defined
|
if (packetUBXNAVPOSECEF->callbackPointerPtr != NULL) // If the pointer to the callback has been defined
|
||||||
{
|
{
|
||||||
// if (_printDebug == true)
|
// if (_printDebug == true)
|
||||||
// _debugSerial->println(F("checkCallbacks: calling callbackPtr for NAV POSECEF"));
|
// _debugSerial->println(F("checkCallbacks: calling callbackPtr for NAV POSECEF"));
|
||||||
@@ -4764,12 +4758,6 @@ void SFE_UBLOX_GNSS::checkCallbacks(void)
|
|||||||
&& (packetUBXRXMPMP->callbackData != NULL) // If RAM has been allocated for the copy of the data
|
&& (packetUBXRXMPMP->callbackData != NULL) // If RAM has been allocated for the copy of the data
|
||||||
&& (packetUBXRXMPMP->automaticFlags.flags.bits.callbackCopyValid == true)) // If the copy of the data is valid
|
&& (packetUBXRXMPMP->automaticFlags.flags.bits.callbackCopyValid == true)) // If the copy of the data is valid
|
||||||
{
|
{
|
||||||
if (packetUBXRXMPMP->callbackPointer != NULL) // If the pointer to the callback has been defined
|
|
||||||
{
|
|
||||||
// if (_printDebug == true)
|
|
||||||
// _debugSerial->println(F("checkCallbacks: calling callback for RXM PMP"));
|
|
||||||
packetUBXRXMPMP->callbackPointer(*packetUBXRXMPMP->callbackData); // Call the callback
|
|
||||||
}
|
|
||||||
if (packetUBXRXMPMP->callbackPointerPtr != NULL) // If the pointer to the callback has been defined
|
if (packetUBXRXMPMP->callbackPointerPtr != NULL) // If the pointer to the callback has been defined
|
||||||
{
|
{
|
||||||
// if (_printDebug == true)
|
// if (_printDebug == true)
|
||||||
@@ -11021,31 +11009,6 @@ void SFE_UBLOX_GNSS::logAOPSTATUS(bool enabled)
|
|||||||
|
|
||||||
// ***** RXM PMP automatic support
|
// ***** RXM PMP automatic support
|
||||||
|
|
||||||
// Callback is passed all of the data. Heavy on the stack. May cause problems on some platforms.
|
|
||||||
bool SFE_UBLOX_GNSS::setAutoRXMPMPcallback(void (*callbackPointer)(UBX_RXM_PMP_data_t))
|
|
||||||
{
|
|
||||||
if (packetUBXRXMPMP == NULL) initPacketUBXRXMPMP(); //Check that RAM has been allocated for the data
|
|
||||||
if (packetUBXRXMPMP == NULL) //Only attempt this if RAM allocation was successful
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (packetUBXRXMPMP->callbackData == NULL) //Check if RAM has been allocated for the callback copy
|
|
||||||
{
|
|
||||||
packetUBXRXMPMP->callbackData = new UBX_RXM_PMP_data_t; //Allocate RAM for the main struct
|
|
||||||
}
|
|
||||||
|
|
||||||
if (packetUBXRXMPMP->callbackData == NULL)
|
|
||||||
{
|
|
||||||
#ifndef SFE_UBLOX_REDUCED_PROG_MEM
|
|
||||||
if ((_printDebug == true) || (_printLimitedDebug == true)) // This is important. Print this if doing limited debugging
|
|
||||||
_debugSerial->println(F("setAutoRXMPMPcallback: RAM alloc failed!"));
|
|
||||||
#endif
|
|
||||||
return (false);
|
|
||||||
}
|
|
||||||
|
|
||||||
packetUBXRXMPMP->callbackPointer = callbackPointer;
|
|
||||||
return (true);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Callback receives a pointer to the data, instead of _all_ the data. Much kinder on the stack!
|
// Callback receives a pointer to the data, instead of _all_ the data. Much kinder on the stack!
|
||||||
bool SFE_UBLOX_GNSS::setAutoRXMPMPcallbackPtr(void (*callbackPointer)(UBX_RXM_PMP_data_t *))
|
bool SFE_UBLOX_GNSS::setAutoRXMPMPcallbackPtr(void (*callbackPointer)(UBX_RXM_PMP_data_t *))
|
||||||
{
|
{
|
||||||
@@ -11084,7 +11047,6 @@ bool SFE_UBLOX_GNSS::initPacketUBXRXMPMP()
|
|||||||
return (false);
|
return (false);
|
||||||
}
|
}
|
||||||
packetUBXRXMPMP->automaticFlags.flags.all = 0;
|
packetUBXRXMPMP->automaticFlags.flags.all = 0;
|
||||||
packetUBXRXMPMP->callbackPointer = NULL;
|
|
||||||
packetUBXRXMPMP->callbackPointerPtr = NULL;
|
packetUBXRXMPMP->callbackPointerPtr = NULL;
|
||||||
packetUBXRXMPMP->callbackData = NULL;
|
packetUBXRXMPMP->callbackData = NULL;
|
||||||
packetUBXRXMPMP->moduleQueried = false;
|
packetUBXRXMPMP->moduleQueried = false;
|
||||||
@@ -13069,7 +13031,7 @@ bool SFE_UBLOX_GNSS::getHNRINS(uint16_t maxWait)
|
|||||||
//The GPS is automatically reporting, we just check whether we got unread data
|
//The GPS is automatically reporting, we just check whether we got unread data
|
||||||
// if (_printDebug == true)
|
// if (_printDebug == true)
|
||||||
// {
|
// {
|
||||||
// _debugSerial->println(F("getHNRDyn: Autoreporting"));
|
// _debugSerial->println(F("getHNRINS: Autoreporting"));
|
||||||
// }
|
// }
|
||||||
checkUbloxInternal(&packetCfg, UBX_CLASS_HNR, UBX_HNR_INS);
|
checkUbloxInternal(&packetCfg, UBX_CLASS_HNR, UBX_HNR_INS);
|
||||||
return packetUBXHNRINS->moduleQueried.moduleQueried.bits.all;
|
return packetUBXHNRINS->moduleQueried.moduleQueried.bits.all;
|
||||||
@@ -13079,7 +13041,7 @@ bool SFE_UBLOX_GNSS::getHNRINS(uint16_t maxWait)
|
|||||||
//Someone else has to call checkUblox for us...
|
//Someone else has to call checkUblox for us...
|
||||||
// if (_printDebug == true)
|
// if (_printDebug == true)
|
||||||
// {
|
// {
|
||||||
// _debugSerial->println(F("getHNRDyn: Exit immediately"));
|
// _debugSerial->println(F("getHNRINS: Exit immediately"));
|
||||||
// }
|
// }
|
||||||
return (false);
|
return (false);
|
||||||
}
|
}
|
||||||
@@ -13087,7 +13049,7 @@ bool SFE_UBLOX_GNSS::getHNRINS(uint16_t maxWait)
|
|||||||
{
|
{
|
||||||
// if (_printDebug == true)
|
// if (_printDebug == true)
|
||||||
// {
|
// {
|
||||||
// _debugSerial->println(F("getHNRDyn: Polling"));
|
// _debugSerial->println(F("getHNRINS: Polling"));
|
||||||
// }
|
// }
|
||||||
|
|
||||||
//The GPS is not automatically reporting HNR vehicle dynamics so we have to poll explicitly
|
//The GPS is not automatically reporting HNR vehicle dynamics so we have to poll explicitly
|
||||||
@@ -13106,14 +13068,14 @@ bool SFE_UBLOX_GNSS::getHNRINS(uint16_t maxWait)
|
|||||||
{
|
{
|
||||||
// if (_printDebug == true)
|
// if (_printDebug == true)
|
||||||
// {
|
// {
|
||||||
// _debugSerial->println(F("getHNRDyn: data in packetCfg was OVERWRITTEN by another message (but that's OK)"));
|
// _debugSerial->println(F("getHNRINS: data in packetCfg was OVERWRITTEN by another message (but that's OK)"));
|
||||||
// }
|
// }
|
||||||
return (true);
|
return (true);
|
||||||
}
|
}
|
||||||
|
|
||||||
// if (_printDebug == true)
|
// if (_printDebug == true)
|
||||||
// {
|
// {
|
||||||
// _debugSerial->print(F("getHNRDyn retVal: "));
|
// _debugSerial->print(F("getHNRINS retVal: "));
|
||||||
// _debugSerial->println(statusString(retVal));
|
// _debugSerial->println(statusString(retVal));
|
||||||
// }
|
// }
|
||||||
return (false);
|
return (false);
|
||||||
@@ -13122,21 +13084,21 @@ bool SFE_UBLOX_GNSS::getHNRINS(uint16_t maxWait)
|
|||||||
return (false); // Trap. We should never get here...
|
return (false); // Trap. We should never get here...
|
||||||
}
|
}
|
||||||
|
|
||||||
//Enable or disable automatic HNR vehicle dynamics message generation by the GNSS. This changes the way getHNRDyn
|
//Enable or disable automatic HNR vehicle dynamics message generation by the GNSS. This changes the way getHNRINS
|
||||||
//works.
|
//works.
|
||||||
bool SFE_UBLOX_GNSS::setAutoHNRINS(bool enable, uint16_t maxWait)
|
bool SFE_UBLOX_GNSS::setAutoHNRINS(bool enable, uint16_t maxWait)
|
||||||
{
|
{
|
||||||
return setAutoHNRINSrate(enable ? 1 : 0, true, maxWait);
|
return setAutoHNRINSrate(enable ? 1 : 0, true, maxWait);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Enable or disable automatic HNR vehicle dynamics message generation by the GNSS. This changes the way getHNRDyn
|
//Enable or disable automatic HNR vehicle dynamics message generation by the GNSS. This changes the way getHNRINS
|
||||||
//works.
|
//works.
|
||||||
bool SFE_UBLOX_GNSS::setAutoHNRINS(bool enable, bool implicitUpdate, uint16_t maxWait)
|
bool SFE_UBLOX_GNSS::setAutoHNRINS(bool enable, bool implicitUpdate, uint16_t maxWait)
|
||||||
{
|
{
|
||||||
return setAutoHNRINSrate(enable ? 1 : 0, implicitUpdate, maxWait);
|
return setAutoHNRINSrate(enable ? 1 : 0, implicitUpdate, maxWait);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Enable or disable automatic HNR vehicle dynamics message generation by the GNSS. This changes the way getHNRDyn
|
//Enable or disable automatic HNR vehicle dynamics message generation by the GNSS. This changes the way getHNRINS
|
||||||
//works.
|
//works.
|
||||||
bool SFE_UBLOX_GNSS::setAutoHNRINSrate(uint8_t rate, bool implicitUpdate, uint16_t maxWait)
|
bool SFE_UBLOX_GNSS::setAutoHNRINSrate(uint8_t rate, bool implicitUpdate, uint16_t maxWait)
|
||||||
{
|
{
|
||||||
@@ -13181,7 +13143,7 @@ bool SFE_UBLOX_GNSS::setAutoHNRINScallback(void (*callbackPointer)(UBX_HNR_INS_d
|
|||||||
{
|
{
|
||||||
#ifndef SFE_UBLOX_REDUCED_PROG_MEM
|
#ifndef SFE_UBLOX_REDUCED_PROG_MEM
|
||||||
if ((_printDebug == true) || (_printLimitedDebug == true)) // This is important. Print this if doing limited debugging
|
if ((_printDebug == true) || (_printLimitedDebug == true)) // This is important. Print this if doing limited debugging
|
||||||
_debugSerial->println(F("setAutoHNRDyncallback: RAM alloc failed!"));
|
_debugSerial->println(F("setAutoHNRINScallback: RAM alloc failed!"));
|
||||||
#endif
|
#endif
|
||||||
return (false);
|
return (false);
|
||||||
}
|
}
|
||||||
@@ -13206,7 +13168,7 @@ bool SFE_UBLOX_GNSS::setAutoHNRINScallbackPtr(void (*callbackPointerPtr)(UBX_HNR
|
|||||||
{
|
{
|
||||||
#ifndef SFE_UBLOX_REDUCED_PROG_MEM
|
#ifndef SFE_UBLOX_REDUCED_PROG_MEM
|
||||||
if ((_printDebug == true) || (_printLimitedDebug == true)) // This is important. Print this if doing limited debugging
|
if ((_printDebug == true) || (_printLimitedDebug == true)) // This is important. Print this if doing limited debugging
|
||||||
_debugSerial->println(F("setAutoHNRDyncallbackPtr: RAM alloc failed!"));
|
_debugSerial->println(F("setAutoHNRINScallbackPtr: RAM alloc failed!"));
|
||||||
#endif
|
#endif
|
||||||
return (false);
|
return (false);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1096,7 +1096,6 @@ public:
|
|||||||
// Note: on the NEO-D9S, the UBX-RXM-PMP messages are enabled by default on all ports.
|
// Note: on the NEO-D9S, the UBX-RXM-PMP messages are enabled by default on all ports.
|
||||||
// You can disable them by calling (e.g.) setVal8(UBLOX_CFG_MSGOUT_UBX_RXM_PMP_I2C, 0)
|
// You can disable them by calling (e.g.) setVal8(UBLOX_CFG_MSGOUT_UBX_RXM_PMP_I2C, 0)
|
||||||
// The NEO-D9S does not support UBX-CFG-MSG
|
// The NEO-D9S does not support UBX-CFG-MSG
|
||||||
bool setAutoRXMPMPcallback(void (*callbackPointer)(UBX_RXM_PMP_data_t)); // Callback is passed all of the data. Heavy on the stack. May cause problems on some platforms.
|
|
||||||
bool setAutoRXMPMPcallbackPtr(void (*callbackPointerPtr)(UBX_RXM_PMP_data_t *)); // Callback receives a pointer to the data, instead of _all_ the data. Much kinder on the stack!
|
bool setAutoRXMPMPcallbackPtr(void (*callbackPointerPtr)(UBX_RXM_PMP_data_t *)); // Callback receives a pointer to the data, instead of _all_ the data. Much kinder on the stack!
|
||||||
|
|
||||||
bool getRXMSFRBX(uint16_t maxWait = defaultMaxWait); // RXM SFRBX
|
bool getRXMSFRBX(uint16_t maxWait = defaultMaxWait); // RXM SFRBX
|
||||||
|
|||||||
@@ -1513,7 +1513,6 @@ typedef struct
|
|||||||
ubxAutomaticFlags automaticFlags;
|
ubxAutomaticFlags automaticFlags;
|
||||||
UBX_RXM_PMP_data_t data;
|
UBX_RXM_PMP_data_t data;
|
||||||
bool moduleQueried;
|
bool moduleQueried;
|
||||||
void (*callbackPointer)(UBX_RXM_PMP_data_t);
|
|
||||||
void (*callbackPointerPtr)(UBX_RXM_PMP_data_t *);
|
void (*callbackPointerPtr)(UBX_RXM_PMP_data_t *);
|
||||||
UBX_RXM_PMP_data_t *callbackData;
|
UBX_RXM_PMP_data_t *callbackData;
|
||||||
} UBX_RXM_PMP_t;
|
} UBX_RXM_PMP_t;
|
||||||
|
|||||||
Reference in New Issue
Block a user