IO is an event based input manager which permit to select which composents are manged on your system

Dependencies:   C12832 FXOS8700Q LM75B MMA7660

Committer:
co838_app56
Date:
Tue Feb 23 17:25:07 2016 +0000
Revision:
0:2ac59c564ab0
Child:
1:7be9a82f3ab8
Managing k64f & app shield;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
co838_app56 0:2ac59c564ab0 1 #pragma once
co838_app56 0:2ac59c564ab0 2
co838_app56 0:2ac59c564ab0 3 #include "mbed.h"
co838_app56 0:2ac59c564ab0 4
co838_app56 0:2ac59c564ab0 5 template <class Parent>
co838_app56 0:2ac59c564ab0 6 class FrdmK64f_Input : public Parent
co838_app56 0:2ac59c564ab0 7 {
co838_app56 0:2ac59c564ab0 8 // Buttons
co838_app56 0:2ac59c564ab0 9 InterruptIn _buttonLeft;
co838_app56 0:2ac59c564ab0 10 InterruptIn _buttonRight;
co838_app56 0:2ac59c564ab0 11
co838_app56 0:2ac59c564ab0 12 public:
co838_app56 0:2ac59c564ab0 13
co838_app56 0:2ac59c564ab0 14 enum IDBinaryInput
co838_app56 0:2ac59c564ab0 15 {
co838_app56 0:2ac59c564ab0 16 ButtonLeft,
co838_app56 0:2ac59c564ab0 17 ButtonRight
co838_app56 0:2ac59c564ab0 18 };
co838_app56 0:2ac59c564ab0 19
co838_app56 0:2ac59c564ab0 20 FrdmK64f_Input(void)
co838_app56 0:2ac59c564ab0 21 : _buttonLeft(SW2), _buttonRight(SW3)
co838_app56 0:2ac59c564ab0 22 {
co838_app56 0:2ac59c564ab0 23 _buttonLeft.rise(this, &FrdmK64f_Input::onButtonLeftRise);
co838_app56 0:2ac59c564ab0 24 _buttonLeft.fall(this, &FrdmK64f_Input::onButtonLeftFall);
co838_app56 0:2ac59c564ab0 25 _buttonRight.rise(this, &FrdmK64f_Input::onButtonRightRise);
co838_app56 0:2ac59c564ab0 26 _buttonRight.fall(this, &FrdmK64f_Input::onButtonRightFall);
co838_app56 0:2ac59c564ab0 27 }
co838_app56 0:2ac59c564ab0 28
co838_app56 0:2ac59c564ab0 29 void onButtonLeftRise(void) { Parent::_events.push(Event(Event::FrdmK64f, Event::BinaryInput, ButtonLeft, Event::Rise)); }
co838_app56 0:2ac59c564ab0 30 void onButtonLeftFall(void) { Parent::_events.push(Event(Event::FrdmK64f, Event::BinaryInput, ButtonLeft, Event::Fall)); }
co838_app56 0:2ac59c564ab0 31 void onButtonRightRise(void) { Parent::_events.push(Event(Event::FrdmK64f, Event::BinaryInput, ButtonRight, Event::Rise)); }
co838_app56 0:2ac59c564ab0 32 void onButtonRightFall(void) { Parent::_events.push(Event(Event::FrdmK64f, Event::BinaryInput, ButtonRight, Event::Fall)); }
co838_app56 0:2ac59c564ab0 33
co838_app56 0:2ac59c564ab0 34 // Callback for others sensors
co838_app56 0:2ac59c564ab0 35 virtual void chechAnalog(void) { Parent::chechAnalog(); }
co838_app56 0:2ac59c564ab0 36 };