ECE 4180 - Project

Dependencies:   4DGL-uLCD-SE SDFileSystem mbed-rtos mbed wave_player_appbd

Committer:
laxman7117
Date:
Wed Oct 26 18:34:25 2016 +0000
Revision:
0:0080ab59b360
v1.0

Who changed what in which revision?

UserRevisionLine numberNew contents of line
laxman7117 0:0080ab59b360 1 class Nav_Switch
laxman7117 0:0080ab59b360 2 {
laxman7117 0:0080ab59b360 3 public:
laxman7117 0:0080ab59b360 4 Nav_Switch(PinName up,PinName down,PinName left,PinName right,PinName fire);
laxman7117 0:0080ab59b360 5 int read();
laxman7117 0:0080ab59b360 6 //boolean functions to test each switch
laxman7117 0:0080ab59b360 7 bool up();
laxman7117 0:0080ab59b360 8 bool down();
laxman7117 0:0080ab59b360 9 bool left();
laxman7117 0:0080ab59b360 10 bool right();
laxman7117 0:0080ab59b360 11 bool fire();
laxman7117 0:0080ab59b360 12 //automatic read on RHS
laxman7117 0:0080ab59b360 13 operator int ();
laxman7117 0:0080ab59b360 14 //index to any switch array style
laxman7117 0:0080ab59b360 15 bool operator[](int index) {
laxman7117 0:0080ab59b360 16 return _pins[index];
laxman7117 0:0080ab59b360 17 };
laxman7117 0:0080ab59b360 18 private:
laxman7117 0:0080ab59b360 19 BusIn _pins;
laxman7117 0:0080ab59b360 20
laxman7117 0:0080ab59b360 21 };
laxman7117 0:0080ab59b360 22 Nav_Switch::Nav_Switch (PinName up,PinName down,PinName left,PinName right,PinName fire):
laxman7117 0:0080ab59b360 23 _pins(up, down, left, right, fire)
laxman7117 0:0080ab59b360 24 {
laxman7117 0:0080ab59b360 25 _pins.mode(PullUp); //needed if pullups not on board or a bare nav switch is used - delete otherwise
laxman7117 0:0080ab59b360 26 wait(0.001); //delays just a bit for pullups to pull inputs high
laxman7117 0:0080ab59b360 27 }
laxman7117 0:0080ab59b360 28 inline bool Nav_Switch::up()
laxman7117 0:0080ab59b360 29 {
laxman7117 0:0080ab59b360 30 return !(_pins[0]);
laxman7117 0:0080ab59b360 31 }
laxman7117 0:0080ab59b360 32 inline bool Nav_Switch::down()
laxman7117 0:0080ab59b360 33 {
laxman7117 0:0080ab59b360 34 return !(_pins[1]);
laxman7117 0:0080ab59b360 35 }
laxman7117 0:0080ab59b360 36 inline bool Nav_Switch::left()
laxman7117 0:0080ab59b360 37 {
laxman7117 0:0080ab59b360 38 return !(_pins[2]);
laxman7117 0:0080ab59b360 39 }
laxman7117 0:0080ab59b360 40 inline bool Nav_Switch::right()
laxman7117 0:0080ab59b360 41 {
laxman7117 0:0080ab59b360 42 return !(_pins[3]);
laxman7117 0:0080ab59b360 43 }
laxman7117 0:0080ab59b360 44 inline bool Nav_Switch::fire()
laxman7117 0:0080ab59b360 45 {
laxman7117 0:0080ab59b360 46 return !(_pins[4]);
laxman7117 0:0080ab59b360 47 }
laxman7117 0:0080ab59b360 48 inline int Nav_Switch::read()
laxman7117 0:0080ab59b360 49 {
laxman7117 0:0080ab59b360 50 return _pins.read();
laxman7117 0:0080ab59b360 51 }
laxman7117 0:0080ab59b360 52 inline Nav_Switch::operator int ()
laxman7117 0:0080ab59b360 53 {
laxman7117 0:0080ab59b360 54 return _pins.read();
laxman7117 0:0080ab59b360 55 }