#include "STM32TestTask.h" #include "stm32h7xx_nucleo.h" #include "OBSWConfig.h" #include "fsfw_hal/stm32h7/devicetest/GyroL3GD20H.h" #include "fsfw/serviceinterface/ServiceInterface.h" STM32TestTask::STM32TestTask(object_id_t objectId, bool enablePrintout, bool blinkyLed): TestTask(objectId, enablePrintout), blinkyLed(blinkyLed) { } ReturnValue_t STM32TestTask::performPeriodicAction() { if(blinkyLed) { #if OBSW_ETHERNET_USE_LEDS == 0 BSP_LED_Toggle(LED1); BSP_LED_Toggle(LED2); #endif BSP_LED_Toggle(LED3); } return TestTask::performPeriodicAction(); } ReturnValue_t STM32TestTask::performOneShotAction() { // Might be confusing but if this is defined to 1, the real device handler is tested and we // should not mess with the SPI bus #if OBSW_PERFORM_L3GD20H_TEST == 0 performSpiL3gd20hTest(); #endif return HasReturnvaluesIF::RETURN_OK; } void STM32TestTask::performSpiL3gd20hTest() { SPI_HandleTypeDef spiHandle = {}; GyroL3GD20H gyroDevice(&spiHandle, spi::TransferModes::POLLING); gyroDevice.initialize(); gyroDevice.performOperation(); }