update reset pin handling
Some checks are pending
EIVE/eive-obsw/pipeline/head Build started...

This commit is contained in:
2022-05-25 10:59:20 +02:00
parent d870f5ab10
commit 01bac87afb
6 changed files with 23 additions and 13 deletions

View File

@ -1,9 +1,14 @@
#include "gnssCallback.h"
#include "fsfw/action/HasActionsIF.h"
#include "devices/gpioIds.h"
#include "fsfw/tasks/TaskFactory.h"
ReturnValue_t gps::triggerGpioResetPin(void* args) {
ReturnValue_t gps::triggerGpioResetPin(const uint8_t* actionData, size_t len, void* args) {
// At least one byte which denotes which GPS to reset is required
if(len < 1 or actionData == nullptr) {
return HasActionsIF::INVALID_PARAMETERS;
}
ResetArgs* resetArgs = reinterpret_cast<ResetArgs*>(args);
if (args == nullptr) {
return HasReturnvaluesIF::RETURN_FAILED;
@ -12,11 +17,10 @@ ReturnValue_t gps::triggerGpioResetPin(void* args) {
return HasReturnvaluesIF::RETURN_FAILED;
}
gpioId_t gpioId;
if (resetArgs->gnss1) {
gpioId = gpioIds::GNSS_1_NRESET;
} else {
if (actionData[0] == 0) {
gpioId = gpioIds::GNSS_0_NRESET;
} else {
gpioId = gpioIds::GNSS_1_NRESET;
}
resetArgs->gpioComIF->pullLow(gpioId);
TaskFactory::delayTask(resetArgs->waitPeriodMs);