Krolyxon
Commit 3cd9366

Branches

Tags

Refs →

orion-rfsrcbluetoothble_mouse.cpp

73 lines · 1.7 KB · C++

1#include "config.h"
2#include "hid/badusb.h"
3#include <Arduino.h>
4#include <BleMouse.h>
5
6#include "utils/buttons.h"
7#include "ui/display.h"
8
9// ===== BLE MOUSE =====
10// BleMouse bleMouse("Orion-RF", "Orion-RF", 100);
11extern BleMouse bleMouse;
12
13// ===== MAIN =====
14void ble_mouse_run() {
15 u8g2.clearBuffer();
16 u8g2.setFont(u8g2_font_6x10_tr);
17 u8g2.drawStr(10, 25, "BLE Mouse");
18 u8g2.drawStr(10, 45, "Connecting...");
19 u8g2.sendBuffer();
20
21 delay(800);
22
23 while (1) {
24 // 🔥 EXIT FIRST (clean)
25 if (btnBack())
26 break;
27
28 bool connected = bleMouse.isConnected();
29
30 int dx = 0;
31 int dy = 0;
32
33 if (connected) {
34 if (!digitalRead(BTN_UP))
35 dy = -6;
36 if (!digitalRead(BTN_DOWN))
37 dy = 6;
38 if (!digitalRead(BTN_LEFT))
39 dx = -6;
40 if (!digitalRead(BTN_RIGHT))
41 dx = 6;
42
43 if (dx || dy)
44 bleMouse.move(dx, dy);
45
46 // ✅ single click (not spam)
47 static bool lastSelect = false;
48 bool currentSelect = !digitalRead(BTN_SELECT);
49
50 if (currentSelect && !lastSelect)
51 bleMouse.click(MOUSE_LEFT);
52
53 lastSelect = currentSelect;
54 }
55
56 // ===== UI =====
57 u8g2.clearBuffer();
58 u8g2.setFont(u8g2_font_6x10_tr);
59
60 u8g2.drawStr(10, 20, "BLE Mouse");
61
62 if (connected)
63 u8g2.drawStr(10, 35, "Connected");
64 else
65 u8g2.drawStr(10, 35, "Waiting");
66
67 u8g2.drawStr(10, 55, "BACK = Exit");
68
69 u8g2.sendBuffer();
70
71 delay(10); // important for BLE stability
72 }
73}