X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=client%2Fclient.c;h=b501e0fc1b15f6fc528b6a7a02130aad3e644c61;hb=cc93aff1c0867a33c41b4120c001b407d1b8850a;hp=0218fb7a4c7e438477fb100eecb7b12d8e959027;hpb=8246c6551faa818be7a58638dbbc2e521f21c454;p=mTask.git diff --git a/client/client.c b/client/client.c index 0218fb7..b501e0f 100644 --- a/client/client.c +++ b/client/client.c @@ -37,15 +37,25 @@ void read_message(void) case MSG_SDS_UPD: debug("Receiving an sds update"); //TODO do something with the return value - sds_update(); + c = read16(); + sds_update(c); break; case MSG_SDS_DEL: debug("Receiving a delete SDS request"); - sds_delete(); + c = read16(); + sds_delete(c); + write_byte('a'); + write16(c); + write_byte('\n'); break; case MSG_DEL_TASK: debug("Receiving a delete task request"); - task_delete(); + c = read16(); + task_delete(c); + //Write acknowledgement + write_byte('d'); + write16(c); + write_byte('\n'); break; case MSG_GET_TASK: debug("Receiving a task"); @@ -63,6 +73,8 @@ void read_message(void) default: debug("Unknown message: %X", c); } + } else { +// debug("No input"); } } @@ -73,36 +85,27 @@ void loop(void) if(getmillis()-loopmillis < LOOPDELAY){ return; } + loopmillis = getmillis(); #endif - - int ct; - long cyclestart; - struct task *curtask; - read_message(); //Run tasks - cyclestart = getmillis(); - for(ct = 0; cttaskid); + run_task(t); //Interval task, and interval passed - } else if(cyclestart-curtask->lastrun > curtask->interval){ - debug("Running interval task: %d", ct); - run_task(curtask); + } else if(cyclestart-t->lastrun > t->interval){ + debug("Running interval task: %d", t->taskid); + run_task(t); //Oneshot task, thus disable - if(curtask->interval == 0){ - curtask->used = false; + if(t->interval == 0){ + task_delete(t->taskid); } - curtask->lastrun = cyclestart; + t->lastrun = cyclestart; } } } @@ -117,11 +120,8 @@ int main(int argc, char *argv[]){ gargv = argv; #endif - //Initialize systems + //Initialize device independant functionality real_setup(); - sds_init(); - task_init(); - debug("sending device spec"); #ifndef ARDUINO_ESP8266_NODEMCU while(true){