From 5db4b9cb861f053f35d5e2db1d4d490548cdbbd7 Mon Sep 17 00:00:00 2001 From: Jakob Meier Date: Mon, 28 Mar 2022 09:30:37 +0200 Subject: [PATCH] gpio dummy if --- test/gpio/CMakeLists.txt | 7 +++++++ test/gpio/DummyGpioIF.cpp | 24 ++++++++++++++++++++++++ test/gpio/DummyGpioIF.h | 16 ++++++++++++++++ test/gpio/GpioDummy.h | 30 ++++++++++++++++++++++++++++++ 4 files changed, 77 insertions(+) create mode 100644 test/gpio/CMakeLists.txt create mode 100644 test/gpio/DummyGpioIF.cpp create mode 100644 test/gpio/DummyGpioIF.h create mode 100644 test/gpio/GpioDummy.h diff --git a/test/gpio/CMakeLists.txt b/test/gpio/CMakeLists.txt new file mode 100644 index 00000000..880f097c --- /dev/null +++ b/test/gpio/CMakeLists.txt @@ -0,0 +1,7 @@ +target_sources(${OBSW_NAME} PUBLIC + DummyGpioIF.cpp +) + +target_include_directories(${OBSW_NAME} PUBLIC + ${CMAKE_CURRENT_SOURCE_DIR} +) \ No newline at end of file diff --git a/test/gpio/DummyGpioIF.cpp b/test/gpio/DummyGpioIF.cpp new file mode 100644 index 00000000..04c52b35 --- /dev/null +++ b/test/gpio/DummyGpioIF.cpp @@ -0,0 +1,24 @@ +#include "DummyGpioIF.h" + +DummyGpioIF::DummyGpioIF() { +} + +DummyGpioIF::~DummyGpioIF() { +} + +ReturnValue_t DummyGpioIF::addGpios(GpioCookie* cookie) { + return RETURN_OK; +} + +ReturnValue_t DummyGpioIF::pullHigh(gpioId_t gpioId) { + return RETURN_OK; +} + +ReturnValue_t DummyGpioIF::pullLow(gpioId_t gpioId) { + return RETURN_OK; +} + +ReturnValue_t DummyGpioIF::readGpio(gpioId_t gpioId, int* gpioState) { + *gpioState = 0; + return RETURN_OK; +} diff --git a/test/gpio/DummyGpioIF.h b/test/gpio/DummyGpioIF.h new file mode 100644 index 00000000..e6037628 --- /dev/null +++ b/test/gpio/DummyGpioIF.h @@ -0,0 +1,16 @@ +#ifndef TEST_GPIO_DUMMYGPIOIF_H_ +#define TEST_GPIO_DUMMYGPIOIF_H_ + +#include "fsfw_hal/common/gpio/GpioIF.h" + +class DummyGpioIF : public GpioIF { + public: + DummyGpioIF(); + virtual ~DummyGpioIF(); + virtual ReturnValue_t addGpios(GpioCookie* cookie); + virtual ReturnValue_t pullHigh(gpioId_t gpioId); + virtual ReturnValue_t pullLow(gpioId_t gpioId); + virtual ReturnValue_t readGpio(gpioId_t gpioId, int* gpioState); +}; + +#endif /* TEST_GPIO_DUMMYGPIOIF_H_ */ diff --git a/test/gpio/GpioDummy.h b/test/gpio/GpioDummy.h new file mode 100644 index 00000000..5c43975d --- /dev/null +++ b/test/gpio/GpioDummy.h @@ -0,0 +1,30 @@ +#ifndef TEST_GPIODUMMY_H_ +#define TEST_GPIODUMMY_H_ + +#include "fsfw_hal/common/gpio/GpioIF.h" +#include "fsfw_hal/common/gpio/gpioDefinitions.h" + +/** + * @brief Additional abstraction layer for handling GPIOs. + * + * @author J. Meier + */ +class Gpio { + public: + Gpio(gpioId_t gpioId, GpioIF* gpioIF) : gpioId(gpioId), gpioIF(gpioIF) { + if (gpioIF == nullptr) { + sif::error << "Gpio::Gpio: Invalid GpioIF" << std::endl; + } + } + ReturnValue_t pullHigh() { + return gpioIF->pullHigh(gpioId); + } + ReturnValue_t pullLow() { + return gpioIF->pullLow(gpioId); + } + private: + gpioId_t gpioId = gpio::NO_GPIO; + GpioIF* gpioIF = nullptr; +}; + +#endif /* TEST_GPIODUMMY_H_ */