fix if statements and sds publishing
[mTask.git] / int / task.c
index 13fbd07..3b5690a 100644 (file)
@@ -6,7 +6,7 @@
 #include "misc.h"
 #include "task.h"
 
-struct task tasks[MAXTASKS] = {0};
+struct task tasks[MAXTASKS];// = {0};
 uint8_t c;
 
 int task_register(int fd)
@@ -21,23 +21,17 @@ int task_register(int fd)
 
        memset(&tasks[ct], 0, sizeof(struct task));
        //Read interval
-       read(fd, &c, 1);
-       tasks[ct].interval = 256*c;
-       read(fd, &c, 1);
-       tasks[ct].interval += c;
+       read16(fd, c, tasks[ct].interval);
        //Read tasklength
-       read(fd, &c, 1);
-       tasks[ct].tlen = 256*c;
-       read(fd, &c, 1);
-       tasks[ct].tlen += c;
+       read16(fd, c, tasks[ct].tlen);
+
        if(tasks[ct].tlen > MAXTASKSIZE)
                die("Task is too long: %d\n", tasks[ct].tlen);
        //Read task bytecode
        for(int i = 0; i<tasks[ct].tlen; i++){
-               debug("Read %d\n", i);
                read(fd, tasks[ct].bc+i, 1);
-               debug("t[][%i]: %d\n", i,
-                       tasks[ct].bc[i]);
+               debug("t[][%i]: 0x%02x %d\n", 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);