aboutsummaryrefslogtreecommitdiff
path: root/firmware/blemouse.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/blemouse.cpp')
-rw-r--r--firmware/blemouse.cpp68
1 files changed, 68 insertions, 0 deletions
diff --git a/firmware/blemouse.cpp b/firmware/blemouse.cpp
new file mode 100644
index 0000000..e181a86
--- /dev/null
+++ b/firmware/blemouse.cpp
@@ -0,0 +1,68 @@
+#include <Arduino.h>
+#include <BleMouse.h>
+#include "config.h"
+
+#include "buttons.h"
+#include "display.h"
+
+// ===== BLE MOUSE =====
+BleMouse bleMouse("Orion-RF", "Orion-RF", 100);
+
+// ===== MAIN =====
+void ble_mouse_run()
+{
+ bleMouse.begin();
+
+ // simple screen
+ u8g2.clearBuffer();
+ u8g2.setFont(u8g2_font_6x10_tr);
+ u8g2.drawStr(10, 25, "BLE Mouse");
+ u8g2.drawStr(10, 45, "Connecting...");
+ u8g2.sendBuffer();
+
+ delay(1000);
+
+ while (1)
+ {
+ if (btnBack()) break;
+
+ bool connected = bleMouse.isConnected();
+
+ int dx = 0;
+ int dy = 0;
+
+ if (connected)
+ {
+ if (!digitalRead(BTN_UP)) dy = -8;
+ if (!digitalRead(BTN_DOWN)) dy = 8;
+ if (!digitalRead(BTN_LEFT)) dx = -8;
+ if (!digitalRead(BTN_RIGHT)) dx = 8;
+
+ if (dx != 0 || dy != 0)
+ bleMouse.move(dx, dy);
+
+ if (!digitalRead(BTN_SELECT))
+ bleMouse.click(MOUSE_LEFT);
+
+ if (!digitalRead(BTN_BACK))
+ bleMouse.click(MOUSE_RIGHT);
+ }
+
+ // ===== UI =====
+ u8g2.clearBuffer();
+ u8g2.setFont(u8g2_font_6x10_tr);
+
+ u8g2.drawStr(10, 20, "BLE Mouse");
+
+ if (connected)
+ u8g2.drawStr(10, 35, "Status: Connected");
+ else
+ u8g2.drawStr(10, 35, "Status: Waiting");
+
+ u8g2.drawStr(10, 55, "BACK = Exit");
+
+ u8g2.sendBuffer();
+
+ delay(30);
+ }
+}