toy-hardware/main/bluetooth_provisioning_config.h

210 lines
4.8 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* @file bluetooth_provisioning_config.h
* @brief 蓝牙配网配置文件
*
* 本文件定义了蓝牙配网功能的各种配置参数,包括设备名称、
* 安全设置、超时时间等,可根据项目需求进行调整
*/
#pragma once
#ifdef __cplusplus
extern "C" {
#endif
/**
* @brief 蓝牙配网基本配置
*/
// 设备名称最大长度
#define BT_PROVISIONING_MAX_DEVICE_NAME_LEN 32
// SSID最大长度
#define BT_PROVISIONING_MAX_SSID_LEN 32
// 密码最大长度
#define BT_PROVISIONING_MAX_PASSWORD_LEN 64
/**
* @brief 蓝牙配网超时配置
*/
// 广播超时时间毫秒0表示永不超时
#define BT_PROVISIONING_ADV_TIMEOUT_MS 0
// 客户端连接超时时间(毫秒)
#define BT_PROVISIONING_CLIENT_TIMEOUT_MS (5 * 60 * 1000) // 5分钟
// WiFi连接超时时间毫秒
#define BT_PROVISIONING_WIFI_TIMEOUT_MS (100 * 1000) // 100秒增加超时时间避免过快重新进入配网
// WiFi连接最大重试次数
#define BT_PROVISIONING_WIFI_MAX_RETRY 2
/**
* @brief 蓝牙配网安全配置
*/
// 是否启用安全模式(加密通信)
#define BT_PROVISIONING_SECURITY_ENABLED 0
// 是否需要配对确认
#define BT_PROVISIONING_REQUIRE_PAIRING 0
// 预共享密钥PSK- 用于加密通信
// 注意如果启用安全模式客户端也需要使用相同的PSK
#define BT_PROVISIONING_PSK "Airhub2025"
/**
* @brief 蓝牙配网功能开关
*/
// 是否启用WiFi扫描功能
#define BT_PROVISIONING_ENABLE_WIFI_SCAN 1
// 是否自动发送WiFi状态报告
#define BT_PROVISIONING_AUTO_REPORT_STATUS 1
// 是否在配网成功后自动停止蓝牙服务
#define BT_PROVISIONING_AUTO_STOP_ON_SUCCESS 1
// 自动停止延迟时间(毫秒)
#define BT_PROVISIONING_AUTO_STOP_DELAY_MS 5000
// 是否在配网失败后自动重启配网服务
#define BT_PROVISIONING_AUTO_RESTART_ON_FAIL 1
// 自动重启延迟时间(毫秒)
#define BT_PROVISIONING_AUTO_RESTART_DELAY_MS 10000
/**
* @brief 蓝牙配网日志配置
*/
// 日志标签
#define BT_PROVISIONING_LOG_TAG "BluetoothProvisioning"
// 是否启用详细日志
#define BT_PROVISIONING_VERBOSE_LOG 1
// 是否记录WiFi密码安全考虑建议设为0
#define BT_PROVISIONING_LOG_PASSWORD 0
/**
* @brief 蓝牙配网性能配置
*/
// 蓝牙配网任务栈大小(字节)
#define BT_PROVISIONING_TASK_STACK_SIZE 8192
// 蓝牙配网任务优先级
#define BT_PROVISIONING_TASK_PRIORITY 5
// 蓝牙配网任务核心绑定(-1表示不绑定
#define BT_PROVISIONING_TASK_CORE_ID -1
/**
* @brief 蓝牙广播参数配置
*/
// 广播间隔最小值单位0.625ms
#define BT_PROVISIONING_ADV_INT_MIN 0x20 // 20ms
// 广播间隔最大值单位0.625ms
#define BT_PROVISIONING_ADV_INT_MAX 0x40 // 40ms
// 广播类型
#define BT_PROVISIONING_ADV_TYPE ESP_BLE_ADV_TYPE_IND
// 广播通道映射
#define BT_PROVISIONING_ADV_CHNL_MAP ESP_BLE_ADV_CHNL_ALL
// 广播过滤策略
#define BT_PROVISIONING_ADV_FILTER_POLICY ESP_BLE_ADV_FILTER_ALLOW_SCAN_ANY_CON_ANY
/**
* @brief 蓝牙连接参数配置
*/
// 连接间隔最小值单位1.25ms
#define BT_PROVISIONING_CONN_INT_MIN 0x10 // 20ms
// 连接间隔最大值单位1.25ms
#define BT_PROVISIONING_CONN_INT_MAX 0x20 // 40ms
// 从设备延迟
#define BT_PROVISIONING_SLAVE_LATENCY 0
// 监督超时单位10ms
#define BT_PROVISIONING_SUPERVISION_TIMEOUT 0x48 // 720ms
/**
* @brief 蓝牙配网状态指示配置
*/
// 是否启用LED状态指示
#define BT_PROVISIONING_ENABLE_LED_INDICATOR 1
// 是否启用蜂鸣器状态指示
#define BT_PROVISIONING_ENABLE_BUZZER_INDICATOR 0
// 是否启用语音提示
#define BT_PROVISIONING_ENABLE_VOICE_PROMPT 1
/**
* @brief 蓝牙配网数据存储配置
*/
// 是否保存WiFi凭据到NVS
#define BT_PROVISIONING_SAVE_CREDENTIALS 1
// NVS命名空间
#define BT_PROVISIONING_NVS_NAMESPACE "bt_prov"
// WiFi SSID存储键
#define BT_PROVISIONING_NVS_SSID_KEY "wifi_ssid"
// WiFi密码存储键
#define BT_PROVISIONING_NVS_PASSWORD_KEY "wifi_pass"
// WiFi BSSID存储键
#define BT_PROVISIONING_NVS_BSSID_KEY "wifi_bssid"
/**
* @brief 蓝牙配网兼容性配置
*/
// 是否兼容ESP-IDF官方配网APP
#define BT_PROVISIONING_COMPATIBLE_OFFICIAL_APP 1
// 是否支持自定义数据传输
#define BT_PROVISIONING_SUPPORT_CUSTOM_DATA 1
// 自定义数据最大长度
#define BT_PROVISIONING_MAX_CUSTOM_DATA_LEN 512
/**
* @brief 编译时配置检查
*/
// 检查必要的ESP-IDF组件是否启用
#ifndef CONFIG_BT_ENABLED
#warning "蓝牙配网需要启用CONFIG_BT_ENABLED"
#endif
#ifndef CONFIG_BLUEDROID_ENABLED
#warning "蓝牙配网需要启用CONFIG_BLUEDROID_ENABLED"
#endif
#ifndef CONFIG_BT_BLUFI_ENABLE
#warning "蓝牙配网需要启用CONFIG_BT_BLUFI_ENABLE"
#endif
#ifndef CONFIG_ESP32_WIFI_ENABLED
#warning "蓝牙配网需要启用WiFi功能"
#endif
#ifdef __cplusplus
}
#endif