From 8edc956ec86de1e8f8048b1199c5bbc9b799d485 Mon Sep 17 00:00:00 2001 From: IRS Cleanroom Laptop Date: Thu, 1 Apr 2021 15:48:30 +0200 Subject: [PATCH] gpio cookie update --- common/gpio/GpioCookie.cpp | 33 ++++++++++++++++++--------------- common/gpio/GpioCookie.h | 3 ++- 2 files changed, 20 insertions(+), 16 deletions(-) diff --git a/common/gpio/GpioCookie.cpp b/common/gpio/GpioCookie.cpp index f957d07..f8f4e8c 100644 --- a/common/gpio/GpioCookie.cpp +++ b/common/gpio/GpioCookie.cpp @@ -1,30 +1,33 @@ #include "GpioCookie.h" #include - GpioCookie::GpioCookie() { } -ReturnValue_t GpioCookie::addGpio(gpioId_t gpioId, GpiodRegular& gpioConfig){ - auto gpioMapIter = gpioMap.find(gpioId); - if(gpioMapIter == gpioMap.end()) { - auto statusPair = gpioMap.emplace(gpioId, new GpiodRegular(gpioConfig)); - if (statusPair.second == false) { +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) { #if FSFW_VERBOSE_LEVEL >= 1 - sif::error << "GpioCookie::addGpio: Failed to add GPIO " << gpioId << - "to GPIO map" << std::endl; + sif::error << "GpioCookie::addGpio: Failed to add GPIO " << gpioId << + " to GPIO map" << std::endl; #endif - return HasReturnvaluesIF::RETURN_FAILED; - } - return HasReturnvaluesIF::RETURN_OK; - } + return HasReturnvaluesIF::RETURN_FAILED; + } + return HasReturnvaluesIF::RETURN_OK; + } #if FSFW_VERBOSE_LEVEL >= 1 - sif::error << "GpioCookie::addGpio: GPIO already exists in GPIO map " << std::endl; + sif::error << "GpioCookie::addGpio: GPIO already exists in GPIO map " << std::endl; #endif - return HasReturnvaluesIF::RETURN_FAILED; + return HasReturnvaluesIF::RETURN_FAILED; } GpioMap GpioCookie::getGpioMap() const { - return gpioMap; + return gpioMap; } GpioCookie::~GpioCookie() {} diff --git a/common/gpio/GpioCookie.h b/common/gpio/GpioCookie.h index c7721a9..4a865a3 100644 --- a/common/gpio/GpioCookie.h +++ b/common/gpio/GpioCookie.h @@ -23,7 +23,8 @@ public: virtual ~GpioCookie(); - ReturnValue_t addGpio(gpioId_t gpioId, GpiodRegular& gpioConfig); + ReturnValue_t addGpio(gpioId_t gpioId, GpioBase* gpioConfig); + /** * @brief Get map with registered GPIOs. */