From 88181d8fb4a4406b1221b216c3e8d42e76e7f986 Mon Sep 17 00:00:00 2001 From: Martin Zietz Date: Tue, 22 Jun 2021 13:48:30 +0200 Subject: [PATCH] rw enable wip --- bsp_q7s/ObjectFactory.cpp | 16 ++++++++-------- bsp_q7s/gpio/gpioCallbacks.cpp | 2 +- mission/devices/RwHandler.cpp | 14 +++++++++----- mission/devices/RwHandler.h | 13 ++++++++++++- 4 files changed, 30 insertions(+), 15 deletions(-) diff --git a/bsp_q7s/ObjectFactory.cpp b/bsp_q7s/ObjectFactory.cpp index f3ecd173..821d94fd 100644 --- a/bsp_q7s/ObjectFactory.cpp +++ b/bsp_q7s/ObjectFactory.cpp @@ -552,18 +552,18 @@ void ObjectFactory::produce(void* args){ new PlocHandler(objects::PLOC_HANDLER, objects::UART_COM_IF, plocUartCookie); GpioCookie* gpioCookieRw = new GpioCookie; - GpioCallback* csRw1 = new GpioCallback(std::string("Chip select reaction wheel 1"), gpio::OUT, + GpioCallback* enRw1 = new GpioCallback(std::string("Chip select reaction wheel 1"), gpio::OUT, 1, &gpioCallbacks::spiCsDecoderCallback, gpioComIF); - gpioCookieRw->addGpio(gpioIds::EN_RW1, csRw1); - GpioCallback* csRw2 = new GpioCallback(std::string("Chip select reaction wheel 2"), gpio::OUT, + gpioCookieRw->addGpio(gpioIds::EN_RW1, enRw1); + GpioCallback* enRw2 = new GpioCallback(std::string("Chip select reaction wheel 2"), gpio::OUT, 1, &gpioCallbacks::spiCsDecoderCallback, gpioComIF); - gpioCookieRw->addGpio(gpioIds::EN_RW2, csRw2); - GpioCallback* csRw3 = new GpioCallback(std::string("Chip select reaction wheel 3"), gpio::OUT, + gpioCookieRw->addGpio(gpioIds::EN_RW2, enRw2); + GpioCallback* enRw3 = new GpioCallback(std::string("Chip select reaction wheel 3"), gpio::OUT, 1, &gpioCallbacks::spiCsDecoderCallback, gpioComIF); - gpioCookieRw->addGpio(gpioIds::EN_RW3, csRw3); - GpioCallback* csRw4 = new GpioCallback(std::string("Chip select reaction wheel 4"), gpio::OUT, + gpioCookieRw->addGpio(gpioIds::EN_RW3, enRw3); + GpioCallback* enRw4 = new GpioCallback(std::string("Chip select reaction wheel 4"), gpio::OUT, 1, &gpioCallbacks::spiCsDecoderCallback, gpioComIF); - gpioCookieRw->addGpio(gpioIds::EN_RW4, csRw4); + gpioCookieRw->addGpio(gpioIds::EN_RW4, enRw4); gpioComIF->addGpios(gpioCookieRw); diff --git a/bsp_q7s/gpio/gpioCallbacks.cpp b/bsp_q7s/gpio/gpioCallbacks.cpp index 7ae2c417..ede2311a 100644 --- a/bsp_q7s/gpio/gpioCallbacks.cpp +++ b/bsp_q7s/gpio/gpioCallbacks.cpp @@ -46,7 +46,7 @@ void initSpiCsDecoder(GpioIF* gpioComIF) { std::string("SPI Mux Bit 6"), gpio::OUT, 0); spiMuxGpios->addGpio(gpioIds::SPI_MUX_BIT_6, spiMuxBit6); GpiodRegular* enRwDecoder = new GpiodRegular(std::string("gpiochip5"), 17, - std::string("EN_RW_CS"), gpio::OUT, 0); + std::string("EN_RW_CS"), gpio::OUT, 1); spiMuxGpios->addGpio(gpioIds::EN_RW_CS, enRwDecoder); result = gpioComInterface->addGpios(spiMuxGpios); diff --git a/mission/devices/RwHandler.cpp b/mission/devices/RwHandler.cpp index f64c3685..c029372b 100644 --- a/mission/devices/RwHandler.cpp +++ b/mission/devices/RwHandler.cpp @@ -4,11 +4,15 @@ #include #include -RwHandler::RwHandler(object_id_t objectId, object_id_t comIF, CookieIF * comCookie) : - DeviceHandlerBase(objectId, comIF, comCookie), temperatureSet(this), statusSet(this) { - if (comCookie == NULL) { - sif::error << "RwHandler: Invalid com cookie" << std::endl; - } +RwHandler::RwHandler(object_id_t objectId, object_id_t comIF, CookieIF * comCookie, + LinuxLibgpioIF* gpioComIF, gpioId_t enableGpio) : + DeviceHandlerBase(objectId, comIF, comCookie), temperatureSet(this), statusSet(this) { + if (comCookie == NULL) { + sif::error << "RwHandler: Invalid com cookie" << std::endl; + } + if (gpioComIF == NULL) { + sif::error << "RwHandler: Invalid gpio communication interface" << std::endl; + } } RwHandler::~RwHandler() { diff --git a/mission/devices/RwHandler.h b/mission/devices/RwHandler.h index 7a5382d7..f68b57b7 100644 --- a/mission/devices/RwHandler.h +++ b/mission/devices/RwHandler.h @@ -18,7 +18,18 @@ class RwHandler: public DeviceHandlerBase { public: - RwHandler(object_id_t objectId, object_id_t comIF, CookieIF * comCookie); + /** + * @brief Constructor + * + * @param objectId + * @param comIF + * @param comCookie + * @param gpioComIF Pointer to gpio communication interface + * @param enablePin GPIO connected to the enable pin of the reaction wheels. Must be pulled + * to high to enable the device. + */ + RwHandler(object_id_t objectId, object_id_t comIF, CookieIF * comCookie, + LinuxLibgpioIF* gpioComIF, gpioId_t enableGpio); virtual ~RwHandler(); static const uint8_t INTERFACE_ID = CLASS_ID::RW_HANDLER;