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

Dependencies:   FastPWM MODSERIAL QEI mbed

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?

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 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