93 lines
3.0 KiB
C
93 lines
3.0 KiB
C
#ifndef __RC_APP_MAIN_H__
|
||
#define __RC_APP_MAIN_H__
|
||
|
||
#include "typedef.h"
|
||
|
||
// =================================================================================
|
||
// 常量定义 (Constants)
|
||
// =================================================================================
|
||
|
||
// 假设UID的前1个字节用于区分设备类型
|
||
#define UID_PREFIX_MAIN_BOARD 0xA1 // 主板UID前缀
|
||
#define UID_PREFIX_REMOTE_CONTROL 0xA2 // 遥控器UID前缀
|
||
|
||
#define UID_LENGTH 8 // RFID UID 的标准长度
|
||
#define MAC_ADDR_LENGTH 6 // 蓝牙MAC地址的长度
|
||
|
||
// 定时器调用间隔 (ms)
|
||
#define RC_RFID_CALLBACK_INTERVAL_MS 500 // RFID轮询间隔,500ms
|
||
#define RC_BLE_CALLBACK_INTERVAL_MS 1000 // BLE状态机处理间隔, 1s
|
||
|
||
// =================================================================================
|
||
// 枚举与结构体定义 (Enums & Structs)
|
||
// =================================================================================
|
||
|
||
/**
|
||
* @brief 遥控器核心状态机
|
||
*/
|
||
typedef enum {
|
||
RC_STATE_IDLE, // 空闲状态,等待初始化
|
||
RC_STATE_DISCONNECTED, // 未连接主板 (正在扫描或等待)
|
||
RC_STATE_CONNECTING, // 正在连接主板
|
||
RC_STATE_CONNECTED, // 已连接主板
|
||
} RC_State_t;
|
||
|
||
/**
|
||
* @brief RFID读取到的设备类型
|
||
*/
|
||
typedef enum {
|
||
RFID_DEVICE_TYPE_UNKNOWN, // 未知设备
|
||
RFID_DEVICE_TYPE_MAIN_BOARD, // 船体主板
|
||
RFID_DEVICE_TYPE_REMOTE_CONTROL // 其他遥控器
|
||
} RFID_Device_Type_t;
|
||
|
||
/**
|
||
* @brief 遥控器应用全局上下文
|
||
*/
|
||
typedef struct {
|
||
RC_State_t state; // 当前状态机状态
|
||
u8 paired_mac_addr[MAC_ADDR_LENGTH]; // 已配对主板的MAC地址
|
||
// ... 可在此处添加更多运行时需要管理的数据
|
||
} RC_Context_t;
|
||
|
||
|
||
// =================================================================================
|
||
// 公共函数声明 (Public Function Prototypes)
|
||
// =================================================================================
|
||
|
||
/**
|
||
* @brief 遥控器应用主初始化函数
|
||
* @details
|
||
* - 初始化全局上下文
|
||
* - 设置并启动RFID和BLE处理定时器
|
||
*/
|
||
void rc_app_main_init(void);
|
||
|
||
/**
|
||
* @brief RFID回调处理函数 (由定时器周期性调用)
|
||
* @details
|
||
* - 调用RFID读取函数
|
||
* - 分析UID并执行相应逻辑 (配对/组队)
|
||
*/
|
||
void rc_rfid_callback_handler(void *priv);
|
||
|
||
/**
|
||
* @brief BLE回调处理函数 (由定时器周期性调用)
|
||
* @details
|
||
* - 维护与主板的BLE连接状态
|
||
* - 处理断线重连等
|
||
*/
|
||
void rc_ble_callback_handler(void *priv);
|
||
|
||
/**
|
||
* @brief BLE连接状态回调 (由蓝牙协议栈调用)
|
||
* @param status 0: 成功, 其他: 失败
|
||
* @param addr 连接或断开的设备地址
|
||
* @details
|
||
* - 在BLE连接成功后,请求主板连接经典蓝牙
|
||
* - 更新连接状态
|
||
*/
|
||
// void rc_ble_connection_status_callback(u8 status, u8 *addr); // No longer needed
|
||
|
||
|
||
#endif // __RC_APP_MAIN_H__
|