-#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+
+#ifndef STM32F767xx
#include <unistd.h>
+#include <stdio.h>
+#endif
-#include "misc.h"
#include "task.h"
+#include "interface.h"
struct task tasks[MAXTASKS];
-uint8_t c;
-void task_init()
+void task_init(void)
{
memset(&tasks, 0, sizeof(struct task)*MAXTASKS);
}
-int task_register(int fd)
+int task_register(void)
{
uint8_t ct;
if(!tasks[ct].used)
break;
if(ct == MAXTASKS)
- die("Trying to add too much tasks...\n");
+ die("Trying to add too much tasks...");
memset(&tasks[ct], 0, sizeof(struct task));
//Read interval
- read16(fd, c, tasks[ct].interval);
+ tasks[ct].interval = read16();
//Read tasklength
- read16(fd, c, tasks[ct].tlen);
+ tasks[ct].tlen = read16();
if(tasks[ct].tlen > MAXTASKSIZE)
- die("Task is too long: %d\n", tasks[ct].tlen);
+ die("Task is too long: %d", tasks[ct].tlen);
//Read task bytecode
- for(int i = 0; i<tasks[ct].tlen; i++){
- read(fd, tasks[ct].bc+i, 1);
- debug("t[][%i]: 0x%02x %d\n", i,
+ for(unsigned int 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\n", tasks[ct].tlen);
+ debug("Received a task of length %d", tasks[ct].tlen);
tasks[ct].used = true;
+ tasks[ct].lastrun = 0L;
+
return ct;
}
-void task_delete(int fd)
+void task_delete(void)
{
- read(fd, &c, 1);
- tasks[c].used = false;
+ tasks[read_byte()].used = false;
}
struct task *task_get(int num)