Code to let Gr20's BioRobotics2017 robot come to live.

Dependencies:   FastPWM MODSERIAL QEI mbed

Committer:
megrootens
Date:
Mon Nov 13 10:39:55 2017 +0000
Revision:
7:b9a209f889f5
Parent:
5:088917beb5e4
Child:
8:383a0fb48121
Moved implementation to separate .cpp files, by using static const variables for constants in namespaces and extern declarations for non-const vars.; Code compiles & runs on a board. **Not yet tested on the actual robot!**

Who changed what in which revision?

UserRevisionLine numberNew 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 0:caa8ee3bd882 9 * User interface
megrootens 0:caa8ee3bd882 10 */
megrootens 0:caa8ee3bd882 11 namespace ui
megrootens 0:caa8ee3bd882 12 {
megrootens 2:df0c6af898ac 13 // Sample time
megrootens 7:b9a209f889f5 14 static const double kSampleTime = 0.5;
megrootens 0:caa8ee3bd882 15
megrootens 2:df0c6af898ac 16 // UI states
megrootens 0:caa8ee3bd882 17 enum State {
megrootens 0:caa8ee3bd882 18 IGNORE,
megrootens 0:caa8ee3bd882 19 STATE_SWITCHING,
megrootens 0:caa8ee3bd882 20 ROBOT_CONTROL
megrootens 0:caa8ee3bd882 21 };
megrootens 0:caa8ee3bd882 22
megrootens 2:df0c6af898ac 23 // UI state description
megrootens 7:b9a209f889f5 24 static const char *StateNames[] = {
megrootens 0:caa8ee3bd882 25 "Ignore user input",
megrootens 0:caa8ee3bd882 26 "State switching",
megrootens 0:caa8ee3bd882 27 "Control robot"
megrootens 0:caa8ee3bd882 28 };
megrootens 0:caa8ee3bd882 29
megrootens 2:df0c6af898ac 30 // Change state
megrootens 0:caa8ee3bd882 31 void SwitchState(State new_state);
megrootens 0:caa8ee3bd882 32
megrootens 2:df0c6af898ac 33 // Current state
megrootens 7:b9a209f889f5 34 extern State state;
megrootens 0:caa8ee3bd882 35
megrootens 2:df0c6af898ac 36 // LEDs and Serial
megrootens 7:b9a209f889f5 37 extern DigitalOut rgb_led[];
megrootens 7:b9a209f889f5 38 extern MODSERIAL serial;
megrootens 0:caa8ee3bd882 39
megrootens 2:df0c6af898ac 40 // Interrupt switches
megrootens 0:caa8ee3bd882 41 void InterruptSwitch2();
megrootens 0:caa8ee3bd882 42 void InterruptSwitch3();
megrootens 0:caa8ee3bd882 43
megrootens 2:df0c6af898ac 44 // Display robot status through LEDs
megrootens 0:caa8ee3bd882 45 void StatusDisplay();
megrootens 2:df0c6af898ac 46 }
megrootens 5:088917beb5e4 47
megrootens 5:088917beb5e4 48 #endif