Sergei G
/
JobSchedulerDemo
run once and run periodic example work
source/main.cpp@6:b0bca03d9f3a, 2017-07-11 (annotated)
- 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?
User | Revision | Line number | New 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 |