eive-obsw/linux/gpio/GpioCookie.cpp

31 lines
866 B
C++
Raw Normal View History

2021-02-14 12:35:08 +01:00
#include "GpioCookie.h"
2021-02-14 18:21:59 +01:00
#include <fsfw/serviceinterface/ServiceInterface.h>
2021-01-16 12:22:17 +01:00
GpioCookie::GpioCookie() {
}
2021-02-23 13:24:05 +01:00
ReturnValue_t GpioCookie::addGpio(gpioId_t gpioId, GpiodRegular& gpioConfig){
2021-02-14 18:21:59 +01:00
auto gpioMapIter = gpioMap.find(gpioId);
2021-01-16 12:22:17 +01:00
if(gpioMapIter == gpioMap.end()) {
2021-02-23 13:24:05 +01:00
auto statusPair = gpioMap.emplace(gpioId, new GpiodRegular(gpioConfig));
2021-02-14 18:21:59 +01:00
if (statusPair.second == false) {
2021-02-22 17:36:44 +01:00
#if FSFW_VERBOSE_LEVEL >= 1
2021-02-14 18:21:59 +01:00
sif::error << "GpioCookie::addGpio: Failed to add GPIO " << gpioId <<
"to GPIO map" << std::endl;
2021-02-22 17:36:44 +01:00
#endif
return HasReturnvaluesIF::RETURN_FAILED;
2021-01-16 12:22:17 +01:00
}
2021-02-22 17:36:44 +01:00
return HasReturnvaluesIF::RETURN_OK;
2021-01-16 12:22:17 +01:00
}
2021-02-22 17:36:44 +01:00
#if FSFW_VERBOSE_LEVEL >= 1
2021-02-14 18:21:59 +01:00
sif::error << "GpioCookie::addGpio: GPIO already exists in GPIO map " << std::endl;
2021-02-22 17:36:44 +01:00
#endif
return HasReturnvaluesIF::RETURN_FAILED;
2021-01-16 12:22:17 +01:00
}
2021-02-14 18:21:59 +01:00
GpioMap GpioCookie::getGpioMap() const {
2021-01-16 12:22:17 +01:00
return gpioMap;
}
GpioCookie::~GpioCookie() {}