Adding support for multiple message rates
This commit is contained in:
@@ -5112,29 +5112,38 @@ boolean SFE_UBLOX_GNSS::getNAVPOSECEF(uint16_t maxWait)
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoNAVPOSECEF(boolean enable, uint16_t maxWait)
|
||||
{
|
||||
return setAutoNAVPOSECEF(enable, true, maxWait);
|
||||
return setAutoNAVPOSECEFrate(enable ? 1 : 0, true, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic navigation message generation by the GNSS. This changes the way getPOSECEF
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoNAVPOSECEF(boolean enable, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
return setAutoNAVPOSECEFrate(enable ? 1 : 0, implicitUpdate, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic navigation message generation by the GNSS. This changes the way getPOSECEF
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoNAVPOSECEFrate(uint8_t rate, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
if (packetUBXNAVPOSECEF == NULL) initPacketUBXNAVPOSECEF(); //Check that RAM has been allocated for the data
|
||||
if (packetUBXNAVPOSECEF == NULL) //Only attempt this if RAM allocation was successful
|
||||
return false;
|
||||
|
||||
if (rate > 127) rate = 127;
|
||||
|
||||
packetCfg.cls = UBX_CLASS_CFG;
|
||||
packetCfg.id = UBX_CFG_MSG;
|
||||
packetCfg.len = 3;
|
||||
packetCfg.startingSpot = 0;
|
||||
payloadCfg[0] = UBX_CLASS_NAV;
|
||||
payloadCfg[1] = UBX_NAV_POSECEF;
|
||||
payloadCfg[2] = enable ? 1 : 0; // rate relative to navigation freq.
|
||||
payloadCfg[2] = rate; // rate relative to navigation freq.
|
||||
|
||||
boolean ok = ((sendCommand(&packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
|
||||
if (ok)
|
||||
{
|
||||
packetUBXNAVPOSECEF->automaticFlags.flags.bits.automatic = enable;
|
||||
packetUBXNAVPOSECEF->automaticFlags.flags.bits.automatic = (rate > 0);
|
||||
packetUBXNAVPOSECEF->automaticFlags.flags.bits.implicitUpdate = implicitUpdate;
|
||||
}
|
||||
packetUBXNAVPOSECEF->moduleQueried.moduleQueried.bits.all = false;
|
||||
@@ -5256,33 +5265,42 @@ boolean SFE_UBLOX_GNSS::getNAVSTATUS(uint16_t maxWait)
|
||||
}
|
||||
}
|
||||
|
||||
//Enable or disable automatic navigation message generation by the GNSS. This changes the way getSTATUS
|
||||
//Enable or disable automatic navigation message generation by the GNSS. This changes the way getNAVSTATUS
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoNAVSTATUS(boolean enable, uint16_t maxWait)
|
||||
{
|
||||
return setAutoNAVSTATUS(enable, true, maxWait);
|
||||
return setAutoNAVSTATUSrate(enable ? 1 : 0, true, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic navigation message generation by the GNSS. This changes the way getSTATUS
|
||||
//Enable or disable automatic navigation message generation by the GNSS. This changes the way getNAVSTATUS
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoNAVSTATUS(boolean enable, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
return setAutoNAVSTATUSrate(enable ? 1 : 0, implicitUpdate, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic navigation message generation by the GNSS. This changes the way getNAVSTATUS
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoNAVSTATUSrate(uint8_t rate, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
if (packetUBXNAVSTATUS == NULL) initPacketUBXNAVSTATUS(); //Check that RAM has been allocated for the data
|
||||
if (packetUBXNAVSTATUS == NULL) //Only attempt this if RAM allocation was successful
|
||||
return false;
|
||||
|
||||
if (rate > 127) rate = 127;
|
||||
|
||||
packetCfg.cls = UBX_CLASS_CFG;
|
||||
packetCfg.id = UBX_CFG_MSG;
|
||||
packetCfg.len = 3;
|
||||
packetCfg.startingSpot = 0;
|
||||
payloadCfg[0] = UBX_CLASS_NAV;
|
||||
payloadCfg[1] = UBX_NAV_STATUS;
|
||||
payloadCfg[2] = enable ? 1 : 0; // rate relative to navigation freq.
|
||||
payloadCfg[2] = rate; // rate relative to navigation freq.
|
||||
|
||||
boolean ok = ((sendCommand(&packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
|
||||
if (ok)
|
||||
{
|
||||
packetUBXNAVSTATUS->automaticFlags.flags.bits.automatic = enable;
|
||||
packetUBXNAVSTATUS->automaticFlags.flags.bits.automatic = (rate > 0);
|
||||
packetUBXNAVSTATUS->automaticFlags.flags.bits.implicitUpdate = implicitUpdate;
|
||||
}
|
||||
packetUBXNAVSTATUS->moduleQueried.moduleQueried.bits.all = false;
|
||||
@@ -5430,12 +5448,19 @@ boolean SFE_UBLOX_GNSS::getDOP(uint16_t maxWait)
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoDOP(boolean enable, uint16_t maxWait)
|
||||
{
|
||||
return setAutoDOP(enable, true, maxWait);
|
||||
return setAutoDOPrate(enable ? 1 : 0, true, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic navigation message generation by the GNSS. This changes the way getDOP
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoDOP(boolean enable, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
return setAutoDOPrate(enable ? 1 : 0, implicitUpdate, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic navigation message generation by the GNSS. This changes the way getDOP
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoDOPrate(uint8_t rate, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
if (packetUBXNAVDOP == NULL) initPacketUBXNAVDOP(); //Check that RAM has been allocated for the data
|
||||
if (packetUBXNAVDOP == NULL) //Only attempt this if RAM allocation was successful
|
||||
@@ -5447,12 +5472,12 @@ boolean SFE_UBLOX_GNSS::setAutoDOP(boolean enable, boolean implicitUpdate, uint1
|
||||
packetCfg.startingSpot = 0;
|
||||
payloadCfg[0] = UBX_CLASS_NAV;
|
||||
payloadCfg[1] = UBX_NAV_DOP;
|
||||
payloadCfg[2] = enable ? 1 : 0; // rate relative to navigation freq.
|
||||
payloadCfg[2] = rate; // rate relative to navigation freq.
|
||||
|
||||
boolean ok = ((sendCommand(&packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
|
||||
if (ok)
|
||||
{
|
||||
packetUBXNAVDOP->automaticFlags.flags.bits.automatic = enable;
|
||||
packetUBXNAVDOP->automaticFlags.flags.bits.automatic = (rate > 0);
|
||||
packetUBXNAVDOP->automaticFlags.flags.bits.implicitUpdate = implicitUpdate;
|
||||
}
|
||||
packetUBXNAVDOP->moduleQueried.moduleQueried.bits.all = false;
|
||||
@@ -5584,29 +5609,38 @@ boolean SFE_UBLOX_GNSS::getNAVATT(uint16_t maxWait)
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoNAVATT(boolean enable, uint16_t maxWait)
|
||||
{
|
||||
return setAutoNAVATT(enable, true, maxWait);
|
||||
return setAutoNAVATTrate(enable ? 1 : 0, true, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic NAV ATT message generation by the GNSS. This changes the way getVehAtt
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoNAVATT(boolean enable, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
return setAutoNAVATTrate(enable ? 1 : 0, implicitUpdate, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic NAV ATT attitude message generation by the GNSS. This changes the way getVehAtt
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoNAVATT(boolean enable, boolean implicitUpdate, uint16_t maxWait)
|
||||
boolean SFE_UBLOX_GNSS::setAutoNAVATTrate(uint8_t rate, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
if (packetUBXNAVATT == NULL) initPacketUBXNAVATT(); //Check that RAM has been allocated for the data
|
||||
if (packetUBXNAVATT == NULL) //Only attempt this if RAM allocation was successful
|
||||
return false;
|
||||
|
||||
if (rate > 127) rate = 127;
|
||||
|
||||
packetCfg.cls = UBX_CLASS_CFG;
|
||||
packetCfg.id = UBX_CFG_MSG;
|
||||
packetCfg.len = 3;
|
||||
packetCfg.startingSpot = 0;
|
||||
payloadCfg[0] = UBX_CLASS_NAV;
|
||||
payloadCfg[1] = UBX_NAV_ATT;
|
||||
payloadCfg[2] = enable ? 1 : 0; // rate relative to navigation freq.
|
||||
payloadCfg[2] = rate; // rate relative to navigation freq.
|
||||
|
||||
boolean ok = ((sendCommand(&packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
|
||||
if (ok)
|
||||
{
|
||||
packetUBXNAVATT->automaticFlags.flags.bits.automatic = enable;
|
||||
packetUBXNAVATT->automaticFlags.flags.bits.automatic = (rate > 0);
|
||||
packetUBXNAVATT->automaticFlags.flags.bits.implicitUpdate = implicitUpdate;
|
||||
}
|
||||
packetUBXNAVATT->moduleQueried.moduleQueried.bits.all = false; // Mark data as stale
|
||||
@@ -5773,6 +5807,8 @@ boolean SFE_UBLOX_GNSS::setAutoPVTrate(uint8_t rate, boolean implicitUpdate, uin
|
||||
if (packetUBXNAVPVT == NULL) //Only attempt this if RAM allocation was successful
|
||||
return false;
|
||||
|
||||
if (rate > 127) rate = 127;
|
||||
|
||||
packetCfg.cls = UBX_CLASS_CFG;
|
||||
packetCfg.id = UBX_CFG_MSG;
|
||||
packetCfg.len = 3;
|
||||
@@ -5912,29 +5948,38 @@ boolean SFE_UBLOX_GNSS::getNAVODO(uint16_t maxWait)
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoNAVODO(boolean enable, uint16_t maxWait)
|
||||
{
|
||||
return setAutoNAVODO(enable, true, maxWait);
|
||||
return setAutoNAVODOrate(enable ? 1 : 0, true, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic navigation message generation by the GNSS. This changes the way getODO
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoNAVODO(boolean enable, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
return setAutoNAVODOrate(enable ? 1 : 0, implicitUpdate, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic navigation message generation by the GNSS. This changes the way getODO
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoNAVODOrate(uint8_t rate, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
if (packetUBXNAVODO == NULL) initPacketUBXNAVODO(); //Check that RAM has been allocated for the data
|
||||
if (packetUBXNAVODO == NULL) //Only attempt this if RAM allocation was successful
|
||||
return false;
|
||||
|
||||
if (rate > 127) rate = 127;
|
||||
|
||||
packetCfg.cls = UBX_CLASS_CFG;
|
||||
packetCfg.id = UBX_CFG_MSG;
|
||||
packetCfg.len = 3;
|
||||
packetCfg.startingSpot = 0;
|
||||
payloadCfg[0] = UBX_CLASS_NAV;
|
||||
payloadCfg[1] = UBX_NAV_ODO;
|
||||
payloadCfg[2] = enable ? 1 : 0; // rate relative to navigation freq.
|
||||
payloadCfg[2] = rate; // rate relative to navigation freq.
|
||||
|
||||
boolean ok = ((sendCommand(&packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
|
||||
if (ok)
|
||||
{
|
||||
packetUBXNAVODO->automaticFlags.flags.bits.automatic = enable;
|
||||
packetUBXNAVODO->automaticFlags.flags.bits.automatic = (rate > 0);
|
||||
packetUBXNAVODO->automaticFlags.flags.bits.implicitUpdate = implicitUpdate;
|
||||
}
|
||||
packetUBXNAVODO->moduleQueried.moduleQueried.bits.all = false;
|
||||
@@ -6059,29 +6104,38 @@ boolean SFE_UBLOX_GNSS::getNAVVELECEF(uint16_t maxWait)
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoNAVVELECEF(boolean enable, uint16_t maxWait)
|
||||
{
|
||||
return setAutoNAVVELECEF(enable, true, maxWait);
|
||||
return setAutoNAVVELECEFrate(enable ? 1 : 0, true, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic navigation message generation by the GNSS. This changes the way getVELECEF
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoNAVVELECEF(boolean enable, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
return setAutoNAVVELECEFrate(enable ? 1 : 0, implicitUpdate, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic navigation message generation by the GNSS. This changes the way getVELECEF
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoNAVVELECEFrate(uint8_t rate, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
if (packetUBXNAVVELECEF == NULL) initPacketUBXNAVVELECEF(); //Check that RAM has been allocated for the data
|
||||
if (packetUBXNAVVELECEF == NULL) //Only attempt this if RAM allocation was successful
|
||||
return false;
|
||||
|
||||
if (rate > 127) rate = 127;
|
||||
|
||||
packetCfg.cls = UBX_CLASS_CFG;
|
||||
packetCfg.id = UBX_CFG_MSG;
|
||||
packetCfg.len = 3;
|
||||
packetCfg.startingSpot = 0;
|
||||
payloadCfg[0] = UBX_CLASS_NAV;
|
||||
payloadCfg[1] = UBX_NAV_VELECEF;
|
||||
payloadCfg[2] = enable ? 1 : 0; // rate relative to navigation freq.
|
||||
payloadCfg[2] = rate; // rate relative to navigation freq.
|
||||
|
||||
boolean ok = ((sendCommand(&packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
|
||||
if (ok)
|
||||
{
|
||||
packetUBXNAVVELECEF->automaticFlags.flags.bits.automatic = enable;
|
||||
packetUBXNAVVELECEF->automaticFlags.flags.bits.automatic = (rate > 0);
|
||||
packetUBXNAVVELECEF->automaticFlags.flags.bits.implicitUpdate = implicitUpdate;
|
||||
}
|
||||
packetUBXNAVVELECEF->moduleQueried.moduleQueried.bits.all = false;
|
||||
@@ -6360,29 +6414,38 @@ boolean SFE_UBLOX_GNSS::getNAVHPPOSECEF(uint16_t maxWait)
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoNAVHPPOSECEF(boolean enable, uint16_t maxWait)
|
||||
{
|
||||
return setAutoNAVHPPOSECEF(enable, true, maxWait);
|
||||
return setAutoNAVHPPOSECEFrate(enable ? 1 : 0, true, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic navigation message generation by the GNSS. This changes the way getHPPOSECEF
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoNAVHPPOSECEF(boolean enable, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
return setAutoNAVHPPOSECEFrate(enable ? 1 : 0, implicitUpdate, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic navigation message generation by the GNSS. This changes the way getHPPOSECEF
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoNAVHPPOSECEFrate(uint8_t rate, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
if (packetUBXNAVHPPOSECEF == NULL) initPacketUBXNAVHPPOSECEF(); //Check that RAM has been allocated for the data
|
||||
if (packetUBXNAVHPPOSECEF == NULL) //Only attempt this if RAM allocation was successful
|
||||
return false;
|
||||
|
||||
if (rate > 127) rate = 127;
|
||||
|
||||
packetCfg.cls = UBX_CLASS_CFG;
|
||||
packetCfg.id = UBX_CFG_MSG;
|
||||
packetCfg.len = 3;
|
||||
packetCfg.startingSpot = 0;
|
||||
payloadCfg[0] = UBX_CLASS_NAV;
|
||||
payloadCfg[1] = UBX_NAV_HPPOSECEF;
|
||||
payloadCfg[2] = enable ? 1 : 0; // rate relative to navigation freq.
|
||||
payloadCfg[2] = rate; // rate relative to navigation freq.
|
||||
|
||||
boolean ok = ((sendCommand(&packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
|
||||
if (ok)
|
||||
{
|
||||
packetUBXNAVHPPOSECEF->automaticFlags.flags.bits.automatic = enable;
|
||||
packetUBXNAVHPPOSECEF->automaticFlags.flags.bits.automatic = (rate > 0);
|
||||
packetUBXNAVHPPOSECEF->automaticFlags.flags.bits.implicitUpdate = implicitUpdate;
|
||||
}
|
||||
packetUBXNAVHPPOSECEF->moduleQueried.moduleQueried.bits.all = false;
|
||||
@@ -6529,29 +6592,38 @@ boolean SFE_UBLOX_GNSS::getHPPOSLLH(uint16_t maxWait)
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoHPPOSLLH(boolean enable, uint16_t maxWait)
|
||||
{
|
||||
return setAutoHPPOSLLH(enable, true, maxWait);
|
||||
return setAutoHPPOSLLHrate(enable ? 1 : 0, true, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic navigation message generation by the GNSS. This changes the way getHPPOSLLH
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoHPPOSLLH(boolean enable, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
return setAutoHPPOSLLHrate(enable ? 1 : 0, implicitUpdate, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic navigation message generation by the GNSS. This changes the way getHPPOSLLH
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoHPPOSLLHrate(uint8_t rate, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
if (packetUBXNAVHPPOSLLH == NULL) initPacketUBXNAVHPPOSLLH(); //Check that RAM has been allocated for the data
|
||||
if (packetUBXNAVHPPOSLLH == NULL) //Only attempt this if RAM allocation was successful
|
||||
return false;
|
||||
|
||||
if (rate > 127) rate = 127;
|
||||
|
||||
packetCfg.cls = UBX_CLASS_CFG;
|
||||
packetCfg.id = UBX_CFG_MSG;
|
||||
packetCfg.len = 3;
|
||||
packetCfg.startingSpot = 0;
|
||||
payloadCfg[0] = UBX_CLASS_NAV;
|
||||
payloadCfg[1] = UBX_NAV_HPPOSLLH;
|
||||
payloadCfg[2] = enable ? 1 : 0; // rate relative to navigation freq.
|
||||
payloadCfg[2] = rate; // rate relative to navigation freq.
|
||||
|
||||
boolean ok = ((sendCommand(&packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
|
||||
if (ok)
|
||||
{
|
||||
packetUBXNAVHPPOSLLH->automaticFlags.flags.bits.automatic = enable;
|
||||
packetUBXNAVHPPOSLLH->automaticFlags.flags.bits.automatic = (rate > 0);
|
||||
packetUBXNAVHPPOSLLH->automaticFlags.flags.bits.implicitUpdate = implicitUpdate;
|
||||
}
|
||||
packetUBXNAVHPPOSLLH->moduleQueried.moduleQueried.bits.all = false;
|
||||
@@ -6676,29 +6748,38 @@ boolean SFE_UBLOX_GNSS::getNAVCLOCK(uint16_t maxWait)
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoNAVCLOCK(boolean enable, uint16_t maxWait)
|
||||
{
|
||||
return setAutoNAVCLOCK(enable, true, maxWait);
|
||||
return setAutoNAVCLOCKrate(enable ? 1 : 0, true, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic CLOCK message generation by the GNSS. This changes the way getNAVCLOCK
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoNAVCLOCK(boolean enable, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
return setAutoNAVCLOCKrate(enable ? 1 : 0, implicitUpdate, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic CLOCK attitude message generation by the GNSS. This changes the way getNAVCLOCK
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoNAVCLOCK(boolean enable, boolean implicitUpdate, uint16_t maxWait)
|
||||
boolean SFE_UBLOX_GNSS::setAutoNAVCLOCKrate(uint8_t rate, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
if (packetUBXNAVCLOCK == NULL) initPacketUBXNAVCLOCK(); //Check that RAM has been allocated for the data
|
||||
if (packetUBXNAVCLOCK == NULL) //Only attempt this if RAM allocation was successful
|
||||
return false;
|
||||
|
||||
if (rate > 127) rate = 127;
|
||||
|
||||
packetCfg.cls = UBX_CLASS_CFG;
|
||||
packetCfg.id = UBX_CFG_MSG;
|
||||
packetCfg.len = 3;
|
||||
packetCfg.startingSpot = 0;
|
||||
payloadCfg[0] = UBX_CLASS_NAV;
|
||||
payloadCfg[1] = UBX_NAV_CLOCK;
|
||||
payloadCfg[2] = enable ? 1 : 0; // rate relative to navigation freq.
|
||||
payloadCfg[2] = rate; // rate relative to navigation freq.
|
||||
|
||||
boolean ok = ((sendCommand(&packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
|
||||
if (ok)
|
||||
{
|
||||
packetUBXNAVCLOCK->automaticFlags.flags.bits.automatic = enable;
|
||||
packetUBXNAVCLOCK->automaticFlags.flags.bits.automatic = (rate > 0);
|
||||
packetUBXNAVCLOCK->automaticFlags.flags.bits.implicitUpdate = implicitUpdate;
|
||||
}
|
||||
packetUBXNAVCLOCK->moduleQueried.moduleQueried.bits.all = false; // Mark data as stale
|
||||
@@ -6875,29 +6956,38 @@ boolean SFE_UBLOX_GNSS::getRELPOSNED(uint16_t maxWait)
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoRELPOSNED(boolean enable, uint16_t maxWait)
|
||||
{
|
||||
return setAutoRELPOSNED(enable, true, maxWait);
|
||||
return setAutoRELPOSNEDrate(enable ? 1 : 0, true, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic RELPOSNED message generation by the GNSS. This changes the way getRELPOSNED
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoRELPOSNED(boolean enable, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
return setAutoRELPOSNEDrate(enable ? 1 : 0, implicitUpdate, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic HNR attitude message generation by the GNSS. This changes the way getRELPOSNED
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoRELPOSNED(boolean enable, boolean implicitUpdate, uint16_t maxWait)
|
||||
boolean SFE_UBLOX_GNSS::setAutoRELPOSNEDrate(uint8_t rate, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
if (packetUBXNAVRELPOSNED == NULL) initPacketUBXNAVRELPOSNED(); //Check that RAM has been allocated for the data
|
||||
if (packetUBXNAVRELPOSNED == NULL) //Only attempt this if RAM allocation was successful
|
||||
return false;
|
||||
|
||||
if (rate > 127) rate = 127;
|
||||
|
||||
packetCfg.cls = UBX_CLASS_CFG;
|
||||
packetCfg.id = UBX_CFG_MSG;
|
||||
packetCfg.len = 3;
|
||||
packetCfg.startingSpot = 0;
|
||||
payloadCfg[0] = UBX_CLASS_NAV;
|
||||
payloadCfg[1] = UBX_NAV_RELPOSNED;
|
||||
payloadCfg[2] = enable ? 1 : 0; // rate relative to navigation freq.
|
||||
payloadCfg[2] = rate; // rate relative to navigation freq.
|
||||
|
||||
boolean ok = ((sendCommand(&packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
|
||||
if (ok)
|
||||
{
|
||||
packetUBXNAVRELPOSNED->automaticFlags.flags.bits.automatic = enable;
|
||||
packetUBXNAVRELPOSNED->automaticFlags.flags.bits.automatic = (rate > 0);
|
||||
packetUBXNAVRELPOSNED->automaticFlags.flags.bits.implicitUpdate = implicitUpdate;
|
||||
}
|
||||
packetUBXNAVRELPOSNED->moduleQueried.moduleQueried.bits.all = false; // Mark data as stale
|
||||
@@ -7022,29 +7112,38 @@ boolean SFE_UBLOX_GNSS::getRXMSFRBX(uint16_t maxWait)
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoRXMSFRBX(boolean enable, uint16_t maxWait)
|
||||
{
|
||||
return setAutoRXMSFRBX(enable, true, maxWait);
|
||||
return setAutoRXMSFRBXrate(enable ? 1 : 0, true, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic navigation message generation by the GNSS. This changes the way getRXMSFRBX
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoRXMSFRBX(boolean enable, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
return setAutoRXMSFRBXrate(enable ? 1 : 0, implicitUpdate, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic navigation message generation by the GNSS. This changes the way getRXMSFRBX
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoRXMSFRBXrate(uint8_t rate, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
if (packetUBXRXMSFRBX == NULL) initPacketUBXRXMSFRBX(); //Check that RAM has been allocated for the data
|
||||
if (packetUBXRXMSFRBX == NULL) //Only attempt this if RAM allocation was successful
|
||||
return false;
|
||||
|
||||
if (rate > 127) rate = 127;
|
||||
|
||||
packetCfg.cls = UBX_CLASS_CFG;
|
||||
packetCfg.id = UBX_CFG_MSG;
|
||||
packetCfg.len = 3;
|
||||
packetCfg.startingSpot = 0;
|
||||
payloadCfg[0] = UBX_CLASS_RXM;
|
||||
payloadCfg[1] = UBX_RXM_SFRBX;
|
||||
payloadCfg[2] = enable ? 1 : 0; // rate relative to navigation freq.
|
||||
payloadCfg[2] = rate; // rate relative to navigation freq.
|
||||
|
||||
boolean ok = ((sendCommand(&packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
|
||||
if (ok)
|
||||
{
|
||||
packetUBXRXMSFRBX->automaticFlags.flags.bits.automatic = enable;
|
||||
packetUBXRXMSFRBX->automaticFlags.flags.bits.automatic = (rate > 0);
|
||||
packetUBXRXMSFRBX->automaticFlags.flags.bits.implicitUpdate = implicitUpdate;
|
||||
}
|
||||
packetUBXRXMSFRBX->moduleQueried = false;
|
||||
@@ -7169,29 +7268,38 @@ boolean SFE_UBLOX_GNSS::getRXMRAWX(uint16_t maxWait)
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoRXMRAWX(boolean enable, uint16_t maxWait)
|
||||
{
|
||||
return setAutoRXMRAWX(enable, true, maxWait);
|
||||
return setAutoRXMRAWXrate(enable ? 1 : 0, true, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic navigation message generation by the GNSS. This changes the way getRXMRAWX
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoRXMRAWX(boolean enable, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
return setAutoRXMRAWXrate(enable ? 1 : 0, implicitUpdate, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic navigation message generation by the GNSS. This changes the way getRXMRAWX
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoRXMRAWXrate(uint8_t rate, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
if (packetUBXRXMRAWX == NULL) initPacketUBXRXMRAWX(); //Check that RAM has been allocated for the data
|
||||
if (packetUBXRXMRAWX == NULL) //Only attempt this if RAM allocation was successful
|
||||
return false;
|
||||
|
||||
if (rate > 127) rate = 127;
|
||||
|
||||
packetCfg.cls = UBX_CLASS_CFG;
|
||||
packetCfg.id = UBX_CFG_MSG;
|
||||
packetCfg.len = 3;
|
||||
packetCfg.startingSpot = 0;
|
||||
payloadCfg[0] = UBX_CLASS_RXM;
|
||||
payloadCfg[1] = UBX_RXM_RAWX;
|
||||
payloadCfg[2] = enable ? 1 : 0; // rate relative to navigation freq.
|
||||
payloadCfg[2] = rate; // rate relative to navigation freq.
|
||||
|
||||
boolean ok = ((sendCommand(&packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
|
||||
if (ok)
|
||||
{
|
||||
packetUBXRXMRAWX->automaticFlags.flags.bits.automatic = enable;
|
||||
packetUBXRXMRAWX->automaticFlags.flags.bits.automatic = (rate > 0);
|
||||
packetUBXRXMRAWX->automaticFlags.flags.bits.implicitUpdate = implicitUpdate;
|
||||
}
|
||||
packetUBXRXMRAWX->moduleQueried = false;
|
||||
@@ -7376,29 +7484,38 @@ boolean SFE_UBLOX_GNSS::getTIMTM2(uint16_t maxWait)
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoTIMTM2(boolean enable, uint16_t maxWait)
|
||||
{
|
||||
return setAutoTIMTM2(enable, true, maxWait);
|
||||
return setAutoTIMTM2rate(enable ? 1 : 0, true, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic navigation message generation by the GNSS. This changes the way getTIMTM2
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoTIMTM2(boolean enable, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
return setAutoTIMTM2rate(enable ? 1 : 0, implicitUpdate, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic navigation message generation by the GNSS. This changes the way getTIMTM2
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoTIMTM2rate(uint8_t rate, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
if (packetUBXTIMTM2 == NULL) initPacketUBXTIMTM2(); //Check that RAM has been allocated for the data
|
||||
if (packetUBXTIMTM2 == NULL) //Only attempt this if RAM allocation was successful
|
||||
return false;
|
||||
|
||||
if (rate > 127) rate = 127;
|
||||
|
||||
packetCfg.cls = UBX_CLASS_CFG;
|
||||
packetCfg.id = UBX_CFG_MSG;
|
||||
packetCfg.len = 3;
|
||||
packetCfg.startingSpot = 0;
|
||||
payloadCfg[0] = UBX_CLASS_TIM;
|
||||
payloadCfg[1] = UBX_TIM_TM2;
|
||||
payloadCfg[2] = enable ? 1 : 0; // rate relative to navigation freq.
|
||||
payloadCfg[2] = rate; // rate relative to navigation freq.
|
||||
|
||||
boolean ok = ((sendCommand(&packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
|
||||
if (ok)
|
||||
{
|
||||
packetUBXTIMTM2->automaticFlags.flags.bits.automatic = enable;
|
||||
packetUBXTIMTM2->automaticFlags.flags.bits.automatic = (rate > 0);
|
||||
packetUBXTIMTM2->automaticFlags.flags.bits.implicitUpdate = implicitUpdate;
|
||||
}
|
||||
packetUBXTIMTM2->moduleQueried.moduleQueried.bits.all = false;
|
||||
@@ -7552,29 +7669,38 @@ boolean SFE_UBLOX_GNSS::getESFALG(uint16_t maxWait)
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoESFALG(boolean enable, uint16_t maxWait)
|
||||
{
|
||||
return setAutoESFALG(enable, true, maxWait);
|
||||
return setAutoESFALGrate(enable ? 1 : 0, true, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic ESF ALG message generation by the GNSS. This changes the way getEsfAlignment
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoESFALG(boolean enable, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
return setAutoESFALGrate(enable ? 1 : 0, implicitUpdate, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic ESF ALG message generation by the GNSS. This changes the way getEsfAlignment
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoESFALGrate(uint8_t rate, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
if (packetUBXESFALG == NULL) initPacketUBXESFALG(); //Check that RAM has been allocated for the data
|
||||
if (packetUBXESFALG == NULL) //Only attempt this if RAM allocation was successful
|
||||
return false;
|
||||
|
||||
if (rate > 127) rate = 127;
|
||||
|
||||
packetCfg.cls = UBX_CLASS_CFG;
|
||||
packetCfg.id = UBX_CFG_MSG;
|
||||
packetCfg.len = 3;
|
||||
packetCfg.startingSpot = 0;
|
||||
payloadCfg[0] = UBX_CLASS_ESF;
|
||||
payloadCfg[1] = UBX_ESF_ALG;
|
||||
payloadCfg[2] = enable ? 1 : 0; // rate relative to navigation freq.
|
||||
payloadCfg[2] = rate; // rate relative to navigation freq.
|
||||
|
||||
boolean ok = ((sendCommand(&packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
|
||||
if (ok)
|
||||
{
|
||||
packetUBXESFALG->automaticFlags.flags.bits.automatic = enable;
|
||||
packetUBXESFALG->automaticFlags.flags.bits.automatic = (rate > 0);
|
||||
packetUBXESFALG->automaticFlags.flags.bits.implicitUpdate = implicitUpdate;
|
||||
}
|
||||
packetUBXESFALG->moduleQueried.moduleQueried.bits.all = false; // Mark data as stale
|
||||
@@ -7728,29 +7854,38 @@ boolean SFE_UBLOX_GNSS::getESFSTATUS(uint16_t maxWait)
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoESFSTATUS(boolean enable, uint16_t maxWait)
|
||||
{
|
||||
return setAutoESFSTATUS(enable, true, maxWait);
|
||||
return setAutoESFSTATUSrate(enable ? 1 : 0, true, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic ESF STATUS message generation by the GNSS. This changes the way getESFInfo
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoESFSTATUS(boolean enable, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
return setAutoESFSTATUSrate(enable ? 1 : 0, implicitUpdate, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic ESF STATUS message generation by the GNSS. This changes the way getESFInfo
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoESFSTATUSrate(uint8_t rate, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
if (packetUBXESFSTATUS == NULL) initPacketUBXESFSTATUS(); //Check that RAM has been allocated for the data
|
||||
if (packetUBXESFSTATUS == NULL) //Only attempt this if RAM allocation was successful
|
||||
return false;
|
||||
|
||||
if (rate > 127) rate = 127;
|
||||
|
||||
packetCfg.cls = UBX_CLASS_CFG;
|
||||
packetCfg.id = UBX_CFG_MSG;
|
||||
packetCfg.len = 3;
|
||||
packetCfg.startingSpot = 0;
|
||||
payloadCfg[0] = UBX_CLASS_ESF;
|
||||
payloadCfg[1] = UBX_ESF_STATUS;
|
||||
payloadCfg[2] = enable ? 1 : 0; // rate relative to navigation freq.
|
||||
payloadCfg[2] = rate; // rate relative to navigation freq.
|
||||
|
||||
boolean ok = ((sendCommand(&packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
|
||||
if (ok)
|
||||
{
|
||||
packetUBXESFSTATUS->automaticFlags.flags.bits.automatic = enable;
|
||||
packetUBXESFSTATUS->automaticFlags.flags.bits.automatic = (rate > 0);
|
||||
packetUBXESFSTATUS->automaticFlags.flags.bits.implicitUpdate = implicitUpdate;
|
||||
}
|
||||
packetUBXESFSTATUS->moduleQueried.moduleQueried.bits.all = false; // Mark data as stale
|
||||
@@ -7905,29 +8040,38 @@ boolean SFE_UBLOX_GNSS::getESFINS(uint16_t maxWait)
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoESFINS(boolean enable, uint16_t maxWait)
|
||||
{
|
||||
return setAutoESFINS(enable, true, maxWait);
|
||||
return setAutoESFINSrate(enable ? 1 : 0, true, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic ESF INS message generation by the GNSS. This changes the way getESFIns
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoESFINS(boolean enable, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
return setAutoESFINSrate(enable ? 1 : 0, implicitUpdate, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic ESF INS message generation by the GNSS. This changes the way getESFIns
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoESFINSrate(uint8_t rate, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
if (packetUBXESFINS == NULL) initPacketUBXESFINS(); //Check that RAM has been allocated for the data
|
||||
if (packetUBXESFINS == NULL) //Only attempt this if RAM allocation was successful
|
||||
return false;
|
||||
|
||||
if (rate > 127) rate = 127;
|
||||
|
||||
packetCfg.cls = UBX_CLASS_CFG;
|
||||
packetCfg.id = UBX_CFG_MSG;
|
||||
packetCfg.len = 3;
|
||||
packetCfg.startingSpot = 0;
|
||||
payloadCfg[0] = UBX_CLASS_ESF;
|
||||
payloadCfg[1] = UBX_ESF_INS;
|
||||
payloadCfg[2] = enable ? 1 : 0; // rate relative to navigation freq.
|
||||
payloadCfg[2] = rate; // rate relative to navigation freq.
|
||||
|
||||
boolean ok = ((sendCommand(&packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
|
||||
if (ok)
|
||||
{
|
||||
packetUBXESFINS->automaticFlags.flags.bits.automatic = enable;
|
||||
packetUBXESFINS->automaticFlags.flags.bits.automatic = (rate > 0);
|
||||
packetUBXESFINS->automaticFlags.flags.bits.implicitUpdate = implicitUpdate;
|
||||
}
|
||||
packetUBXESFINS->moduleQueried.moduleQueried.bits.all = false; // Mark data as stale
|
||||
@@ -8081,29 +8225,38 @@ boolean SFE_UBLOX_GNSS::getESFMEAS(uint16_t maxWait)
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoESFMEAS(boolean enable, uint16_t maxWait)
|
||||
{
|
||||
return setAutoESFMEAS(enable, true, maxWait);
|
||||
return setAutoESFMEASrate(enable ? 1 : 0, true, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic ESF MEAS message generation by the GNSS. This changes the way getESFDataInfo
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoESFMEAS(boolean enable, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
return setAutoESFMEASrate(enable ? 1 : 0, implicitUpdate, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic ESF MEAS message generation by the GNSS. This changes the way getESFDataInfo
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoESFMEASrate(uint8_t rate, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
if (packetUBXESFMEAS == NULL) initPacketUBXESFMEAS(); //Check that RAM has been allocated for the data
|
||||
if (packetUBXESFMEAS == NULL) //Only attempt this if RAM allocation was successful
|
||||
return false;
|
||||
|
||||
if (rate > 127) rate = 127;
|
||||
|
||||
packetCfg.cls = UBX_CLASS_CFG;
|
||||
packetCfg.id = UBX_CFG_MSG;
|
||||
packetCfg.len = 3;
|
||||
packetCfg.startingSpot = 0;
|
||||
payloadCfg[0] = UBX_CLASS_ESF;
|
||||
payloadCfg[1] = UBX_ESF_MEAS;
|
||||
payloadCfg[2] = enable ? 1 : 0; // rate relative to navigation freq.
|
||||
payloadCfg[2] = rate; // rate relative to navigation freq.
|
||||
|
||||
boolean ok = ((sendCommand(&packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
|
||||
if (ok)
|
||||
{
|
||||
packetUBXESFMEAS->automaticFlags.flags.bits.automatic = enable;
|
||||
packetUBXESFMEAS->automaticFlags.flags.bits.automatic = (rate > 0);
|
||||
packetUBXESFMEAS->automaticFlags.flags.bits.implicitUpdate = implicitUpdate;
|
||||
}
|
||||
packetUBXESFMEAS->moduleQueried.moduleQueried.bits.all = false; // Mark data as stale
|
||||
@@ -8257,29 +8410,38 @@ boolean SFE_UBLOX_GNSS::getESFRAW(uint16_t maxWait)
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoESFRAW(boolean enable, uint16_t maxWait)
|
||||
{
|
||||
return setAutoESFRAW(enable, true, maxWait);
|
||||
return setAutoESFRAWrate(enable ? 1 : 0, true, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic ESF RAW message generation by the GNSS. This changes the way getESFRawDataInfo
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoESFRAW(boolean enable, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
return setAutoESFRAWrate(enable ? 1 : 0, implicitUpdate, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic ESF RAW message generation by the GNSS. This changes the way getESFRawDataInfo
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoESFRAWrate(uint8_t rate, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
if (packetUBXESFRAW == NULL) initPacketUBXESFRAW(); //Check that RAM has been allocated for the data
|
||||
if (packetUBXESFRAW == NULL) //Only attempt this if RAM allocation was successful
|
||||
return false;
|
||||
|
||||
if (rate > 127) rate = 127;
|
||||
|
||||
packetCfg.cls = UBX_CLASS_CFG;
|
||||
packetCfg.id = UBX_CFG_MSG;
|
||||
packetCfg.len = 3;
|
||||
packetCfg.startingSpot = 0;
|
||||
payloadCfg[0] = UBX_CLASS_ESF;
|
||||
payloadCfg[1] = UBX_ESF_RAW;
|
||||
payloadCfg[2] = enable ? 1 : 0; // rate relative to navigation freq.
|
||||
payloadCfg[2] = rate; // rate relative to navigation freq.
|
||||
|
||||
boolean ok = ((sendCommand(&packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
|
||||
if (ok)
|
||||
{
|
||||
packetUBXESFRAW->automaticFlags.flags.bits.automatic = enable;
|
||||
packetUBXESFRAW->automaticFlags.flags.bits.automatic = (rate > 0);
|
||||
packetUBXESFRAW->automaticFlags.flags.bits.implicitUpdate = implicitUpdate;
|
||||
}
|
||||
packetUBXESFRAW->moduleQueried.moduleQueried.bits.all = false; // Mark data as stale
|
||||
@@ -8438,29 +8600,38 @@ boolean SFE_UBLOX_GNSS::getHNRATT(uint16_t maxWait)
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoHNRATT(boolean enable, uint16_t maxWait)
|
||||
{
|
||||
return setAutoHNRATT(enable, true, maxWait);
|
||||
return setAutoHNRATTrate(enable ? 1 : 0, true, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic HNR attitude message generation by the GNSS. This changes the way getHNRAtt
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoHNRATT(boolean enable, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
return setAutoHNRATTrate(enable ? 1 : 0, implicitUpdate, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic HNR attitude message generation by the GNSS. This changes the way getHNRAtt
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoHNRATTrate(uint8_t rate, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
if (packetUBXHNRATT == NULL) initPacketUBXHNRATT(); //Check that RAM has been allocated for the data
|
||||
if (packetUBXHNRATT == NULL) //Only attempt this if RAM allocation was successful
|
||||
return false;
|
||||
|
||||
if (rate > 127) rate = 127;
|
||||
|
||||
packetCfg.cls = UBX_CLASS_CFG;
|
||||
packetCfg.id = UBX_CFG_MSG;
|
||||
packetCfg.len = 3;
|
||||
packetCfg.startingSpot = 0;
|
||||
payloadCfg[0] = UBX_CLASS_HNR;
|
||||
payloadCfg[1] = UBX_HNR_ATT;
|
||||
payloadCfg[2] = enable ? 1 : 0; // rate relative to navigation freq.
|
||||
payloadCfg[2] = rate; // rate relative to navigation freq.
|
||||
|
||||
boolean ok = ((sendCommand(&packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
|
||||
if (ok)
|
||||
{
|
||||
packetUBXHNRATT->automaticFlags.flags.bits.automatic = enable;
|
||||
packetUBXHNRATT->automaticFlags.flags.bits.automatic = (rate > 0);
|
||||
packetUBXHNRATT->automaticFlags.flags.bits.implicitUpdate = implicitUpdate;
|
||||
}
|
||||
packetUBXHNRATT->moduleQueried.moduleQueried.bits.all = false; // Mark data as stale
|
||||
@@ -8620,29 +8791,38 @@ boolean SFE_UBLOX_GNSS::getHNRINS(uint16_t maxWait)
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoHNRINS(boolean enable, uint16_t maxWait)
|
||||
{
|
||||
return setAutoHNRINS(enable, 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
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoHNRINS(boolean enable, boolean implicitUpdate, uint16_t 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
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoHNRINSrate(uint8_t rate, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
if (packetUBXHNRINS == NULL) initPacketUBXHNRINS(); //Check that RAM has been allocated for the data
|
||||
if (packetUBXHNRINS == NULL) //Only attempt this if RAM allocation was successful
|
||||
return false;
|
||||
|
||||
if (rate > 127) rate = 127;
|
||||
|
||||
packetCfg.cls = UBX_CLASS_CFG;
|
||||
packetCfg.id = UBX_CFG_MSG;
|
||||
packetCfg.len = 3;
|
||||
packetCfg.startingSpot = 0;
|
||||
payloadCfg[0] = UBX_CLASS_HNR;
|
||||
payloadCfg[1] = UBX_HNR_INS;
|
||||
payloadCfg[2] = enable ? 1 : 0; // rate relative to navigation freq.
|
||||
payloadCfg[2] = rate; // rate relative to navigation freq.
|
||||
|
||||
boolean ok = ((sendCommand(&packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
|
||||
if (ok)
|
||||
{
|
||||
packetUBXHNRINS->automaticFlags.flags.bits.automatic = enable;
|
||||
packetUBXHNRINS->automaticFlags.flags.bits.automatic = (rate > 0);
|
||||
packetUBXHNRINS->automaticFlags.flags.bits.implicitUpdate = implicitUpdate;
|
||||
}
|
||||
packetUBXHNRINS->moduleQueried.moduleQueried.bits.all = false; // Mark data as stale
|
||||
@@ -8796,29 +8976,38 @@ boolean SFE_UBLOX_GNSS::getHNRPVT(uint16_t maxWait)
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoHNRPVT(boolean enable, uint16_t maxWait)
|
||||
{
|
||||
return setAutoHNRPVT(enable, true, maxWait);
|
||||
return setAutoHNRPVTrate(enable ? 1 : 0, true, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic HNR PVT message generation by the GNSS. This changes the way getHNRPVT
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoHNRPVT(boolean enable, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
return setAutoHNRPVTrate(enable ? 1 : 0, implicitUpdate, maxWait);
|
||||
}
|
||||
|
||||
//Enable or disable automatic HNR PVT message generation by the GNSS. This changes the way getHNRPVT
|
||||
//works.
|
||||
boolean SFE_UBLOX_GNSS::setAutoHNRPVTrate(uint8_t rate, boolean implicitUpdate, uint16_t maxWait)
|
||||
{
|
||||
if (packetUBXHNRPVT == NULL) initPacketUBXHNRPVT(); //Check that RAM has been allocated for the data
|
||||
if (packetUBXHNRPVT == NULL) //Only attempt this if RAM allocation was successful
|
||||
return false;
|
||||
|
||||
if (rate > 127) rate = 127;
|
||||
|
||||
packetCfg.cls = UBX_CLASS_CFG;
|
||||
packetCfg.id = UBX_CFG_MSG;
|
||||
packetCfg.len = 3;
|
||||
packetCfg.startingSpot = 0;
|
||||
payloadCfg[0] = UBX_CLASS_HNR;
|
||||
payloadCfg[1] = UBX_HNR_PVT;
|
||||
payloadCfg[2] = enable ? 1 : 0; // rate relative to navigation freq.
|
||||
payloadCfg[2] = rate; // rate relative to navigation freq.
|
||||
|
||||
boolean ok = ((sendCommand(&packetCfg, maxWait)) == SFE_UBLOX_STATUS_DATA_SENT); // We are only expecting an ACK
|
||||
if (ok)
|
||||
{
|
||||
packetUBXHNRPVT->automaticFlags.flags.bits.automatic = enable;
|
||||
packetUBXHNRPVT->automaticFlags.flags.bits.automatic = (rate > 0);
|
||||
packetUBXHNRPVT->automaticFlags.flags.bits.implicitUpdate = implicitUpdate;
|
||||
}
|
||||
packetUBXHNRPVT->moduleQueried.moduleQueried.bits.all = false; // Mark data as stale
|
||||
|
||||
Reference in New Issue
Block a user