Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed KeyboardManager
main.cpp
00001 #include "kbd_mgr/KeyboardManager.h" 00002 00003 #include <iostream> 00004 00005 using namespace std; 00006 using namespace kbd_mgr; 00007 00008 void handleKeyPress(const KeyEvent &keypress) { 00009 char ch = (keypress.keyChar >= 32 && keypress.keyChar < 127 ? keypress.keyChar : '?'); 00010 00011 std::string eventName; 00012 switch (keypress.event) { 00013 case KeyEvent::KeyDown: 00014 eventName = "Down"; 00015 break; 00016 case KeyEvent::KeyUp: 00017 eventName = "Up"; 00018 break; 00019 case KeyEvent::KeyPress: 00020 eventName = "Press"; 00021 break; 00022 case KeyEvent::RepeatedKeyPress: 00023 eventName = "RepeatedPress"; 00024 break; 00025 case KeyEvent::LongKeyPress: 00026 eventName = "LongPress"; 00027 break; 00028 default: 00029 eventName = "???"; 00030 break; 00031 } 00032 00033 cout << "Key state change: " << keypress.keyCode << " '" << ch << "' " << eventName << "\r" << endl; 00034 } 00035 00036 int main() { 00037 cout << "\n\r\nKeyboardTest " __DATE__ "-" __TIME__ "\r" << endl; 00038 00039 PinName outPinsArray[] = { p8, p7, p6, p5 }; 00040 KeyboardMonitor::OutPinsSet outPins(&outPinsArray[0], &outPinsArray[4]); 00041 00042 KeyMap keyMap("123A456B789C*0#D"); 00043 keyMap(KeyEvent::LongKeyPress, 12, '@')(KeyEvent::LongKeyPress, 14, '$'); 00044 00045 KeyboardMonitor kbdMonitor(Port0, 4, 15, outPins); 00046 KeyboardStateChangeMonitor changeMonitor; 00047 SingleKeyPressMonitor keyPressMonitor; 00048 LongKeyPressMonitor longKeyPressMonitor; 00049 KeyMapper keyMapper(keyMap); 00050 00051 longKeyPressMonitor.autoRepeat(0.500,0.250)(0,15); 00052 longKeyPressMonitor.longKeyPress(0.500)(12)(14); 00053 00054 keyMapper.attach(handleKeyPress); 00055 longKeyPressMonitor.attach(keyMapper); 00056 keyPressMonitor.attach(longKeyPressMonitor); 00057 changeMonitor.attach(keyPressMonitor); 00058 kbdMonitor.attach(changeMonitor); 00059 00060 kbdMonitor.start(); 00061 00062 while (1) { 00063 wait(10); 00064 } 00065 }
Generated on Mon Jul 18 2022 00:07:46 by
1.7.2