Krolyxon
Commit 097b106

Branches

Tags

Refs →

orion-rf097b106

add BLE Mouse

Author
krolyxon
Date
2026-05-05 12:21 +0530
Parent
0a40daf
Commit
097b10658710c7878ae4028491b0211d08d9b8ce

+77 −1

3 files changed

  1. A firmware/blemouse.cpp +68 −0
  2. A firmware/blemouse.h +3 −0
  3. M firmware/menu.cpp +6 −1
A firmware/blemouse.cpp View
@@ -0,0 +1,68 @@
1+#include <Arduino.h>
2+#include <BleMouse.h>
3+#include "config.h"
4+
5+#include "buttons.h"
6+#include "display.h"
7+
8+// ===== BLE MOUSE =====
9+BleMouse bleMouse("Orion-RF", "Orion-RF", 100);
10+
11+// ===== MAIN =====
12+void ble_mouse_run()
13+{
14+ bleMouse.begin();
15+
16+ // simple screen
17+ u8g2.clearBuffer();
18+ u8g2.setFont(u8g2_font_6x10_tr);
19+ u8g2.drawStr(10, 25, "BLE Mouse");
20+ u8g2.drawStr(10, 45, "Connecting...");
21+ u8g2.sendBuffer();
22+
23+ delay(1000);
24+
25+ while (1)
26+ {
27+ if (btnBack()) break;
28+
29+ bool connected = bleMouse.isConnected();
30+
31+ int dx = 0;
32+ int dy = 0;
33+
34+ if (connected)
35+ {
36+ if (!digitalRead(BTN_UP)) dy = -8;
37+ if (!digitalRead(BTN_DOWN)) dy = 8;
38+ if (!digitalRead(BTN_LEFT)) dx = -8;
39+ if (!digitalRead(BTN_RIGHT)) dx = 8;
40+
41+ if (dx != 0 || dy != 0)
42+ bleMouse.move(dx, dy);
43+
44+ if (!digitalRead(BTN_SELECT))
45+ bleMouse.click(MOUSE_LEFT);
46+
47+ if (!digitalRead(BTN_BACK))
48+ bleMouse.click(MOUSE_RIGHT);
49+ }
50+
51+ // ===== UI =====
52+ u8g2.clearBuffer();
53+ u8g2.setFont(u8g2_font_6x10_tr);
54+
55+ u8g2.drawStr(10, 20, "BLE Mouse");
56+
57+ if (connected)
58+ u8g2.drawStr(10, 35, "Status: Connected");
59+ else
60+ u8g2.drawStr(10, 35, "Status: Waiting");
61+
62+ u8g2.drawStr(10, 55, "BACK = Exit");
63+
64+ u8g2.sendBuffer();
65+
66+ delay(30);
67+ }
68+}
A firmware/blemouse.h View
@@ -0,0 +1,3 @@
1+#pragma once
2+
3+void ble_mouse_run();
M firmware/menu.cpp View
@@ -9,6 +9,7 @@
99 #include "wifi_scan.h"
1010 #include "wifi_analyzer.h"
1111 #include "device_check.h"
12+#include "blemouse.h"
1213
1314 // ================= FEATURE HANDLERS =================
1415 void runSystemInfoFeature();
@@ -29,7 +30,8 @@ const char *mainMenuItems[] = {
2930 "Wifi Analyzer",
3031 "System Info",
3132 "Device Check",
32− "Restart"
33+ "Restart",
34+ "Ble Mouse"
3335 };
3436
3537 Menu mainMenu = {mainMenuItems, sizeof(mainMenuItems) / sizeof(mainMenuItems[0])};
@@ -184,6 +186,9 @@ void launchFeature()
184186 delay(1000);
185187 ESP.restart();
186188 break;
189+ case 9:
190+ ble_mouse_run();
191+ break;
187192 }
188193 }
189194 else if (currentMenu == &badusbMenu)