summaryrefslogtreecommitdiff
path: root/hid/src/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'hid/src/main.cpp')
-rw-r--r--hid/src/main.cpp38
1 files changed, 38 insertions, 0 deletions
diff --git a/hid/src/main.cpp b/hid/src/main.cpp
new file mode 100644
index 00000000..32c14c14
--- /dev/null
+++ b/hid/src/main.cpp
@@ -0,0 +1,38 @@
+#include <Arduino.h>
+#include <Keyboard.h>
+
+#define CMD_SERIAL Serial1
+#define SERIAL_SPEED 115200
+
+#define INLINE inline __attribute__((always_inline))
+
+
+INLINE void cmdResetHid() {
+ Keyboard.releaseAll();
+}
+
+INLINE void cmdKeyEvent() {
+ uint8_t state = Serial.read();
+ uint8_t key = Serial.read();
+ if (state) {
+ Keyboard.press(key);
+ } else {
+ Keyboard.release(key);
+ }
+}
+
+
+void setup() {
+ CMD_SERIAL.begin(SERIAL_SPEED);
+ Keyboard.begin();
+}
+
+void loop() {
+ while (true) { // fast
+ switch (Serial.read()) {
+ case 0: cmdResetHid(); break;
+ case 1: cmdKeyEvent(); break;
+ default: break;
+ }
+ }
+}