Initial commit: CCU621_M firmware project with BLE debug link support.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,124 @@
|
||||
/**
|
||||
* @file fc41d_ble.h
|
||||
* @brief FC41D 蓝牙调试:配置宏 + 对外接口(仅 BLE_DEBUG_EN=1 有效)
|
||||
*
|
||||
* 分层:
|
||||
* - 本头文件:编译配置、DIP 选路、comm_link 后端 API
|
||||
* - fc41d_ble.c:AT 命令、模组电源、BLE 状态机、QBLETRANMODE 透传收发(内部 static)
|
||||
*/
|
||||
|
||||
#ifndef FC41D_BLE_H
|
||||
#define FC41D_BLE_H
|
||||
|
||||
#include <stdint.h>
|
||||
#include "publicdata/public_define.h"
|
||||
|
||||
#if BLE_DEBUG_EN
|
||||
|
||||
#include "usart.h"
|
||||
|
||||
/* ---------- 硬件 / 串口 ---------- */
|
||||
#ifndef FC41D_USART_ID
|
||||
#define FC41D_USART_ID E_USART_7 /* UART7 PE1/PE0,接 FC41D */
|
||||
#endif
|
||||
|
||||
#ifndef FC41D_UART_HW_NUM
|
||||
#define FC41D_UART_HW_NUM 7U /* UART7 PE1/PE0 */
|
||||
#endif
|
||||
|
||||
#ifndef FC41D_RST_PULSE_MS
|
||||
#define FC41D_RST_PULSE_MS 200U /* 复位脉冲高电平保持时间 */
|
||||
#endif
|
||||
|
||||
#ifndef FC41D_POWER_ON_DELAY_MS
|
||||
#define FC41D_POWER_ON_DELAY_MS 5000U /* 复位释放后等待模组启动 */
|
||||
#endif
|
||||
|
||||
#ifndef FC41D_UART_BAUD
|
||||
#define FC41D_UART_BAUD 115200U /* UART7 固定波特率,不再做双波特率探测 */
|
||||
#endif
|
||||
|
||||
#ifndef FC41D_AT_CMD_WAIT_MS
|
||||
#define FC41D_AT_CMD_WAIT_MS 1500U /* 常规 AT 阻塞等待 */
|
||||
#endif
|
||||
|
||||
#ifndef FC41D_GATT_AT_WAIT_MS
|
||||
#define FC41D_GATT_AT_WAIT_MS 1200U /* QBLEGATTSNTFY 阻塞等待 */
|
||||
#endif
|
||||
|
||||
#ifndef FC41D_AT_INIT_WAIT_MS
|
||||
#define FC41D_AT_INIT_WAIT_MS 8000U /* QBLEINIT 栈初始化较慢,单独加长 */
|
||||
#endif
|
||||
|
||||
#ifndef FC41D_STAT_POLL_MS
|
||||
#define FC41D_STAT_POLL_MS 10000U /* 等待连接时 QBLESTAT 兜底查询间隔 */
|
||||
#endif
|
||||
|
||||
#ifndef FC41D_CONNECT_WAIT_MS
|
||||
#define FC41D_CONNECT_WAIT_MS (120000U) /* 等待手机连接最长时间 */
|
||||
#endif
|
||||
|
||||
/* ---------- BLE GATT / 广播名(Quectel 手册 §4.2.1 外设示例) ---------- */
|
||||
#ifndef FC41D_BLE_NAME
|
||||
#define FC41D_BLE_NAME "CCU621_Debug"
|
||||
#endif
|
||||
|
||||
#ifndef FC41D_SRV_UUID
|
||||
#define FC41D_SRV_UUID "fff1"
|
||||
#endif
|
||||
|
||||
#ifndef FC41D_CHAR_WRITE_UUID
|
||||
#define FC41D_CHAR_WRITE_UUID "fff2" /* 手机 → 设备 Write */
|
||||
#endif
|
||||
|
||||
#ifndef FC41D_CHAR_NOTIFY_UUID
|
||||
#define FC41D_CHAR_NOTIFY_UUID "fff3" /* 设备 → 手机 Notify */
|
||||
#endif
|
||||
|
||||
/** QBLETRANMODE 优先尝试的 UUID(部分固件需 fff2 而非 fff3) */
|
||||
#ifndef FC41D_TRAN_UUID
|
||||
#define FC41D_TRAN_UUID FC41D_CHAR_WRITE_UUID
|
||||
#endif
|
||||
|
||||
/** 1=连接后 AT+QBLETRANMODE 透传(手册);0=GATT 非透传 +QBLERECV */
|
||||
#ifndef FC41D_BLE_USE_TRANSPARENT
|
||||
#define FC41D_BLE_USE_TRANSPARENT 1
|
||||
#endif
|
||||
|
||||
#ifndef BLE_DEBUG_PRINT
|
||||
#define BLE_DEBUG_PRINT 1
|
||||
#endif
|
||||
|
||||
#if BLE_DEBUG_PRINT
|
||||
#include <stdio.h>
|
||||
#define BT_PRINT(fmt, ...) printf("[BT] " fmt, ##__VA_ARGS__)
|
||||
#else
|
||||
#define BT_PRINT(fmt, ...) do {} while (0)
|
||||
#endif
|
||||
|
||||
/* ---------- DIP1 拨码选路(副板 sub_comm 上报) ---------- */
|
||||
|
||||
/** @brief 等待副板 DI 帧就绪,便于读取 DIP1 */
|
||||
int ble_link_wait_dip_ready(uint32_t timeout_ms);
|
||||
|
||||
/** @brief DIP1=1 时为蓝牙调试上位机模式 */
|
||||
uint8_t ble_link_is_bt_mode(void);
|
||||
|
||||
/* ---------- comm_link 后端(与 tcp_server 共用 JSON 协议) ---------- */
|
||||
|
||||
int comm_link_ble_start(void);
|
||||
void comm_link_ble_stop(void);
|
||||
void comm_link_ble_process(void);
|
||||
int comm_link_ble_is_client_connected(void);
|
||||
void comm_link_ble_close_client(void);
|
||||
int comm_link_ble_receive_data(uint8_t *buffer, uint32_t buffer_size);
|
||||
int comm_link_ble_rx_upgrade_begin(void);
|
||||
int comm_link_ble_rx_upgrade_end(void);
|
||||
void comm_link_ble_rx_flush_pending(void);
|
||||
int comm_link_ble_diag_trace(void);
|
||||
int comm_link_ble_send_data(const uint8_t *data, uint32_t len);
|
||||
int comm_link_ble_get_peer_info(char *buf, uint32_t buf_size);
|
||||
|
||||
#endif /* BLE_DEBUG_EN */
|
||||
|
||||
#endif /* FC41D_BLE_H */
|
||||
Reference in New Issue
Block a user