ardupilot/libraries/AP_PeriodicProcess/AP_PeriodicProcessStub.h

30 lines
1.1 KiB
C++

#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