10 #include "interpret.h"
11 #include "mTaskSymbols.h"
15 #include "interface.h"
17 #define MSG_GET_TASK 't'
18 #define MSG_DEL_TASK 'd'
19 #define MSG_SDS_SPEC 's'
20 #define MSG_SDS_DEL 'a'
21 #define MSG_SDS_UPD 'u'
26 void read_message(void)
29 if (input_available()) {
30 uint8_t c = read_byte();
31 debug("Receiving input: %c %02x\n", c, c);
34 debug("Receiving an sds");
38 debug("Receiving an sds update");
39 //TODO do something with the return value
44 debug("Receiving a delete SDS request");
52 debug("Receiving a delete task request");
55 //Write acknowledgement
61 debug("Receiving a task");
65 debug("Receiving a spec request");
69 debug("Server closed connection");
74 debug("Unknown message: %X", c);
81 unsigned long loopmillis = 0;
84 #if defined ARDUINO_ESP8266_NODEMCU || defined ARDUINO_AVR_UNO
85 if (getmillis() - loopmillis < LOOPDELAY) {
88 loopmillis = getmillis();
93 unsigned long cyclestart = getmillis();
94 for (struct task *t = task_head(); t != NULL; t = task_next(t)) {
96 if (is_interrupt_task(t) && had_interrupt(t)) {
97 debug("Interrupt task %d not implemented", t->taskid);
99 //Interval task, and interval passed
100 } else if (cyclestart - t->lastrun > t->interval) {
101 debug("Running interval task: %d", t->taskid);
104 //Oneshot task, thus disable
105 if (t->interval == 0) {
106 task_delete(t->taskid);
108 t->lastrun = cyclestart;
115 #elif defined ARDUINO_ESP8266_NODEMCU || defined ARDUINO_AVR_UNO
118 int main(int argc, char *argv[]) {
123 //Initialize device independant functionality
126 #if !defined(ARDUINO_ESP8266_NODEMCU) && !defined(ARDUINO_AVR_UNO)