This commit is contained in:
parent
0f3eeb42d6
commit
1c36f36b1f
@ -248,38 +248,38 @@ ReturnValue_t GpsHyperionLinuxController::handleCoreTelemetry(bool modeIsSet) {
|
|||||||
maxTimeToReachFix.resetTimer();
|
maxTimeToReachFix.resetTimer();
|
||||||
}
|
}
|
||||||
newFix = gps.fix.mode;
|
newFix = gps.fix.mode;
|
||||||
if (not validFix) {
|
|
||||||
if (maxTimeToReachFix.hasTimedOut()) {
|
|
||||||
// We are supposed to be on and functioning, but no fix was found
|
|
||||||
// Set HK entries invalid
|
|
||||||
gpsSet.setValidity(false, true);
|
|
||||||
if (oneShotSwitches.cantGetFixSwitch) {
|
|
||||||
sif::warning << "GpsHyperionLinuxController: No fix detected in allowed "
|
|
||||||
<< maxTimeToReachFix.getTimeoutMs() / 1000 << " seconds" << std::endl;
|
|
||||||
triggerEvent(GpsHyperion::CANT_GET_FIX, maxTimeToReachFix.getTimeoutMs());
|
|
||||||
oneShotSwitches.cantGetFixSwitch = false;
|
|
||||||
// Try resetting the devices
|
|
||||||
if (resetCallback != nullptr) {
|
|
||||||
uint8_t chip = GpsHyperion::GnssChip::A_SIDE;
|
|
||||||
ReturnValue_t result = resetCallback(&chip, 1, resetCallbackArgs);
|
|
||||||
if (result != returnvalue::OK) {
|
|
||||||
triggerEvent(GpsHyperion::RESET_FAIL, chip);
|
|
||||||
}
|
|
||||||
chip = GpsHyperion::GnssChip::B_SIDE;
|
|
||||||
result = resetCallback(&chip, 1, resetCallbackArgs);
|
|
||||||
if (result != returnvalue::OK) {
|
|
||||||
triggerEvent(GpsHyperion::RESET_FAIL, chip);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (gpsSet.fixMode.value != newFix) {
|
if (gpsSet.fixMode.value != newFix) {
|
||||||
handleFixChangedEvent(newFix);
|
handleFixChangedEvent(newFix);
|
||||||
}
|
}
|
||||||
gpsSet.fixMode = newFix;
|
gpsSet.fixMode = newFix;
|
||||||
gpsSet.fixMode.setValid(modeIsSet);
|
gpsSet.fixMode.setValid(modeIsSet);
|
||||||
|
// We are supposed to be on and functioning, but no fix was found
|
||||||
|
if (not validFix) {
|
||||||
|
if (maxTimeToReachFix.hasTimedOut()) {
|
||||||
|
// Set HK entries invalid
|
||||||
|
gpsSet.setValidity(false, true);
|
||||||
|
if (oneShotSwitches.cantGetFixSwitch) {
|
||||||
|
sif::warning << "GpsHyperionLinuxController: No fix detected in allowed "
|
||||||
|
<< maxTimeToReachFix.getTimeoutMs() / 1000 << " seconds" << std::endl;
|
||||||
|
triggerEvent(GpsHyperion::CANT_GET_FIX, maxTimeToReachFix.getTimeoutMs());
|
||||||
|
oneShotSwitches.cantGetFixSwitch = false;
|
||||||
|
// Try resetting the devices
|
||||||
|
if (resetCallback != nullptr) {
|
||||||
|
uint8_t chip = GpsHyperion::GnssChip::A_SIDE;
|
||||||
|
ReturnValue_t result = resetCallback(&chip, 1, resetCallbackArgs);
|
||||||
|
if (result != returnvalue::OK) {
|
||||||
|
triggerEvent(GpsHyperion::RESET_FAIL, chip);
|
||||||
|
}
|
||||||
|
chip = GpsHyperion::GnssChip::B_SIDE;
|
||||||
|
result = resetCallback(&chip, 1, resetCallbackArgs);
|
||||||
|
if (result != returnvalue::OK) {
|
||||||
|
triggerEvent(GpsHyperion::RESET_FAIL, chip);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Only set on specific messages, so only set a valid flag to invalid
|
// Only set on specific messages, so only set a valid flag to invalid
|
||||||
// if not set for more than a full message set (10 messages here)
|
// if not set for more than a full message set (10 messages here)
|
||||||
|
Loading…
Reference in New Issue
Block a user