| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- //
- // Created by kindring on 2025/12/25.
- //
- #ifndef YUNTUNE_BLE_NVS_H
- #define YUNTUNE_BLE_NVS_H
- #include <stdbool.h>
- #include <stdint.h>
- #include "esp_err.h"
- #include "app_manager.h"
- #define BT_DEVICE_NAME_MAX_LEN 64
- #define MAX_RECONNECT_ATTEMPTS 3
- #define MAX_BT_DEVICES 3 // 最多保存3个蓝牙设备信息
- #define NVS_NAMESPACE "ble_config"
- #define DEFAULT_DEVICE_NAME "YunTune"
- #define DEVICE_NAME_KEY "dev_name"
- #define AUTO_RECONNECT_KEY "auto_reconn"
- #define AUDIO_MODE_KEY "audio_mode"
- #define WIFI_MODE_KEY "wifi_mode"
- #define WIFI_SSID_KEY "wifi_ssid"
- #define WIFI_PASSWORD_KEY "wifi_pass"
- #define AP_SSID_KEY "ap_ssid"
- #define AP_PASSWORD_KEY "ap_pass"
- // 蓝牙设备信息键名定义
- #define BT_DEVICE_LIST_KEY "bt_list"
- /**
- * wifi 工作模式
- */
- typedef enum {
- // wifi 热点模式
- WIFI_MODE_AP = 0,
- // wifi 客户端模式
- WIFI_MODE_STA,
- // 自动模式, 连接sta失败时自动切换为AP模式
- WIFI_MODE_AUTO,
- WIFI_MODE_MAX
- } wifi_mode_t;
- // 蓝牙设备信息结构
- typedef struct {
- uint8_t bda[6]; // 蓝牙设备地址
- char device_name[BT_DEVICE_NAME_MAX_LEN]; // 设备名称
- bool is_paired; // 是否已配对
- uint32_t connect_count; // 连接次数
- uint64_t last_connect_time; // 最后连接时间戳
- bool is_valid; // 记录是否有效
- } bt_device_info_t;
- // 蓝牙设备信息数组
- typedef struct {
- bt_device_info_t devices[MAX_BT_DEVICES];
- } bt_device_list_t;
- // 设备基础信息配置
- typedef struct {
- // 蓝牙设备显示的名称, 默认为"YunTune"不允许更改
- char device_name[BT_DEVICE_NAME_MAX_LEN];
- // 是否允许自动重连
- bool auto_reconnect;
- audio_mode_t audio_mode;
- wifi_mode_t wifi_mode;
- // 重连等待 时间, 每次重连等待 n 秒, 失败后切换下一个连接,
- int reconnect_wait_time;
- int reconnect_max_attempts;
- // Wi-Fi ssid 依赖 auto_connect_wifi
- char wifi_ssid[32];
- // Wi-Fi password 依赖 auto_connect_wifi
- char wifi_password[64];
- // AP模式下配置的ssid和密码 默认为"YunTune"
- char ap_ssid[32];
- char ap_password[64];
- } device_config_t;
- esp_err_t ble_nvs_init(device_config_t *device_config);
- esp_err_t bt_device_load_config(device_config_t *device_config);
- esp_err_t bt_device_save_config(const device_config_t *device_config);
- esp_err_t bt_device_load_bt_info(bt_device_info_t *bt_info);
- esp_err_t bt_device_save_bt_info(const bt_device_info_t *bt_info);
- esp_err_t bt_device_add_or_update(const bt_device_info_t *bt_info);
- esp_err_t bt_device_get_list(bt_device_list_t *device_list);
- esp_err_t bt_device_reset_config(void);
- #endif //YUNTUNE_BLE_NVS_H
|