1#include "../../Inc/Systems/ControllerSystem.h"
2#include "../../Inc/Utils/Common.h"
3#include "../../Inc/Utils/Updateable.h"
4#include "../../Inc/Scheduler/Task.h"
10 controller->
type = type;
20 controller->
child = child;
26 printf(
"Cannot add more monitors to the controller\n");
35 if (controller->
monitors[i] == monitor) {
43 printf(
"Monitor not found in the controller\n");
72 printf(
"Controller not computed new value\n");
77 printf(
"No monitors set for Controller\n");
int c_defaultRemoveMonitor(ControllerSystem *controller, MonitorSystem *monitor)
Removes a monitor from the controller.
void initControllerSystem(ControllerSystem *controller, const char *name, int hz, ControllerType type, int(*updateController)(ControllerSystem *controller), void *child)
Initializes the Controller System with initial settings.
int c_defaultAddMonitor(ControllerSystem *controller, MonitorSystem *monitor)
Adds a monitor to the controller.
int c_defaultUpdate(Updateable *updateable)
Default update function for ControllerSystem objects.
int c_defaultSafety(ControllerSystem *controller)
Default safety function for ControllerSystem objects.
void initSystem(System *system, const char *name, int hz, SystemType type, void *child)
Initializes a System object.
MonitorSystem * monitors[MAX_MONITORS]
int(* addMonitor)(struct ControllerSystem *controller, MonitorSystem *monitor)
int(* safety)(struct ControllerSystem *controller)
int(* updateController)(struct ControllerSystem *controller)
int(* removeMonitor)(struct ControllerSystem *controller, MonitorSystem *monitor)
int(* runMonitor)(void *self)
int(* update)(struct Updateable *self)