Code to let Gr20's BioRobotics2017 robot come to live.
Dependencies: FastPWM MODSERIAL QEI mbed
ui.h@8:383a0fb48121, 2017-11-13 (annotated)
- Committer:
- megrootens
- Date:
- Mon Nov 13 10:45:29 2017 +0000
- Revision:
- 8:383a0fb48121
- Parent:
- 7:b9a209f889f5
Updated docs.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
megrootens | 5:088917beb5e4 | 1 | #ifndef _UI_H_ |
megrootens | 5:088917beb5e4 | 2 | #define _UI_H_ |
megrootens | 5:088917beb5e4 | 3 | |
megrootens | 0:caa8ee3bd882 | 4 | #include "MODSERIAL.h" |
megrootens | 0:caa8ee3bd882 | 5 | |
megrootens | 0:caa8ee3bd882 | 6 | #define LED_ON 0 |
megrootens | 0:caa8ee3bd882 | 7 | |
megrootens | 0:caa8ee3bd882 | 8 | /** |
megrootens | 8:383a0fb48121 | 9 | * User Interface. |
megrootens | 8:383a0fb48121 | 10 | * LED display and Serial output. |
megrootens | 0:caa8ee3bd882 | 11 | */ |
megrootens | 0:caa8ee3bd882 | 12 | namespace ui |
megrootens | 0:caa8ee3bd882 | 13 | { |
megrootens | 2:df0c6af898ac | 14 | // Sample time |
megrootens | 7:b9a209f889f5 | 15 | static const double kSampleTime = 0.5; |
megrootens | 0:caa8ee3bd882 | 16 | |
megrootens | 2:df0c6af898ac | 17 | // UI states |
megrootens | 0:caa8ee3bd882 | 18 | enum State { |
megrootens | 0:caa8ee3bd882 | 19 | IGNORE, |
megrootens | 0:caa8ee3bd882 | 20 | STATE_SWITCHING, |
megrootens | 0:caa8ee3bd882 | 21 | ROBOT_CONTROL |
megrootens | 0:caa8ee3bd882 | 22 | }; |
megrootens | 0:caa8ee3bd882 | 23 | |
megrootens | 2:df0c6af898ac | 24 | // UI state description |
megrootens | 7:b9a209f889f5 | 25 | static const char *StateNames[] = { |
megrootens | 0:caa8ee3bd882 | 26 | "Ignore user input", |
megrootens | 0:caa8ee3bd882 | 27 | "State switching", |
megrootens | 0:caa8ee3bd882 | 28 | "Control robot" |
megrootens | 0:caa8ee3bd882 | 29 | }; |
megrootens | 0:caa8ee3bd882 | 30 | |
megrootens | 2:df0c6af898ac | 31 | // Change state |
megrootens | 0:caa8ee3bd882 | 32 | void SwitchState(State new_state); |
megrootens | 0:caa8ee3bd882 | 33 | |
megrootens | 2:df0c6af898ac | 34 | // Current state |
megrootens | 7:b9a209f889f5 | 35 | extern State state; |
megrootens | 0:caa8ee3bd882 | 36 | |
megrootens | 2:df0c6af898ac | 37 | // LEDs and Serial |
megrootens | 7:b9a209f889f5 | 38 | extern DigitalOut rgb_led[]; |
megrootens | 7:b9a209f889f5 | 39 | extern MODSERIAL serial; |
megrootens | 0:caa8ee3bd882 | 40 | |
megrootens | 2:df0c6af898ac | 41 | // Interrupt switches |
megrootens | 0:caa8ee3bd882 | 42 | void InterruptSwitch2(); |
megrootens | 0:caa8ee3bd882 | 43 | void InterruptSwitch3(); |
megrootens | 0:caa8ee3bd882 | 44 | |
megrootens | 2:df0c6af898ac | 45 | // Display robot status through LEDs |
megrootens | 0:caa8ee3bd882 | 46 | void StatusDisplay(); |
megrootens | 2:df0c6af898ac | 47 | } |
megrootens | 5:088917beb5e4 | 48 | |
megrootens | 5:088917beb5e4 | 49 | #endif |