diff options
Diffstat (limited to 'hid/src/main.cpp')
-rw-r--r-- | hid/src/main.cpp | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/hid/src/main.cpp b/hid/src/main.cpp index 32c14c14..631925f0 100644 --- a/hid/src/main.cpp +++ b/hid/src/main.cpp @@ -1,35 +1,44 @@ #include <Arduino.h> -#include <Keyboard.h> +#include <HID-Project.h> + +#include "inline.h" +#include "keymap.h" #define CMD_SERIAL Serial1 -#define SERIAL_SPEED 115200 +#define CMD_SERIAL_SPEED 115200 #define INLINE inline __attribute__((always_inline)) INLINE void cmdResetHid() { + CMD_SERIAL.read(); // unused now + CMD_SERIAL.read(); // unused now + CMD_SERIAL.read(); // unused now Keyboard.releaseAll(); } INLINE void cmdKeyEvent() { - uint8_t state = Serial.read(); - uint8_t key = Serial.read(); - if (state) { - Keyboard.press(key); - } else { - Keyboard.release(key); + uint8_t state = CMD_SERIAL.read(); + uint8_t code = keymap(CMD_SERIAL.read()); + CMD_SERIAL.read(); // unused now + if (code) { + if (state) { + Keyboard.press(code); + } else { + Keyboard.release(code); + } } } void setup() { - CMD_SERIAL.begin(SERIAL_SPEED); + CMD_SERIAL.begin(CMD_SERIAL_SPEED); Keyboard.begin(); } void loop() { - while (true) { // fast - switch (Serial.read()) { + if (CMD_SERIAL.available() >= 4) { + switch ((uint8_t)CMD_SERIAL.read()) { case 0: cmdResetHid(); break; case 1: cmdKeyEvent(); break; default: break; |