PL PCDU Update Mode Handling #200
@ -16,7 +16,9 @@ GPSHyperionLinuxController::GPSHyperionLinuxController(object_id_t objectId, obj
|
|||||||
: ExtendedControllerBase(objectId, objects::NO_OBJECT),
|
: ExtendedControllerBase(objectId, objects::NO_OBJECT),
|
||||||
gpsSet(this),
|
gpsSet(this),
|
||||||
myGpsmm(GPSD_SHARED_MEMORY, nullptr),
|
myGpsmm(GPSD_SHARED_MEMORY, nullptr),
|
||||||
debugHyperionGps(debugHyperionGps) {}
|
debugHyperionGps(debugHyperionGps) {
|
||||||
|
timeUpdateCd.resetTimer();
|
||||||
|
}
|
||||||
|
|
||||||
GPSHyperionLinuxController::~GPSHyperionLinuxController() {}
|
GPSHyperionLinuxController::~GPSHyperionLinuxController() {}
|
||||||
|
|
||||||
@ -180,10 +182,11 @@ void GPSHyperionLinuxController::readGpsDataFromGpsd() {
|
|||||||
timeIsConstantCounter = 0;
|
timeIsConstantCounter = 0;
|
||||||
}
|
}
|
||||||
// If the received time does not change anymore for whatever reason, do not set it here
|
// If the received time does not change anymore for whatever reason, do not set it here
|
||||||
// to avoid stale times
|
// to avoid stale times. Also, don't do it too often often to avoid jumping times
|
||||||
if(timeIsConstantCounter < 3) {
|
if (timeIsConstantCounter < 3 and timeUpdateCd.hasTimedOut()) {
|
||||||
// Update the system time here for now. NTP seems to be unable to do so for whatever reason
|
// Update the system time here for now. NTP seems to be unable to do so for whatever reason
|
||||||
settimeofday(&time, nullptr);
|
settimeofday(&time, nullptr);
|
||||||
|
timeUpdateCd.resetTimer();
|
||||||
}
|
}
|
||||||
|
|
||||||
Clock::TimeOfDay_t timeOfDay = {};
|
Clock::TimeOfDay_t timeOfDay = {};
|
||||||
|
@ -52,6 +52,7 @@ class GPSHyperionLinuxController : public ExtendedControllerBase {
|
|||||||
gpsmm myGpsmm;
|
gpsmm myGpsmm;
|
||||||
bool debugHyperionGps = false;
|
bool debugHyperionGps = false;
|
||||||
uint32_t timeIsConstantCounter = 0;
|
uint32_t timeIsConstantCounter = 0;
|
||||||
|
Countdown timeUpdateCd = Countdown(60);
|
||||||
|
|
||||||
void readGpsDataFromGpsd();
|
void readGpsDataFromGpsd();
|
||||||
};
|
};
|
||||||
|
@ -339,9 +339,7 @@ gpioId_t HeaterHandler::getGpioIdFromSwitchNr(int switchNr) {
|
|||||||
|
|
||||||
MessageQueueId_t HeaterHandler::getCommandQueue() const { return commandQueue->getId(); }
|
MessageQueueId_t HeaterHandler::getCommandQueue() const { return commandQueue->getId(); }
|
||||||
|
|
||||||
ReturnValue_t HeaterHandler::sendFuseOnCommand(uint8_t fuseNr) {
|
ReturnValue_t HeaterHandler::sendFuseOnCommand(uint8_t fuseNr) { return RETURN_OK; }
|
||||||
return RETURN_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
ReturnValue_t HeaterHandler::getSwitchState(uint8_t switchNr) const { return 0; }
|
ReturnValue_t HeaterHandler::getSwitchState(uint8_t switchNr) const { return 0; }
|
||||||
|
|
||||||
|
@ -350,9 +350,7 @@ ReturnValue_t PCDUHandler::sendSwitchCommand(uint8_t switchNr, ReturnValue_t onO
|
|||||||
return RETURN_OK;
|
return RETURN_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
ReturnValue_t PCDUHandler::sendFuseOnCommand(uint8_t fuseNr) {
|
ReturnValue_t PCDUHandler::sendFuseOnCommand(uint8_t fuseNr) { return RETURN_OK; }
|
||||||
return RETURN_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
ReturnValue_t PCDUHandler::getSwitchState(uint8_t switchNr) const {
|
ReturnValue_t PCDUHandler::getSwitchState(uint8_t switchNr) const {
|
||||||
if (switchNr >= pcduSwitches::NUMBER_OF_SWITCHES) {
|
if (switchNr >= pcduSwitches::NUMBER_OF_SWITCHES) {
|
||||||
|
@ -145,13 +145,15 @@ ReturnValue_t AcsBoardAssembly::handleNormalOrOnModeCmd(Mode_t mode, Submode_t s
|
|||||||
if (gpioIF->pullHigh(gpioIds::GNSS_0_NRESET) != HasReturnvaluesIF::RETURN_OK) {
|
if (gpioIF->pullHigh(gpioIds::GNSS_0_NRESET) != HasReturnvaluesIF::RETURN_OK) {
|
||||||
#if OBSW_VERBOSE_LEVEL >= 1
|
#if OBSW_VERBOSE_LEVEL >= 1
|
||||||
sif::error << "AcsBoardAssembly::handleNormalOrOnModeCmd: Could not pull nReset pin"
|
sif::error << "AcsBoardAssembly::handleNormalOrOnModeCmd: Could not pull nReset pin"
|
||||||
"of GNSS 0 high (used GNSS)" << std::endl;
|
"of GNSS 0 high (used GNSS)"
|
||||||
|
<< std::endl;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
if (gpioIF->pullLow(gpioIds::GNSS_1_NRESET) != HasReturnvaluesIF::RETURN_OK) {
|
if (gpioIF->pullLow(gpioIds::GNSS_1_NRESET) != HasReturnvaluesIF::RETURN_OK) {
|
||||||
#if OBSW_VERBOSE_LEVEL >= 1
|
#if OBSW_VERBOSE_LEVEL >= 1
|
||||||
sif::error << "AcsBoardAssembly::handleNormalOrOnModeCmd: Could not pull nReset pin"
|
sif::error << "AcsBoardAssembly::handleNormalOrOnModeCmd: Could not pull nReset pin"
|
||||||
"of GNSS 1 low (unused GNSS)" << std::endl;
|
"of GNSS 1 low (unused GNSS)"
|
||||||
|
<< std::endl;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
if (gpioIF->pullLow(gpioIds::GNSS_SELECT) != HasReturnvaluesIF::RETURN_OK) {
|
if (gpioIF->pullLow(gpioIds::GNSS_SELECT) != HasReturnvaluesIF::RETURN_OK) {
|
||||||
@ -180,13 +182,15 @@ ReturnValue_t AcsBoardAssembly::handleNormalOrOnModeCmd(Mode_t mode, Submode_t s
|
|||||||
if (gpioIF->pullHigh(gpioIds::GNSS_1_NRESET) != HasReturnvaluesIF::RETURN_OK) {
|
if (gpioIF->pullHigh(gpioIds::GNSS_1_NRESET) != HasReturnvaluesIF::RETURN_OK) {
|
||||||
#if OBSW_VERBOSE_LEVEL >= 1
|
#if OBSW_VERBOSE_LEVEL >= 1
|
||||||
sif::error << "AcsBoardAssembly::handleNormalOrOnModeCmd: Could not pull nReset pin"
|
sif::error << "AcsBoardAssembly::handleNormalOrOnModeCmd: Could not pull nReset pin"
|
||||||
"of GNSS 1 high (used GNSS)" << std::endl;
|
"of GNSS 1 high (used GNSS)"
|
||||||
|
<< std::endl;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
if (gpioIF->pullLow(gpioIds::GNSS_0_NRESET) != HasReturnvaluesIF::RETURN_OK) {
|
if (gpioIF->pullLow(gpioIds::GNSS_0_NRESET) != HasReturnvaluesIF::RETURN_OK) {
|
||||||
#if OBSW_VERBOSE_LEVEL >= 1
|
#if OBSW_VERBOSE_LEVEL >= 1
|
||||||
sif::error << "AcsBoardAssembly::handleNormalOrOnModeCmd: Could not pull nReset pin"
|
sif::error << "AcsBoardAssembly::handleNormalOrOnModeCmd: Could not pull nReset pin"
|
||||||
"of GNSS 0 low (unused GNSS)" << std::endl;
|
"of GNSS 0 low (unused GNSS)"
|
||||||
|
<< std::endl;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
if (gpioIF->pullHigh(gpioIds::GNSS_SELECT) != HasReturnvaluesIF::RETURN_OK) {
|
if (gpioIF->pullHigh(gpioIds::GNSS_SELECT) != HasReturnvaluesIF::RETURN_OK) {
|
||||||
|
Loading…
Reference in New Issue
Block a user