Sergei G
/
JobSchedulerDemo
run once and run periodic example work
Diff: source/main.cpp
- Revision:
- 9:27e0a0dd98d1
- Parent:
- 8:8a65353ec8f3
diff -r 8a65353ec8f3 -r 27e0a0dd98d1 source/main.cpp --- a/source/main.cpp Fri Jul 14 00:01:13 2017 +0000 +++ b/source/main.cpp Wed Aug 02 22:04:02 2017 +0000 @@ -28,6 +28,21 @@ printf("Job B\n"); } +void printJobs(JobScheduler::Scheduler& scheduler) +{ + LinkedList<JobScheduler::Job> jobs; + scheduler.JobList(jobs); + printf(" Job List:\n"); + node<JobScheduler::Job>* jn = jobs.pop(1); + while (jn != NULL) { + printf("Job ID: %d\n", jn->data->GetID()); + jobs.remove(1); + jn = jobs.pop(1); + } + printf(" Job List Completed\n"); +} + + void runScheduler() { /* Setup tracing */ @@ -77,18 +92,25 @@ time_t nowSecs = time(NULL); JobScheduler::Response<JobScheduler::JobID> res = scheduler.JobAdd(1, new JobScheduler::RunOnceSchedule(nowSecs + 2), NULL); printf("job A add response error: %d, jobID: %d\n", res.error, res.data); + + printJobs(scheduler); wait(5); printf("periodic with 2 sec period and limit 3\n"); res = scheduler.JobAdd(2, new JobScheduler::RunPeriodicSchedule(2, 3), NULL); printf("job B add response error: %d, jobID: %d\n", res.error, res.data); + printJobs(scheduler); wait(10); + printJobs(scheduler); scheduler.Stop(); scheduler.WaitToStop(); } int main() { + Serial pc(USBTX, USBRX); + pc.baud(115200); + printf("\nJob Scheduler Demo\n"); runScheduler(); printf("done\n");