X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=client%2Fmain.c;h=18182389236e0ba2a4757b3b710c0d20324d6a03;hb=c3bb3dde2bb886a9f86f9de5f4f96beb8d86b53d;hp=337834fabceb1b96076eba27d1c3f2516b312ec2;hpb=4f2bcb0778dca37ec53ebd6ca087554c19672849;p=mTask.git diff --git a/client/main.c b/client/main.c index 337834f..1818238 100644 --- a/client/main.c +++ b/client/main.c @@ -74,21 +74,21 @@ void loop(void) // debug("Task %d not implemented\n", ct); continue; } - //See whether the task interval has passed - if(cyclestart-curtask->lastrun < curtask->interval){ -// debug("Task %d not scheduled\n", ct); - continue; - } - debug("Current task to run: %d", ct); - run_task(curtask); - curtask->lastrun = cyclestart; - if(curtask->interval == 0){ - curtask->used = false; - write_byte('m'); - write_byte('d'); - write_byte('\n'); + //interrupt task + if(is_interrupt_task(curtask) && had_interrupt(curtask)){ + debug("Interrupt task %d not implemented", ct); + 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; } - write_byte('\n'); } }