/** * 艾灸椅 BLE 协议常量 * 协议帧: [0x24 开始符][功能码][数据域...][0x23 结束符] */ // ================ 帧定界 ================ export const FRAME_HEAD = 0x24 export const FRAME_TAIL = 0x23 // ================ 功能码 (APP -> 主控板) ================ export const CMD = { BASIC: 0x01, // 基本功能 MODE_PARAM_1: 0x02, // 模式参数设置1 (步骤 1-7) MODE_PARAM_2: 0x03, // 模式参数设置2 (步骤 8-14) MODE_PARAM_5: 0x05 // 穴位坐标下发 } // ================ 功能码 (主控板 -> APP) ================ export const REPORT = { GROUP_1: 0x01, // 参数组1: 电源/状态/耗材等 GROUP_2: 0x02 // 参数组2: 预热/点火/当前步骤/温度等 } // ================ 业务枚举 ================ export const POWER = { OFF: 0x00, ON: 0x01 } export const MOXI_STATE = { DONE: 0x00, START: 0x01, PAUSE: 0x02 } export const RUNTIME_STATE = { DONE: 0x00, PREHEAT: 0x01, IGNITE: 0x02, MOXI: 0x03, EXTINGUISH: 0x04, PAUSE: 0x05 } export const MUTE = { OFF: 0x00, ON: 0x01 } export const MODE = { LEISURE: 0x01, // 休闲 BASIC: 0x02, // 基础 PROFESSIONAL: 0x03, // 专业 PERSONAL: 0x04, // 个性 EXPERT: 0x05 // 专家 } export const SUB_MODE = { SUB_1: 0x01, SUB_2: 0x02, SUB_3: 0x03, SUB_4: 0x04, SUB_5: 0x05 } export const TEMPERATURE = { LOW: 0x01, MID: 0x02, HIGH: 0x03 } export const CHAIR_ANGLE = { OFF: 0x00, LEVEL_1: 0x01, LEVEL_2: 0x02, LEVEL_3: 0x03, LEVEL_4: 0x04, LEVEL_5: 0x05 } // 自动上艾和点火状态 export const AUTO_IGNITE_STATUS = { LOAD_DONE: 0x01, IGNITE_DONE: 0x02, STICK_ERROR: 0x10, LOAD_FAIL: 0x11, IGNITE_FAIL: 0x12 } // ================ 异常错误码 ================ export const BLE_ERROR = { NOT_SUPPORT: 'BLE_NOT_SUPPORT', ADAPTER_OFF: 'BLE_ADAPTER_OFF', PERMISSION_DENIED: 'BLE_PERMISSION_DENIED', LOCATION_OFF: 'BLE_LOCATION_OFF', SCAN_FAIL: 'BLE_SCAN_FAIL', CONNECT_FAIL: 'BLE_CONNECT_FAIL', CONNECT_TIMEOUT: 'BLE_CONNECT_TIMEOUT', DISCONNECTED: 'BLE_DISCONNECTED', SERVICE_NOT_FOUND: 'BLE_SERVICE_NOT_FOUND', CHAR_NOT_FOUND: 'BLE_CHAR_NOT_FOUND', WRITE_FAIL: 'BLE_WRITE_FAIL', FRAME_INVALID: 'BLE_FRAME_INVALID', BUSY: 'BLE_BUSY' } // ================ BLE 连接相关状态机 ================ export const BLE_STATE = { IDLE: 'IDLE', // 未初始化 READY: 'READY', // 适配器已就绪 SCANNING: 'SCANNING', // 扫描中 CONNECTING: 'CONNECTING', // 连接中 CONNECTED: 'CONNECTED', // 已连接(未完成服务发现) READY_COMM: 'READY_COMM', // 已完成服务发现,可以通信 DISCONNECTED:'DISCONNECTED' // 主动或异常断开 } // ================ 默认配置(UUID 已按真机调试结果填入:BT-BLEXXXX 模组) ================ // 真机扫描到的服务/特征: // Service: 0000FFF0-... (主服务) // Char FFF1: WRITE + NOTIFY (默认写指令通道) // Char FFF2: NOTIFY + READ (默认通知接收通道) // Char F003: WRITE (备用写通道) // 如发指令后收不到回包,可按 FAQ 在 FFF1 / FFF2 / F003 间互换写/通知特征再试。 export const DEFAULT_CONFIG = { // 目标设备名称前缀(扫描过滤,空字符串表示不过滤) deviceNamePrefix: '', // 主服务 UUID serviceId: '0000FFF0-0000-1000-8000-00805F9B34FB', // 写特征(APP -> 设备) writeCharId: '0000FFF1-0000-1000-8000-00805F9B34FB', // 通知特征(设备 -> APP) notifyCharId: '0000FFF2-0000-1000-8000-00805F9B34FB', // 扫描超时 scanTimeout: 10000, // 连接超时 connectTimeout: 10000, // 自动重连 autoReconnect: true, // 最大重连次数 maxReconnect: 3, // 是否打印日志 debug: true }