KeyboardTest: a test program for KeyboardManager lib
Dependencies: mbed KeyboardManager
main.cpp
- Committer:
- osmeest
- Date:
- 2011-02-03
- Revision:
- 4:392068d3f56d
- Parent:
- 3:c20e3d23ce5f
File content as of revision 4:392068d3f56d:
#include "kbd_mgr/KeyboardManager.h" #include <iostream> using namespace std; using namespace kbd_mgr; void handleKeyPress(const KeyEvent &keypress) { char ch = (keypress.keyChar >= 32 && keypress.keyChar < 127 ? keypress.keyChar : '?'); std::string eventName; switch (keypress.event) { case KeyEvent::KeyDown: eventName = "Down"; break; case KeyEvent::KeyUp: eventName = "Up"; break; case KeyEvent::KeyPress: eventName = "Press"; break; case KeyEvent::RepeatedKeyPress: eventName = "RepeatedPress"; break; case KeyEvent::LongKeyPress: eventName = "LongPress"; break; default: eventName = "???"; break; } cout << "Key state change: " << keypress.keyCode << " '" << ch << "' " << eventName << "\r" << endl; } int main() { cout << "\n\r\nKeyboardTest " __DATE__ "-" __TIME__ "\r" << endl; PinName outPinsArray[] = { p8, p7, p6, p5 }; KeyboardMonitor::OutPinsSet outPins(&outPinsArray[0], &outPinsArray[4]); KeyMap keyMap("123A456B789C*0#D"); keyMap(KeyEvent::LongKeyPress, 12, '@')(KeyEvent::LongKeyPress, 14, '$'); KeyboardMonitor kbdMonitor(Port0, 4, 15, outPins); KeyboardStateChangeMonitor changeMonitor; SingleKeyPressMonitor keyPressMonitor; LongKeyPressMonitor longKeyPressMonitor; KeyMapper keyMapper(keyMap); longKeyPressMonitor.autoRepeat(0.500,0.250)(0,15); longKeyPressMonitor.longKeyPress(0.500)(12)(14); keyMapper.attach(handleKeyPress); longKeyPressMonitor.attach(keyMapper); keyPressMonitor.attach(longKeyPressMonitor); changeMonitor.attach(keyPressMonitor); kbdMonitor.attach(changeMonitor); kbdMonitor.start(); while (1) { wait(10); } }