Krolyxon
Commit 75eea47

Branches

Tags

Refs →

orion-rfsrcbluetoothble_mouse.cpp

74 lines · 1.6 KB · C++

1#include <Arduino.h>
2#include <BleMouse.h>
3#include "../hid/badusb.h"
4#include "../config.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{
16 u8g2.clearBuffer();
17 u8g2.setFont(u8g2_font_6x10_tr);
18 u8g2.drawStr(10, 25, "BLE Mouse");
19 u8g2.drawStr(10, 45, "Connecting...");
20 u8g2.sendBuffer();
21
22 delay(800);
23
24 while (1)
25 {
26 // 🔥 EXIT FIRST (clean)
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 = -6;
37 if (!digitalRead(BTN_DOWN)) dy = 6;
38 if (!digitalRead(BTN_LEFT)) dx = -6;
39 if (!digitalRead(BTN_RIGHT)) dx = 6;
40
41 if (dx || dy)
42 bleMouse.move(dx, dy);
43
44 // ✅ single click (not spam)
45 static bool lastSelect = false;
46 bool currentSelect = !digitalRead(BTN_SELECT);
47
48 if (currentSelect && !lastSelect)
49 bleMouse.click(MOUSE_LEFT);
50
51 lastSelect = currentSelect;
52 }
53
54 // ===== UI =====
55 u8g2.clearBuffer();
56 u8g2.setFont(u8g2_font_6x10_tr);
57
58 u8g2.drawStr(10, 20, "BLE Mouse");
59
60 if (connected)
61 u8g2.drawStr(10, 35, "Connected");
62 else
63 u8g2.drawStr(10, 35, "Waiting");
64
65 u8g2.drawStr(10, 55, "BACK = Exit");
66
67 u8g2.sendBuffer();
68
69 delay(10); // important for BLE stability
70 }
71}
72
73
74