Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed DRV88255 TextLCD Ping mbed-rtos
Controller.h@10:fd4670ec0806, 2016-06-10 (annotated)
- Committer:
- sbouber1
- Date:
- Fri Jun 10 22:21:04 2016 +0000
- Revision:
- 10:fd4670ec0806
- Parent:
- 9:b3674516729d
- Child:
- 38:930469a33001
Optional threading
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| sbouber1 | 9:b3674516729d | 1 | #ifndef __CONTROLLER_H__ |
| sbouber1 | 9:b3674516729d | 2 | #define __CONTROLLER_H__ |
| sbouber1 | 9:b3674516729d | 3 | |
| sbouber1 | 10:fd4670ec0806 | 4 | #include <string> |
| sbouber1 | 10:fd4670ec0806 | 5 | |
| sbouber1 | 10:fd4670ec0806 | 6 | #include "rtos.h" |
| sbouber1 | 10:fd4670ec0806 | 7 | |
| sbouber1 | 9:b3674516729d | 8 | class Controller { |
| sbouber1 | 9:b3674516729d | 9 | public: |
| sbouber1 | 10:fd4670ec0806 | 10 | Controller(bool threaded, int interval_ms); |
| sbouber1 | 10:fd4670ec0806 | 11 | |
| sbouber1 | 9:b3674516729d | 12 | virtual void update() = 0; |
| sbouber1 | 10:fd4670ec0806 | 13 | |
| sbouber1 | 10:fd4670ec0806 | 14 | virtual std::string get_name() = 0; |
| sbouber1 | 10:fd4670ec0806 | 15 | |
| sbouber1 | 10:fd4670ec0806 | 16 | bool is_threaded(); |
| sbouber1 | 10:fd4670ec0806 | 17 | |
| sbouber1 | 10:fd4670ec0806 | 18 | void run(); |
| sbouber1 | 10:fd4670ec0806 | 19 | |
| sbouber1 | 10:fd4670ec0806 | 20 | int get_interval_ms(); |
| sbouber1 | 10:fd4670ec0806 | 21 | |
| sbouber1 | 10:fd4670ec0806 | 22 | void set_priority(osPriority priority); |
| sbouber1 | 10:fd4670ec0806 | 23 | |
| sbouber1 | 10:fd4670ec0806 | 24 | osPriority get_priority(); |
| sbouber1 | 10:fd4670ec0806 | 25 | |
| sbouber1 | 10:fd4670ec0806 | 26 | private: |
| sbouber1 | 10:fd4670ec0806 | 27 | bool threaded; |
| sbouber1 | 10:fd4670ec0806 | 28 | bool has_spawned; |
| sbouber1 | 10:fd4670ec0806 | 29 | Thread *ctrl_thread; |
| sbouber1 | 10:fd4670ec0806 | 30 | int interval_ms; |
| sbouber1 | 10:fd4670ec0806 | 31 | osPriority prio; |
| sbouber1 | 10:fd4670ec0806 | 32 | |
| sbouber1 | 10:fd4670ec0806 | 33 | static void thread_stub(void const *args); |
| sbouber1 | 9:b3674516729d | 34 | }; |
| sbouber1 | 9:b3674516729d | 35 | |
| sbouber1 | 9:b3674516729d | 36 | #endif |