How does this workkkkk?!?!?!?!?!

Dependencies:   4DGL-uLCD-SE PinDetect mbed-rtos mbed

Committer:
swilliams346
Date:
Sat Oct 29 22:10:24 2016 +0000
Revision:
0:973e6eca2102
ERICK

Who changed what in which revision?

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