diff --git a/examples/LinkPS2Keyboard_demo/src/main.cpp b/examples/LinkPS2Keyboard_demo/src/main.cpp index f00efe7..c75e2c7 100644 --- a/examples/LinkPS2Keyboard_demo/src/main.cpp +++ b/examples/LinkPS2Keyboard_demo/src/main.cpp @@ -41,7 +41,9 @@ int main() { u16 keys = ~REG_KEYS & KEY_ANY; if (!linkPS2Keyboard->isActive()) { - output += "Press A to read keyboard input"; + output += + "Press A to read keyboard input\n" + "Press B to clear logs"; if (keys & KEY_A) { // (3) Initialize the library @@ -51,6 +53,10 @@ int main() { continue; } } else { + if (keys & KEY_B) { + scanCodes = ""; + irqs = 0; + } output += std::to_string(irqs) + " - " + scanCodes; } diff --git a/lib/LinkPS2Keyboard.hpp b/lib/LinkPS2Keyboard.hpp index 46e99c5..f4506eb 100644 --- a/lib/LinkPS2Keyboard.hpp +++ b/lib/LinkPS2Keyboard.hpp @@ -186,88 +186,93 @@ inline void LINK_PS2_KEYBOARD_ISR_SERIAL() { */ enum LINK_PS2_KEYBOARD_KEY { ESC = 118, - F1 = 112, - F2 = 121, - F3 = 123, - F4 = 125, - F5 = 130, - F6 = 137, - F7 = 139, - F8 = 143, - F9 = 145, - F10 = 148, - F11 = 153, - F12 = 156, + F1 = 5, + F2 = 6, + F3 = 4, + F4 = 12, + F5 = 3, + F6 = 11, + F7 = 131, + F8 = 10, + F9 = 1, + F10 = 9, + F11 = 120, + F12 = 7, BACKSPACE = 102, - TAB = 26, + TAB = 13, ENTER = 90, - SHIFT = 18, - CTRL = 17, - ALT = 20, - SPACE = 33, - CAPS_LOCK = 58, - NUM_LOCK = 90, - SCROLL_LOCK = 119, - INSERT = 99, - DELETE = 113, - HOME = 103, - END = 107, - PAGE_UP = 104, - PAGE_DOWN = 109, - UP = 117, - DOWN = 119, - LEFT = 107, - RIGHT = 116, + SHIFT_L = 18, + SHIFT_R = 89, + SUPER = 97, + CTRL_L = 20, + SPECIAL_CTRL_R = 224 + 20, + ALT_L = 17, + SPECIAL_ALT_R = 224 + 17, + SPACE = 41, + CAPS_LOCK = 88, + NUM_LOCK = 119, + SCROLL_LOCK = 126, + SPECIAL_INSERT = 224 + 112, + SPECIAL_DELETE = 224 + 113, + SPECIAL_HOME = 224 + 108, + SPECIAL_END = 224 + 105, + SPECIAL_PAGE_UP = 224 + 125, + SPECIAL_PAGE_DOWN = 224 + 122, + SPECIAL_UP = 224 + 117, + SPECIAL_DOWN = 224 + 114, + SPECIAL_LEFT = 224 + 107, + SPECIAL_RIGHT = 224 + 116, A = 28, B = 50, C = 33, - D = 30, + D = 35, E = 36, - F = 34, - G = 35, - H = 43, - I = 44, - J = 45, - K = 46, - L = 47, - M = 50, + F = 43, + G = 52, + H = 51, + I = 67, + J = 59, + K = 66, + L = 75, + M = 58, N = 49, - O = 48, - P = 49, + O = 68, + P = 77, Q = 21, - R = 38, + R = 45, S = 27, - T = 40, - U = 42, - V = 32, - W = 24, - X = 29, - Y = 41, + T = 44, + U = 60, + V = 42, + W = 29, + X = 34, + Y = 53, Z = 26, - NUMPAD_0 = 104, + NUMPAD_0 = 112, NUMPAD_1 = 105, - NUMPAD_2 = 110, + NUMPAD_2 = 114, NUMPAD_3 = 122, - NUMPAD_4 = 108, + NUMPAD_4 = 107, NUMPAD_5 = 115, - NUMPAD_6 = 111, + NUMPAD_6 = 116, NUMPAD_7 = 108, - NUMPAD_8 = 114, + NUMPAD_8 = 117, NUMPAD_9 = 125, NUMPAD_PLUS = 121, NUMPAD_MINUS = 123, - NUMPAD_ENTER = 96, - NUMPAD_DOT = 99, - NUMPAD_ASTERISK = 55, - NUMPAD_SLASH = 53 + SPECIAL_NUMPAD_ENTER = 224 + 90, + NUMPAD_DOT = 113, + NUMPAD_ASTERISK = 124, + NUMPAD_SLASH = 74 }; /** * @brief Event Scan Code list. */ enum LINK_PS2_KEYBOARD_EVENT { - RELEASE = 240, // Triggered before each key release - SPECIAL = 224 // Triggered before special keys + SELF_TEST_PASSED = 0xAA, // Triggered when hot-plugging the keyboard + RELEASE = 240, // Triggered before each key release + SPECIAL = 224 // Triggered before special keys }; #endif // LINK_PS2_KEYBOARD_H \ No newline at end of file