You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

90 lines
3.4 KiB

import Foundation
import CoreBluetooth
/// BLE服务常量
struct BleConst {
// ================== 协议相关UUID ==================
/// 主服务UUID - 0000ABC0-0000-1111-2222-123456789ABC
static let PRIMARY_SERVICE_UUID = CBUUID(string: "0000abc0-0000-1111-2222-123456789abc")
/// 音频服务UUID - 00001801-0000-1000-8000-00805f9b34fb
static let AUDIO_SERVICE_UUID = CBUUID(string: "0000ae00-0000-1000-8000-00805f9b34fb")
/// 接收音频特征UUID - 0000ABC1-0000-1111-2222-123456789ABC
static let RECEIVE_AUDIO_CHAR_UUID = CBUUID(string: "0000ae02-0000-1000-8000-00805f9b34fb")
/// 写入特征UUID - 0000ABC1-0000-1111-2222-123456789ABC
static let WRITE_CHAR_UUID = CBUUID(string: "0000abc1-0000-1111-2222-123456789abc")
/// 通知特征UUID - 0000ABC2-0000-1111-2222-123456789ABC
static let NOTIFY_CHAR_UUID = CBUUID(string: "0000abc2-0000-1111-2222-123456789abc")
/// 客户端特征配置描述符UUID
static let CLIENT_CHAR_CONFIG_UUID = CBUUID(string: "0000fd7b-0000-1000-8000-00805f9b34fb")
/// BLE扫描Action
static let ACTION_SCAN_RESULT = "com.yunqiinnovation.ble_service.ACTION_BLE_SCAN"
// ================== 连接状态 ==================
static let STATE_DISCONNECTED = 0
static let STATE_CONNECTING = 1
static let STATE_CONNECTED = 2
static let STATE_DISCONNECTING = 3
static let STATE_ERROR = 4
// ================== 广播厂商信息 ==================
/// 厂商ID - 0xABEF
static let MANUFACTURER_ID: UInt16 = 0xABEF
/// 客户ID - 0xA001
static let CUSTOMER_ID: UInt16 = 0xA001
/// 产品ID - 0xA001
static let PRODUCT_ID: UInt16 = 0xA001
/// 蓝牙状态-未连接
static let BT_STATE_DISCONNECTED: UInt8 = 0x00
/// 蓝牙状态-已连接
static let BT_STATE_CONNECTED: UInt8 = 0x0C
// ================== 协议格式 ==================
/// APP请求帧头
static let APP_REQUEST_HEADER: UInt8 = 0xAA
/// 设备响应帧头
static let DEVICE_RESPONSE_HEADER: UInt8 = 0xBB
/// 设备主动上报帧头
static let DEVICE_NOTIFY_HEADER: UInt8 = 0xCC
// ================== 协议指令 (CMD) ==================
/// 获取耳机版本号
static let CMD_GET_VERSION: UInt8 = 0x01
/// 获取耳机产品ID
static let CMD_GET_PRODUCT_ID: UInt8 = 0x02
/// 获取耳机颜色ID
static let CMD_GET_COLOR_ID: UInt8 = 0x03
/// 获取耳机电量ID
static let CMD_GET_BATTERY_INFO: UInt8 = 0x04
/// APP控制编解码指令
static let CMD_CONTROL_CODEC: UInt8 = 0x05
/// 音量增大
static let CMD_VOLUME_UP: UInt8 = 0x06
/// 音量减小
static let CMD_VOLUME_DOWN: UInt8 = 0x07
/// A2DP播放
static let CMD_PLAY_A2DP: UInt8 = 0x08
/// 唤醒指令
static let CMD_WAKE_UP: UInt8 = 0x11
// ================== 编解码控制值 ==================
/// 关闭编解码指令
static let CODEC_CONTROL_CLOSE: UInt8 = 0x00
/// 打开解码指令
static let CODEC_CONTROL_DECODE_ON: UInt8 = 0xA1
/// 通过A2DP播放
static let CODEC_CONTROL_A2DP_PLAY: UInt8 = 0xA2
/// 打开编码指令
static let CODEC_CONTROL_ENCODE_ON: UInt8 = 0xB1
/// 左声道
static let AUDIO_CHANNEL_LEFT: UInt8 = 0x01
/// 右声道
static let AUDIO_CHANNEL_RIGHT: UInt8 = 0x02
/// 立体声
static let AUDIO_CHANNEL_STEREO: UInt8 = 0x03
}