优化xbox,盖世小鸡蓝牙手柄控制,增加动作集控制

This commit is contained in:
myperworld committed 2025-10-17 13:18:12 +08:00
1 parent 9cc5186a58
commit e33a6b894d
10 files changed
+606 -356

No files matched your search

+46
View File
@@ -0,0 +1,46 @@
/* ---------------------------------
* 蓝牙手柄(Xbox)模块
* 包含:蓝牙实体、状态变量、连接处理函数
* 不包含:手柄数据解析逻辑(processControllerData)
------------------------------------- */
#ifndef XBOX_BLUETOOTH_H
#define XBOX_BLUETOOTH_H
#include <Arduino.h>
#include <XboxSeriesXControllerESP32_asukiaaa.hpp> // Xbox手柄库
/************ Xbox手柄全局实体 *************/
// 连接目标手柄的MAC地址(保持原地址不变)
XboxSeriesXControllerESP32_asukiaaa::Core xboxController("0a:27:12:5c:71:79");
/************ 外部函数声明 *************/
// 声明主文件中的数据处理函数(在主文件中实现)
extern void processControllerData(const XboxControllerNotificationParser& data);
/************ 蓝牙手柄核心函数 *************/
// 初始化蓝牙手柄(供主文件setup()调用)
void xboxControllerInit() {
// 启动蓝牙连接
xboxController.begin();
}
// 处理蓝牙手柄通知(循环调用,保持连接并接收数据)
void process_xbox_notif() {
xboxController.onLoop(); // 维持蓝牙连接状态
if (xboxController.isConnected()) {
if (xboxController.isWaitingForFirstNotification()) {
// 可添加调试信息(如"等待手柄数据...")
} else {
// 接收数据后,调用主文件的解析函数
processControllerData(xboxController.xboxNotif);
}
} else {
// 可添加调试信息(如"手柄未连接")
}
}
#endif // XBOX_BLUETOOTH_H