run once and run periodic example work

Dependencies:   JobScheduler

Committer:
sgnezdov
Date:
Tue Jul 11 23:13:07 2017 +0000
Revision:
6:b0bca03d9f3a
Parent:
5:79cbf6d8b5f0
Child:
8:8a65353ec8f3
added periodic job and it works

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sgnezdov 0:728722f45131 1 #include "mbed.h"
sgnezdov 0:728722f45131 2 #include "scheduler.h"
sgnezdov 0:728722f45131 3 #include "LinkedList.h"
sgnezdov 0:728722f45131 4 #include "jobService.h"
sgnezdov 2:4fe42e3bafe4 5 #include "schedules.h"
sgnezdov 0:728722f45131 6
sgnezdov 6:b0bca03d9f3a 7 void jobA()
sgnezdov 0:728722f45131 8 {
sgnezdov 6:b0bca03d9f3a 9 printf("Job A\n");
sgnezdov 6:b0bca03d9f3a 10 }
sgnezdov 6:b0bca03d9f3a 11
sgnezdov 6:b0bca03d9f3a 12 void jobB()
sgnezdov 6:b0bca03d9f3a 13 {
sgnezdov 6:b0bca03d9f3a 14 printf("Job B\n");
sgnezdov 0:728722f45131 15 }
sgnezdov 0:728722f45131 16
sgnezdov 0:728722f45131 17 void runScheduler()
sgnezdov 0:728722f45131 18 {
sgnezdov 0:728722f45131 19 JobScheduler::JobService js;
sgnezdov 0:728722f45131 20 JobScheduler::Scheduler scheduler(&js);
sgnezdov 0:728722f45131 21
sgnezdov 6:b0bca03d9f3a 22 js.Register(1, jobA);
sgnezdov 6:b0bca03d9f3a 23 js.Register(2, jobB);
sgnezdov 0:728722f45131 24
sgnezdov 0:728722f45131 25 scheduler.Start();
sgnezdov 2:4fe42e3bafe4 26
sgnezdov 2:4fe42e3bafe4 27 time_t nowSecs = time(NULL);
sgnezdov 6:b0bca03d9f3a 28 JobScheduler::Response<JobScheduler::JobID> res = scheduler.JobAdd(1, new JobScheduler::RunOnceSchedule(nowSecs + 2), NULL);
sgnezdov 6:b0bca03d9f3a 29 printf("job A add response error: %d, jobID: %d\n", res.error, res.data);
sgnezdov 6:b0bca03d9f3a 30 wait(5);
sgnezdov 6:b0bca03d9f3a 31
sgnezdov 6:b0bca03d9f3a 32 printf("periodic with 2 sec period and limit 3\n");
sgnezdov 6:b0bca03d9f3a 33 res = scheduler.JobAdd(2, new JobScheduler::RunPeriodicSchedule(2, 3), NULL);
sgnezdov 6:b0bca03d9f3a 34 printf("job B add response error: %d, jobID: %d\n", res.error, res.data);
sgnezdov 5:79cbf6d8b5f0 35 wait(10);
sgnezdov 0:728722f45131 36 scheduler.Stop();
sgnezdov 0:728722f45131 37 scheduler.WaitToStop();
sgnezdov 0:728722f45131 38 }
sgnezdov 0:728722f45131 39
sgnezdov 0:728722f45131 40 int main()
sgnezdov 0:728722f45131 41 {
sgnezdov 0:728722f45131 42 printf("\nJob Scheduler Demo\n");
sgnezdov 0:728722f45131 43 runScheduler();
sgnezdov 0:728722f45131 44 printf("done\n");
sgnezdov 0:728722f45131 45
sgnezdov 0:728722f45131 46 exit(0);
sgnezdov 0:728722f45131 47 }
sgnezdov 0:728722f45131 48