updates
[mTask.git] / client / main.c
index 337834f..a7d6098 100644 (file)
@@ -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');
        }
 }
 
@@ -108,7 +108,7 @@ int main(int argc, char *argv[]){
        while(true){
                //Check for newetasks
                loop();
-               delay(50);
+               delay(100);
        }
        return 0;
 }