forked from ROMEO/obsw
BlinkController is now a own task;
I learned to add a new system object; Blinkers gonna blink; Printers gonna print;
This commit is contained in:
@ -3,7 +3,9 @@
|
|||||||
#include <fsfw/objectmanager/frameworkObjects.h>
|
#include <fsfw/objectmanager/frameworkObjects.h>
|
||||||
#include <fsfw/storagemanager/PoolManager.h>
|
#include <fsfw/storagemanager/PoolManager.h>
|
||||||
#include <fsfw/tmtc/TmManager.h>
|
#include <fsfw/tmtc/TmManager.h>
|
||||||
|
|
||||||
#include <mission/controller/PrintController.h>
|
#include <mission/controller/PrintController.h>
|
||||||
|
#include <mission/controller/BlinkController.h>
|
||||||
|
|
||||||
#include "fsfw/events/EventManager.h"
|
#include "fsfw/events/EventManager.h"
|
||||||
#include "fsfw/health/HealthTable.h"
|
#include "fsfw/health/HealthTable.h"
|
||||||
@ -60,4 +62,5 @@ void ObjectFactory::produce(void *args) {
|
|||||||
new TmManager(objects::TM_MANAGER);
|
new TmManager(objects::TM_MANAGER);
|
||||||
|
|
||||||
new PrintController(123);
|
new PrintController(123);
|
||||||
|
new BlinkController(124);
|
||||||
}
|
}
|
||||||
|
@ -7,6 +7,7 @@ BlinkController::BlinkController(object_id_t setObjectId)
|
|||||||
|
|
||||||
ReturnValue_t BlinkController::initialize() {
|
ReturnValue_t BlinkController::initialize() {
|
||||||
ReturnValue_t result = SystemObject::initialize();
|
ReturnValue_t result = SystemObject::initialize();
|
||||||
|
printf("Initializing Blinking");
|
||||||
if (result != returnvalue::OK) {
|
if (result != returnvalue::OK) {
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@ -15,12 +16,16 @@ ReturnValue_t BlinkController::initialize() {
|
|||||||
config.DeviceId = 4; // chosen by fair dice throw
|
config.DeviceId = 4; // chosen by fair dice throw
|
||||||
config.BaseAddr = XPS_GPIO_BASEADDR;
|
config.BaseAddr = XPS_GPIO_BASEADDR;
|
||||||
s32 returncode = XGpioPs_CfgInitialize(&gpio, &config, XPS_GPIO_BASEADDR);
|
s32 returncode = XGpioPs_CfgInitialize(&gpio, &config, XPS_GPIO_BASEADDR);
|
||||||
|
printf("Configured XGPIO");
|
||||||
if (returncode != 0) {
|
if (returncode != 0) {
|
||||||
return returnvalue::FAILED;
|
return returnvalue::FAILED;
|
||||||
}
|
}
|
||||||
XGpioPs_SetDirection(&gpio, 0, (1 << 7));
|
XGpioPs_SetDirection(&gpio, 0, (1 << 7));
|
||||||
XGpioPs_SetOutputEnable(&gpio, 0, (1 << 7));
|
XGpioPs_SetOutputEnable(&gpio, 0, (1 << 7));
|
||||||
XGpioPs_WritePin(&gpio, 7, 1);
|
XGpioPs_WritePin(&gpio, 7, 1);
|
||||||
|
printf("Blinking is initialized");
|
||||||
|
XGpioPs_WritePin(&gpio, 7, 0);
|
||||||
|
printf("Value written once");
|
||||||
return returnvalue::OK;
|
return returnvalue::OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <xgpiops.h>
|
|
||||||
|
|
||||||
#include <fsfw/objectmanager/SystemObject.h>
|
#include <fsfw/objectmanager/SystemObject.h>
|
||||||
#include <fsfw/tasks/ExecutableObjectIF.h>
|
#include <fsfw/tasks/ExecutableObjectIF.h>
|
||||||
|
|
||||||
|
#include <xgpiops.h>
|
||||||
|
|
||||||
class BlinkController: public SystemObject, public ExecutableObjectIF {
|
class BlinkController: public SystemObject, public ExecutableObjectIF {
|
||||||
public:
|
public:
|
||||||
|
@ -208,16 +208,17 @@ void mission(void *){
|
|||||||
currPrio = 2;
|
currPrio = 2;
|
||||||
|
|
||||||
PeriodicTaskIF* controllerTask = taskFactory->createPeriodicTask(
|
PeriodicTaskIF* controllerTask = taskFactory->createPeriodicTask(
|
||||||
"controller", currPrio, PeriodicTaskIF::MINIMUM_STACK_SIZE, 1, nullptr);
|
"controller", currPrio, PeriodicTaskIF::MINIMUM_STACK_SIZE, 2, nullptr);
|
||||||
controllerTask->addComponent(123);
|
controllerTask->addComponent(123);
|
||||||
|
|
||||||
printf("Created Tasks\n");
|
printf("Created Tasks\n");
|
||||||
|
|
||||||
controllerTask->startTask();
|
controllerTask->startTask();
|
||||||
|
|
||||||
|
currPrio = 3;
|
||||||
|
|
||||||
PeriodicTaskIF* blinkTask = taskFactory->createPeriodicTask(
|
PeriodicTaskIF* blinkTask = taskFactory->createPeriodicTask(
|
||||||
"controllerBlink", currPrio, PeriodicTaskIF::MINIMUM_STACK_SIZE, 1, nullptr);
|
"blink", currPrio, PeriodicTaskIF::MINIMUM_STACK_SIZE, 1, nullptr);
|
||||||
blinkTask->addComponent(124);
|
blinkTask->addComponent(124);
|
||||||
|
|
||||||
printf("Created Tasks\n");
|
printf("Created Tasks\n");
|
||||||
|
Reference in New Issue
Block a user