#ifndef __AP_PERIODIC_PROCESS_STUB_H__ #define __AP_PERIODIC_PROCESS_STUB_H__ #include "PeriodicProcess.h" #include "../Arduino_Mega_ISR_Registry/Arduino_Mega_ISR_Registry.h" class AP_PeriodicProcessStub : public AP_PeriodicProcess { public: AP_PeriodicProcessStub(uint8_t period = 0); void init( Arduino_Mega_ISR_Registry * isr_reg ); void register_process(ap_procedure proc); void set_failsafe(ap_procedure proc); bool queue_process(ap_procedure proc); // queue process to run as soon as possible after any currently running ap_processes complete. returns true if it ran immediately void suspend_timer(void); void resume_timer(void); bool running(); static void run(void); protected: static uint8_t _period; static void (*_proc)(void); static void (*_failsafe)(void); static void (*_queued_proc)(void); static bool _suspended; }; #endif