X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=client%2Fmain.c;h=720fd1a29de98395e45a04ea753667a6c81cdc14;hb=c518754bec4758cce7d899463f9c68612c3bf4e4;hp=f86beff79013463844d7bf19323c6c676559f389;hpb=acd239b3f29e215ade0b63d5b26b6cf8e8ae0d63;p=mTask.git diff --git a/client/main.c b/client/main.c index f86beff..720fd1a 100644 --- a/client/main.c +++ b/client/main.c @@ -11,6 +11,7 @@ #include "interpret.h" #include "mTaskSymbols.h" #include "sds.h" +#include "spec.h" #include "task.h" #include "interface.h" @@ -19,6 +20,7 @@ #define MSG_SDS_SPEC 's' #define MSG_SDS_DEL 'a' #define MSG_SDS_UPD 'u' +#define MSG_SPEC 'c' void read_message(void) { @@ -48,7 +50,12 @@ void read_message(void) debug("Receiving a task"); task_register(); break; + case MSG_SPEC: + debug("Receiving a spec request"); + spec_send(); + break; case '\0': + debug("Server closed connection"); break; case '\n': break; @@ -74,17 +81,19 @@ void loop(void) // debug("Task %d not implemented\n", ct); continue; } - //Onshot task - if(curtask->interval == 0){ - run_task(curtask); - curtask->used = false; - //Interrupt task - } else if(curtask->interval & 32768){ + //interrupt task + if(is_interrupt_task(curtask) && had_interrupt(curtask)){ debug("Interrupt task %d not implemented", ct); - //Interval task, check if interval is passed + run_task(curtask); + //Interval task, and interval passed } else if(cyclestart-curtask->lastrun > curtask->interval){ debug("Running interval task: %d", ct); run_task(curtask); + + //Oneshot task, thus disable + if(curtask->interval == 0){ + curtask->used = false; + } curtask->lastrun = cyclestart; } } @@ -102,11 +111,11 @@ int main(int argc, char *argv[]){ setup(); sds_init(); task_init(); - debug("booting up"); + debug("sending device spec"); while(true){ //Check for newetasks loop(); - delay(50); + delay(100); } return 0; }