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

Dependencies:   FastPWM MODSERIAL QEI mbed

Committer:
megrootens
Date:
Mon Nov 13 09:11:42 2017 +0000
Revision:
5:088917beb5e4
Parent:
2:df0c6af898ac
Child:
7:b9a209f889f5
added include guards in header files

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