Executive library for Arduino
Executive.h
Go to the documentation of this file.
1 /*
2  * executive.h
3  *
4  * Created on: 26 Jun 2018
5  * Author: j-watson
6  */
7 
8 #ifndef EXECUTIVE_H_
9 #define EXECUTIVE_H_
10 
11 #include "Arduino.h"
12 
17 const long MIN_YIELD_TIME_MS = 1;
18 
23 const int DEFAULT_MAX_TASKS = 10;
24 
25 class Executive {
26  public:
30  const unsigned long DELAY_FOREVER = -1L;
31 
32  Executive(int maxTasks = DEFAULT_MAX_TASKS);
33  ~Executive();
34 
35  int addTask(unsigned long interval_ms, void (*doTask)(void),
36  unsigned long timeToNext_ms = 0);
37  int addOneShotTask(void (*doTask)(void), unsigned long timeToNext_ms = 0);
38 
39  int enableTask(int taskNo);
40  int disableTask(int taskNo);
41  int modifyTaskInterval(int taskNo, unsigned long interval_ms);
42  int modifyTaskNextRun(int taskNo, unsigned long timeToNext_ms);
43  int removeTask(int taskNo);
44 
45  void yield(void);
46  void delay(unsigned long delay_ms);
47  void loop(void);
48 
49  private:
50  int addTask(unsigned long interval_ms, void (*doTask)(void),
51  unsigned long timeToNext_ms, bool oneShot);
52 };
53 
54 #if !defined(NO_GLOBAL_INSTANCES)
55 extern Executive Exec;
56 #endif
57 
58 #endif /* EXECUTIVE_H_ */
~Executive()
Definition: Executive.cpp:111
void loop(void)
Definition: Executive.cpp:197
int modifyTaskInterval(int taskNo, unsigned long interval_ms)
Definition: Executive.cpp:364
void delay(unsigned long delay_ms)
Definition: Executive.cpp:257
const unsigned long DELAY_FOREVER
Definition: Executive.h:30
const int DEFAULT_MAX_TASKS
Definition: Executive.h:23
int disableTask(int taskNo)
Definition: Executive.cpp:341
int addTask(unsigned long interval_ms, void(*doTask)(void), unsigned long timeToNext_ms=0)
Definition: Executive.cpp:163
void yield(void)
Definition: Executive.cpp:190
int addOneShotTask(void(*doTask)(void), unsigned long timeToNext_ms=0)
Definition: Executive.cpp:177
int removeTask(int taskNo)
Definition: Executive.cpp:417
Definition: Executive.h:25
int modifyTaskNextRun(int taskNo, unsigned long timeToNext_ms)
Definition: Executive.cpp:387
const long MIN_YIELD_TIME_MS
Definition: Executive.h:17
Executive(int maxTasks=DEFAULT_MAX_TASKS)
Definition: Executive.cpp:100
Executive Exec
int enableTask(int taskNo)
Definition: Executive.cpp:320