#include <stdlib.h>
#include <string.h>
-#ifndef STM
-#include <unistd.h>
-#include <stdio.h>
-#endif
-
#include "task.h"
+#include "spec.h"
#include "interface.h"
struct task tasks[MAXTASKS];
memset(&tasks[ct], 0, sizeof(struct task));
//Read interval
tasks[ct].interval = read16();
+ debug("interval: %d\n", tasks[ct].interval);
+
+ //Interrupt task
+ if(is_interrupt_task(&tasks[ct])) {
+
+ }
+
//Read tasklength
tasks[ct].tlen = read16();
debug("task interval: %d, length: %d\n",
//Read task bytecode
for(i = 0; i<tasks[ct].tlen; i++){
tasks[ct].bc[i] = read_byte();
-// debug("t[][%i]: 0x%02x %d", i,
-// tasks[ct].bc[i], tasks[ct].bc[i]);
}
//Return the task number for later removal
debug("Received a task of length %d", tasks[ct].tlen);
write_byte('\n');
}
+bool is_interrupt_task(struct task *t)
+{
+ return t->interval & (2 <<14);
+}
+
+bool had_interrupt(struct task* t)
+{
+ //Not implemented yet...
+ return false;
+ (void)t;
+}
+
void task_delete(void)
{
- uint8_t c = read_byte();
+ uint8_t c = read16();
tasks[c].used = false;
write_byte('d');
write16(c);