From 809c41a4d7fe47c2bf6cd109c0fb65ebd382fa8f Mon Sep 17 00:00:00 2001 From: Paul Nehlich Date: Fri, 22 Sep 2023 13:18:15 +0200 Subject: [PATCH] blinking task --- mission/CMakeLists.txt | 2 +- mission/controller/BlinkController.cpp | 33 ++++++++++++++++++++++++++ mission/controller/BlinkController.h | 20 ++++++++++++++++ mission/controller/PrintController.cpp | 14 ----------- mission/controller/PrintController.h | 4 ---- mission/main.cpp | 12 +++++++++- 6 files changed, 65 insertions(+), 20 deletions(-) create mode 100644 mission/controller/BlinkController.cpp create mode 100644 mission/controller/BlinkController.h diff --git a/mission/CMakeLists.txt b/mission/CMakeLists.txt index fe377c2..36c1cd7 100644 --- a/mission/CMakeLists.txt +++ b/mission/CMakeLists.txt @@ -1 +1 @@ -target_sources(${TARGET_NAME} PRIVATE main.cpp controller/PrintController.cpp) \ No newline at end of file +target_sources(${TARGET_NAME} PRIVATE main.cpp controller/PrintController.cpp controller/BlinkController.cpp) \ No newline at end of file diff --git a/mission/controller/BlinkController.cpp b/mission/controller/BlinkController.cpp new file mode 100644 index 0000000..9cb8edc --- /dev/null +++ b/mission/controller/BlinkController.cpp @@ -0,0 +1,33 @@ +#include "BlinkController.h" + +#include + +BlinkController::BlinkController(object_id_t setObjectId) + : SystemObject(setObjectId) {} + +ReturnValue_t BlinkController::initialize() { + ReturnValue_t result = SystemObject::initialize(); + if (result != returnvalue::OK) { + return result; + } + + XGpioPs_Config config; + config.DeviceId = 4; // chosen by fair dice throw + config.BaseAddr = XPS_GPIO_BASEADDR; + s32 returncode = XGpioPs_CfgInitialize(&gpio, &config, XPS_GPIO_BASEADDR); + if (returncode != 0) { + return returnvalue::FAILED; + } + XGpioPs_SetDirection(&gpio, 0, (1 << 7)); + XGpioPs_SetOutputEnable(&gpio, 0, (1 << 7)); + XGpioPs_WritePin(&gpio, 7, 1); + return returnvalue::OK; +} + +ReturnValue_t BlinkController::performOperation(uint8_t operationCode) { + printf("blinking\n"); + static int pinvalue = 1; + pinvalue = pinvalue ^ 1; + XGpioPs_WritePin(&gpio, 7, pinvalue); + return returnvalue::OK; +} diff --git a/mission/controller/BlinkController.h b/mission/controller/BlinkController.h new file mode 100644 index 0000000..b7c23b7 --- /dev/null +++ b/mission/controller/BlinkController.h @@ -0,0 +1,20 @@ +#pragma once + +#include + +#include +#include + + +class BlinkController: public SystemObject, public ExecutableObjectIF { + public: + BlinkController(object_id_t setObjectId); + virtual ~BlinkController() = default; + + ReturnValue_t initialize() override; + + ReturnValue_t performOperation(uint8_t operationCode) override; + + private: + XGpioPs gpio; +}; \ No newline at end of file diff --git a/mission/controller/PrintController.cpp b/mission/controller/PrintController.cpp index 5613e03..e2818d6 100644 --- a/mission/controller/PrintController.cpp +++ b/mission/controller/PrintController.cpp @@ -10,24 +10,10 @@ ReturnValue_t PrintController::initialize() { if (result != returnvalue::OK) { return result; } - - XGpioPs_Config config; - config.DeviceId = 4; // chosen by fair dice throw - config.BaseAddr = XPS_GPIO_BASEADDR; - s32 returncode = XGpioPs_CfgInitialize(&gpio, &config, XPS_GPIO_BASEADDR); - if (returncode != 0) { - return returnvalue::FAILED; - } - XGpioPs_SetDirection(&gpio, 0, (1 << 7)); - XGpioPs_SetOutputEnable(&gpio, 0, (1 << 7)); - XGpioPs_WritePin(&gpio, 7, 1); return returnvalue::OK; } ReturnValue_t PrintController::performOperation(uint8_t operationCode) { printf("running\n"); - static int pinvalue = 1; - pinvalue = pinvalue ^ 1; - XGpioPs_WritePin(&gpio, 7, pinvalue); return returnvalue::OK; } diff --git a/mission/controller/PrintController.h b/mission/controller/PrintController.h index 04e48e8..04d4477 100644 --- a/mission/controller/PrintController.h +++ b/mission/controller/PrintController.h @@ -1,7 +1,5 @@ #pragma once -#include - #include #include @@ -15,6 +13,4 @@ class PrintController: public SystemObject, public ExecutableObjectIF { ReturnValue_t performOperation(uint8_t operationCode) override; - private: - XGpioPs gpio; }; \ No newline at end of file diff --git a/mission/main.cpp b/mission/main.cpp index 21a45e6..909c40e 100644 --- a/mission/main.cpp +++ b/mission/main.cpp @@ -212,11 +212,21 @@ void mission(void *){ controllerTask->addComponent(123); printf("Created Tasks\n"); - + controllerTask->startTask(); + + + PeriodicTaskIF* blinkTask = taskFactory->createPeriodicTask( + "controllerBlink", currPrio, PeriodicTaskIF::MINIMUM_STACK_SIZE, 1, nullptr); + blinkTask->addComponent(124); + + printf("Created Tasks\n"); + + blinkTask->startTask(); printf("Started Tasks, deleting init task\n"); + vTaskDelete(nullptr); } /*-----------------------------------------------------------*/