#include #define DN 0 #define UP 1 static char *keycode_table[] = { "NULL", "ESC", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "-", "=", "BS", "TAB", "Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P", "[", "]", "ENTER", "L CTRL", "A", "S", "D", "F", "G", "H", "J", "K", "L", ";", "'", "`", "L SHIFT", "\\", "Z", "X", "C", "V", "B", "N", "M", ",", ".", "/", "R SHIFT", "*", "L ALT", "SPACE", "CAPS LOCK", "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "NUM LOCK", "SCROLL LOCK", "HOME 7", "UP 8", "PGUP 9", "-", "LEFT 4", "KP 5", "RT ARROW 6", "+", "END 1", "DOWN 2", "PGDN 3", "INS", "DEL", "84", "85", "86", "F11", "F12", "89", "90", "91", "92", "93", "94", "95", "R ENTER", "R CTRL", "/", "PRT SCR", "R ALT", "101", "Home", "Up", "PgUp", "Left", "Right", "End", "Down", "PgDn", "Insert", "Del", "112", "113", "114", "115", "116", "117", "118", "Pause" }; int main() { FILE *f; char c; int ev = 0; f = fopen("/dev/ttyUSB1", "rwb"); if (f) { while (1) { c = getc(f); if (c < 0) { c += 128; ev = DN; } else { ev = UP; } printf("Key %3d (%s) %s\n", c, keycode_table[c], (ev == UP ? "UP" : "DOWN")); } fclose(f); } else { fprintf(stderr, "Error: Could not open serial device."); } return 0; }