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 
16 const long MIN_YIELD_TIME_MS = 1;
17 
22 const int DEFAULT_MAX_TASKS = 20;
23 
24 class Executive {
25 
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), unsigned long timeToNext_ms = 0);
36  int addOneShotTask(void (*doTask)(void), unsigned long timeToNext_ms = 0);
37 
38  int enableTask(int taskNo);
39  int disableTask(int taskNo);
40  int modifyTaskInterval(int taskNo, unsigned long interval_ms);
41  int modifyTaskNextRun(int taskNo, unsigned long timeToNext_ms);
42  int removeTask(int taskNo);
43 
44  void yield(void);
45  void delay(unsigned long delay_ms);
46  void loop(void);
47 };
48 
49 #if !defined(NO_GLOBAL_INSTANCES)
50 extern Executive Exec;
51 #endif
52 
53 #endif /* EXECUTIVE_H_ */
~Executive()
Definition: Executive.cpp:40
void loop(void)
Definition: Executive.cpp:117
int modifyTaskInterval(int taskNo, unsigned long interval_ms)
Definition: Executive.cpp:268
void delay(unsigned long delay_ms)
Definition: Executive.cpp:171
const unsigned long DELAY_FOREVER
Definition: Executive.h:30
const int DEFAULT_MAX_TASKS
Definition: Executive.h:22
int disableTask(int taskNo)
Definition: Executive.cpp:249
int addTask(unsigned long interval_ms, void(*doTask)(void), unsigned long timeToNext_ms=0)
Definition: Executive.cpp:54
void yield(void)
Definition: Executive.cpp:108
int addOneShotTask(void(*doTask)(void), unsigned long timeToNext_ms=0)
Definition: Executive.cpp:83
int removeTask(int taskNo)
Definition: Executive.cpp:314
Definition: Executive.h:24
int modifyTaskNextRun(int taskNo, unsigned long timeToNext_ms)
Definition: Executive.cpp:289
const long MIN_YIELD_TIME_MS
Definition: Executive.h:16
Executive(int maxTasks=DEFAULT_MAX_TASKS)
Definition: Executive.cpp:27
Executive Exec
int enableTask(int taskNo)
Definition: Executive.cpp:232