In Mbed bzw. dem Arduino Mbed-core gibt es die schöne EventQueue Klasse.
Kennt jemand diese auch für das Arduino Framework für den ESP? Aber
nicht das C event API.
Im Prinzip ist das eine Queue die mit Callbacks gefüllt wird und diese
werden dann vom dispatcher aufgerufen. Zusätzlich gibt es aber noch
geplante Ausführung nach einer angegebenen Zeit, also z.B.
1 | EventQueue q;
|
2 |
|
3 | // Aufruf z.B. in einer ISR
|
4 | q.call(printf, "ping\n");
|
5 | q.call_in(2s, printf, "pong\n");
|
6 |
|
7 | // Abarbeitung in main oder einem Thread
|
8 | q.dispatch_forever();
|
Der Teil mit den callbacks lässt sich vermutlich relativ einfach aus
Mbed übernehmen, nur die Timing Funktionalität geht schon ins System.