eive-obsw/archive/gpio/GpioCookie.cpp

33 lines
1.0 KiB
C++
Raw Permalink Normal View History

2021-02-14 12:35:08 +01:00
#include "GpioCookie.h"
2022-01-17 15:58:27 +01:00
2021-03-04 18:29:28 +01:00
#include <fsfw/serviceinterface/ServiceInterface.h>
2021-01-16 12:22:17 +01:00
2022-01-17 15:58:27 +01:00
GpioCookie::GpioCookie() {}
2021-01-16 12:22:17 +01:00
2022-01-17 15:58:27 +01:00
ReturnValue_t GpioCookie::addGpio(gpioId_t gpioId, GpioBase* gpioConfig) {
if (gpioConfig == nullptr) {
sif::debug << "GpioCookie::addGpio: gpioConfig is nullpointer" << std::endl;
return HasReturnvaluesIF::RETURN_FAILED;
}
auto gpioMapIter = gpioMap.find(gpioId);
if (gpioMapIter == gpioMap.end()) {
auto statusPair = gpioMap.emplace(gpioId, gpioConfig);
if (statusPair.second == false) {
2021-03-04 18:29:28 +01:00
#if FSFW_VERBOSE_LEVEL >= 1
2022-01-17 15:58:27 +01:00
sif::error << "GpioCookie::addGpio: Failed to add GPIO " << gpioId << " to GPIO map"
<< std::endl;
2021-03-04 18:29:28 +01:00
#endif
2022-01-17 15:58:27 +01:00
return HasReturnvaluesIF::RETURN_FAILED;
}
return HasReturnvaluesIF::RETURN_OK;
}
2021-03-04 18:29:28 +01:00
#if FSFW_VERBOSE_LEVEL >= 1
2022-01-17 15:58:27 +01:00
sif::error << "GpioCookie::addGpio: GPIO already exists in GPIO map " << std::endl;
2021-03-04 18:29:28 +01:00
#endif
2022-01-17 15:58:27 +01:00
return HasReturnvaluesIF::RETURN_FAILED;
2021-01-16 12:22:17 +01:00
}
2022-01-17 15:58:27 +01:00
GpioMap GpioCookie::getGpioMap() const { return gpioMap; }
2021-01-16 12:22:17 +01:00
GpioCookie::~GpioCookie() {}