22 #include <arpirobot/core/device/BaseDevice.hpp>
23 #include <arpirobot/core/robot/RobotProfile.hpp>
24 #include <arpirobot/core/scheduler.hpp>
130 static void stopSignalHandler(
int signal);
132 static void ignoreSignalHandler(
int signal);
134 void modeBasedPeriodic();
149 bool isEnabled =
false;
152 std::mutex watchdogMutex;
153 std::chrono::steady_clock::time_point lastWatchdogFeed;
154 bool watchdogDidDisable =
false;
162 static std::vector<BaseDevice*> devices;
163 static std::mutex devicesLock;
164 static bool devicesBeginNow;
173 static std::mutex existsLock;
Definition: BaseDevice.hpp:35
Definition: BaseRobot.hpp:40
virtual void robotDisabled()=0
static void runOnceSoon(const std::function< void()> &&func)
virtual void periodic()=0
virtual void robotEnabled()=0
virtual void robotStarted()=0
virtual void enabledPeriodic()=0
static void removeTaskFromScheduler(std::shared_ptr< Task > task)
static void beginWhenReady(BaseDevice *device)
virtual void disabledPeriodic()=0
static std::shared_ptr< Task > scheduleRepeatedFunction(const std::function< void()> &&func, sched_clk::duration rate)
static void deviceDestroyed(BaseDevice *device)
Definition: scheduler.hpp:93
Definition: ArduinoDevice.hpp:27