API 参考
本页统一列出 K900SDK 的控制指令、设备事件与公开接口,提供方法声明、调用方式、参数和返回说明。
阅读与调用方式
控制指令由 XYBleManager 发送,解析后的回复通过 receiveDataBlock 返回。BLE 文件、Wi-Fi 文件和 LC3 音频使用各自的数据回调。
| 内容 | 说明 |
|---|
| 方法参数 | 调用 SDK 方法时传入的值 |
| 指令回复 | 设备返回的回复码、字段与结果 |
| 设备事件 | 设备主动上报的信息,按事件码分发 |
返回值为 void 的控制方法通过回调获取执行结果。同类请求按业务顺序处理,涉及拍照、删除、关机或升级的请求,应确认执行结果后再决定是否重发。
XYBleRespondModel.status 以字符串形式返回设备状态。状态值的含义以对应指令为准;设备主动事件按各自的返回字段处理。
指令索引
心跳指令
指令码: cs_hrt
方法与调用
同步心跳包。
该方法无需参数。
objc[[XYBleManager sharedInstance] openHeart];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_hrt |
| 完成判定 | 收到 sr_hrt 且状态为 0,表示本次指令执行成功。 |
| 字段 | 类型 | 说明 |
|---|
| vt | integer | 电压,毫伏 |
| pt | integer | 电量百分比 |
| charg | integer | 充电状态 |
| ready | integer | 系统就绪状态 |
回复示例
json{
"C": "sr_hrt",
"S": 0,
"B": {
"vt": 4382,
"pt": 97,
"ready": 1,
"charg": 0
}
}
设置时间指令
指令码: cs_stm
方法与调用
设置时间。
该方法无需参数。
objc[[XYBleManager sharedInstance] sendSetTime];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_stm |
| 完成判定 | 收到 sr_stm 且状态为 0,表示本次指令执行成功。 |
无业务回复参数。
回复示例
json{
"C": "sr_stm",
"S": 0,
"B": ""
}
获取电量
指令码: cs_batv
方法与调用
获取电量。
objc- (void)sendGetBatteryVol;
该方法无需参数。
objc[[XYBleManager sharedInstance] sendGetBatteryVol];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_batv |
| 完成判定 | 收到 sr_batv 且状态为 0,表示本次指令执行成功。 |
| 字段 | 类型 | 说明 |
|---|
| vt | integer | 电压,毫伏 |
| pt | integer | 电量百分比 |
回复示例
json{
"C": "sr_batv",
"S": 0,
"B": {
"vt": 4381,
"pt": 97
}
}
查询版本
指令码: cs_syvr
方法与调用
获取版本。
objc- (void)sendGetSystemVersion;
该方法无需参数。
objc[[XYBleManager sharedInstance] sendGetSystemVersion];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_syvr |
| 完成判定 | 收到 sr_syvr 且状态为 0,表示本次指令执行成功。 |
| 字段 | 类型 | 说明 |
|---|
| app | string | 眼镜端App版本 |
| sys | string | 眼镜系统固件版本 |
| dpj | string | 单片机版本 |
回复示例
json{
"C": "sr_syvr",
"S": 0,
"B": "{\"app\":\"1.0.21\",\"sys\":\"S7_20250905\",\"dpj\":\"0.26.9.3\"}"
}
查询存储信息
指令码: cs_gtst
方法与调用
获取存储信息。
objc- (void)sendGetStorageInfo;
该方法无需参数。
objc[[XYBleManager sharedInstance] sendGetStorageInfo];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_gtst |
| 完成判定 | 收到 sr_gtst 且状态为 0,表示本次指令执行成功。 |
| 字段 | 类型 | 说明 |
|---|
| total_size | integer | 总存储容量 |
| free_size | integer | 可用存储容量 |
| phonum | integer | 照片数量 |
| vdonum | integer | 视频数量 |
| adonum | integer | 音频数量 |
回复示例
json{
"C": "sr_gtst",
"S": 0,
"B": "{\"phonum\":3,\"vdonum\":1,\"adonum\":0,\"free_size\":25370648576,\"total_size\":25603411968}"
}
关闭设备
指令码: cs_shut
方法与调用
设备关机。
该方法无需参数。
objc[[XYBleManager sharedInstance] shutDevice];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_shut |
| 完成判定 | 收到 sr_shut 且状态为 0,表示关机指令执行成功。 |
无业务回复参数。
回复示例
json{
"C": "sr_shut",
"S": 0
}
重启设备
指令码: cs_rebt
方法与调用
设备重启。
objc- (void)rebootDevice;
该方法无需参数。
objc[[XYBleManager sharedInstance] rebootDevice];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_rebt |
| 完成判定 | 收到 sr_rebt 且状态为 0,表示重启指令执行成功。 |
无业务回复参数。
回复示例
json{
"C": "sr_rebt",
"S": 0
}
拍照
指令码: cs_pho
方法与调用
拍照。
objc- (void)sendTakePhoto:(NSString *)pictureName;
| 参数 | 类型 | 说明 |
|---|
pictureName | NSString * | 图片名称:20241126162655 |
调用时传入对应的业务参数:
objc[[XYBleManager sharedInstance] sendTakePhoto:pictureName];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_pho |
| 完成判定 | 收到 sr_pho,状态为 0 且 succ 为 true,表示拍照成功。 |
| 字段 | 类型 | 说明 |
|---|
| succ | boolean | 操作是否成功 |
| state | integer | 业务状态 |
| type | integer | 类型 |
| phonum | integer | 未传输的照片数量 |
| vdonum | integer | 未传输的视频数量 |
| adonum | integer | 未传输的音频数量 |
回复示例
json{
"C": "sr_pho",
"S": 0,
"B": "{\"succ\":true,\"state\":0,\"type\":0,\"phonum\":4,\"vdonum\":1,\"adonum\":0}"
}
连拍
指令码: cs_ctph
方法与调用
连拍。
objc- (void)sendContinuePhoto;
该方法无需参数。
objc[[XYBleManager sharedInstance] sendContinuePhoto];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_ctph |
| 完成判定 | 通过 sr_ctph 获取连拍结果,succ 表示操作是否成功,state 表示业务状态。 |
| 字段 | 类型 | 说明 |
|---|
| succ | boolean | 操作是否成功 |
| state | integer | 业务状态 |
| phonum | integer | 未传输的照片数量 |
| vdonum | integer | 未传输的视频数量 |
| adonum | integer | 未传输的音频数量 |
回复示例
json{
"C": "sr_ctph",
"S": 5,
"B": "{\"succ\":false,\"state\":5,\"phonum\":5,\"vdonum\":1,\"adonum\":0}"
}
开始录像
指令码: cs_vdo
方法与调用
录像。
objc- (void)sendVideoRecord:(NSString *)videoName;
| 参数 | 类型 | 说明 |
|---|
videoName | NSString * | 视频名称:20241126162655 |
调用时传入对应的业务参数:
objc[[XYBleManager sharedInstance] sendVideoRecord:videoName];
使用说明: 录制过程中通过 ss_avpg 接收进度事件,录制结果通过 sr_vdo 返回。
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_vdo |
| 完成判定 | 停止录像后,通过 sr_vdo 获取录制结果;状态为 0 且 succ 为 true,表示录制成功。 |
| 字段 | 类型 | 说明 |
|---|
| succ | boolean | 操作是否成功 |
| state | integer | 业务状态 |
| type | integer | 类型 |
| phonum | integer | 未传输的照片数量 |
| vdonum | integer | 未传输的视频数量 |
| adonum | integer | 未传输的音频数量 |
回复示例
json{
"C": "sr_vdo",
"S": 0,
"B": "{\"succ\":true,\"state\":0,\"type\":0,\"phonum\":5,\"vdonum\":2,\"adonum\":0}"
}
停止录像
指令码: cs_stvd
方法与调用
停止视频录制。
objc- (void)sendStopVideoRecord;
该方法无需参数。
objc[[XYBleManager sharedInstance] sendStopVideoRecord];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_vdo |
| 完成判定 | 停止录像后,通过 sr_vdo 获取录制结果;状态为 0 且 succ 为 true,表示录制成功。 |
| 字段 | 类型 | 说明 |
|---|
| succ | boolean | 操作是否成功 |
| state | integer | 业务状态 |
| type | integer | 类型 |
| phonum | integer | 未传输的照片数量 |
| vdonum | integer | 未传输的视频数量 |
| adonum | integer | 未传输的音频数量 |
回复示例
json{
"C": "sr_vdo",
"S": 0,
"B": "{\"succ\":true,\"state\":0,\"type\":0,\"phonum\":5,\"vdonum\":2,\"adonum\":0}"
}
开始录音
指令码: cs_ado
方法与调用
录音。
objc- (void)sendAudioRecord:(NSString *)audioName;
| 参数 | 类型 | 说明 |
|---|
audioName | NSString * | 音频名称:20241126162655 |
调用时传入对应的业务参数:
objc[[XYBleManager sharedInstance] sendAudioRecord:audioName];
使用说明: 录制过程中通过 ss_avpg 接收进度事件,录制结果通过 sr_ado 返回。
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_ado |
| 完成判定 | 停止录音后,通过 sr_ado 获取录制结果;状态为 0 且 succ 为 true,表示录制成功。 |
| 字段 | 类型 | 说明 |
|---|
| succ | boolean | 操作是否成功 |
| state | integer | 业务状态 |
| phonum | integer | 未传输的照片数量 |
| vdonum | integer | 未传输的视频数量 |
| adonum | integer | 未传输的音频数量 |
回复示例
json{
"C": "sr_ado",
"S": 0,
"B": "{\"succ\":true,\"state\":0,\"phonum\":5,\"vdonum\":2,\"adonum\":1}"
}
停止录音
指令码: cs_stad
方法与调用
停止音频录制。
objc- (void)sendStopAudioRecord;
该方法无需参数。
objc[[XYBleManager sharedInstance] sendStopAudioRecord];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_ado |
| 完成判定 | 停止录音后,通过 sr_ado 获取录制结果;状态为 0 且 succ 为 true,表示录制成功。 |
| 字段 | 类型 | 说明 |
|---|
| succ | boolean | 操作是否成功 |
| state | integer | 业务状态 |
| phonum | integer | 未传输的照片数量 |
| vdonum | integer | 未传输的视频数量 |
| adonum | integer | 未传输的音频数量 |
回复示例
json{
"C": "sr_ado",
"S": 0,
"B": "{\"succ\":true,\"state\":0,\"phonum\":5,\"vdonum\":2,\"adonum\":1}"
}
开启眼镜热点
指令码: cs_opap
方法与调用
开启Wifi热点。
objc- (void)requestServerOpenHotspotWithOpenType:(NSInteger )openType;
| 参数 | 类型 | 说明 |
|---|
openType | NSInteger | 0普通,1OTA升级 |
调用时传入对应的业务参数:
objc[[XYBleManager sharedInstance] requestServerOpenHotspotWithOpenType:openType];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_apsr |
| 完成判定 | 收到 sr_apsr,状态为 0 且 succ 为 true,表示热点开启成功。 |
| 字段 | 类型 | 说明 |
|---|
| succ | boolean | 热点建立是否成功 |
| ssid | string | 热点名称 |
| pwd | string | 热点密码 |
回复示例
json{
"C": "sr_apsr",
"S": 0,
"B": "{\"succ\":true,\"ssid\":\"Ble_18b9a4\",\"pwd\":\"00001111\"}"
}
关闭眼镜热点
指令码: cs_csap
方法与调用
关闭Wifi热点。
objc- (void)closeHotspot;
该方法无需参数。
objc[[XYBleManager sharedInstance] closeHotspot];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_csap |
| 完成判定 | 收到 sr_csap 且状态为 0,表示热点关闭成功。 |
无业务回复参数。
回复示例
json{
"C": "sr_csap",
"S": 0,
"B": ""
}
请求文件传输
指令码: cs_asfl
方法与调用
请求文件传输。
objc- (void)askFile:(XYFileType )fileType;
| 参数 | 类型 | 说明 |
|---|
fileType | XYFileType | 文件类型 |
调用时传入对应的业务参数:
objc[[XYBleManager sharedInstance] askFile:fileType];
使用说明: 使用 XYFileType 指定请求的文件类型。发送指令后,眼镜自动通过 Socket 传输文件,文件数据通过 XYSocketManager.receiveDataBlock 接收。
返回说明
无响应。
清空眼镜的多媒体
指令码: cs_clst
方法与调用
请求清空多媒体。
objc- (void)sendClearAllMedia:(XYFileType )fileType;
| 参数 | 类型 | 说明 |
|---|
fileType | XYFileType | 文件类型 |
调用时传入对应的业务参数:
objc[[XYBleManager sharedInstance] sendClearAllMedia:fileType];
使用说明: 清空操作执行后,先查询设备状态,再决定是否重新发起。
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_clst |
| 完成判定 | 收到 sr_clst 且状态为 0,表示清空指令执行成功。 |
回复示例
json{
"C": "sr_clst",
"S": 0,
"B": "{\"ftype\":-1}"
}
获取眼镜多媒体的设置
指令码: cs_gmst
方法与调用
获取多媒体设置。
objc- (void)sendGetMediaSettings;
该方法无需参数。
objc[[XYBleManager sharedInstance] sendGetMediaSettings];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_gmst |
| 完成判定 | 收到 sr_gmst 且状态为 0,表示多媒体设置查询成功。 |
| 字段 | 类型 | 说明 |
|---|
| pw | integer | 照片宽度 |
| ph | integer | 照片高度 |
| vw | integer | 视频宽度 |
| vh | integer | 视频高度 |
| vq | integer | 0低,1中,2高 |
| vs | integer | 视频时长,秒 |
| as | integer | 录音时长,秒 |
回复示例
json{
"C": "sr_gmst",
"S": 0,
"B": "{\"pw\":1280,\"ph\":720,\"vw\":1920,\"vh\":1080,\"vq\":1,\"vs\":30,\"as\":60}"
}
设置拍照参数
指令码: cs_phst
方法与调用
设置拍照参数。
objc- (void)sendSetPhotoParam:(XYPhotoArgumentType )photoArgumentType;
| 参数 | 类型 | 说明 |
|---|
photoArgumentType | XYPhotoArgumentType | 拍照参数 |
调用时传入对应的业务参数:
objc[[XYBleManager sharedInstance] sendSetPhotoParam:photoArgumentType];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_phst |
| 完成判定 | 收到 sr_phst,状态为 0 且 succ 为 true,表示参数设置成功。 |
| 字段 | 类型 | 说明 |
|---|
| succ | boolean | 设置是否成功 |
| w | integer | 照片宽度 |
| h | integer | 照片高度 |
回复示例
json{
"C": "sr_phst",
"S": 0,
"B": "{\"succ\":true,\"w\":1280,\"h\":720}"
}
设置录像参数
指令码: cs_vdst
方法与调用
设置录像参数。
objc- (void)sendSetVideoParam:(XYVideoArgumentSizeType )videoArgumentSizeType videoArgumentQualityType:(XYVideoArgumentQualityType )videoArgumentQualityType videoArgumentDurationType:(XYVideoArgumentDurationType )videoArgumentDurationType;
| 参数 | 类型 | 说明 |
|---|
videoArgumentSizeType | XYVideoArgumentSizeType | 录像大小 |
videoArgumentQualityType | XYVideoArgumentQualityType | 录像质量 |
videoArgumentDurationType | XYVideoArgumentDurationType | 录像时长 |
调用时传入对应的业务参数:
objc[[XYBleManager sharedInstance] sendSetVideoParam:videoArgumentSizeType videoArgumentQualityType:videoArgumentQualityType videoArgumentDurationType:videoArgumentDurationType];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_vdst |
| 完成判定 | 收到 sr_vdst,状态为 0 且 succ 为 true,表示参数设置成功。 |
| 字段 | 类型 | 说明 |
|---|
| succ | boolean | 设置是否成功 |
| w | integer | 视频宽度 |
| h | integer | 视频高度 |
| q | integer | 视频质量 |
| s | integer | 视频时长,秒 |
回复示例
json{
"C": "sr_vdst",
"S": 0,
"B": "{\"succ\":true,\"w\":1920,\"h\":1080,\"q\":1,\"s\":30}"
}
设置录音参数
指令码: cs_adst
方法与调用
设置录音参数。
objc- (void)sendSetAudioParam:(XYAudioArgumentDurationType )audioArgumentType;
| 参数 | 类型 | 说明 |
|---|
audioArgumentType | XYAudioArgumentDurationType | 录音参数类型 |
调用时传入对应的业务参数:
objc[[XYBleManager sharedInstance] sendSetAudioParam:audioArgumentType];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_adst |
| 完成判定 | 收到 sr_adst,状态为 0 且 succ 为 true,表示参数设置成功。 |
| 字段 | 类型 | 说明 |
|---|
| succ | boolean | 设置是否成功 |
| s | integer | 录音时长,秒 |
回复示例
json{
"C": "sr_adst",
"S": 0,
"B": "{\"succ\":true,\"s\":60}"
}
状态回传
事件码: sr_stat
设备通过 receiveDataBlock 上报该事件。
事件数据
| 项目 | 内容 |
|---|
| 事件码 | sr_stat |
| 完成判定 | 根据 type 和 state 获取设备状态;type 为 sys 且 state 为 1 时,表示系统正在启动。 |
| 字段 | 类型 | 说明 |
|---|
| type | string | 状态类型,sys 表示系统状态 |
| state | integer | 当 type 为 sys 时,1 表示系统正在启动 |
| msg | string | 信息描述 |
事件示例
json{
"C": "sr_stat",
"S": 0,
"B": "{\"type\":\"sys\",\"state\":1,\"msg\":\"systen booting..\"}"
}
通知眼镜唤醒
指令码: cs_ivww
方法与调用
唤醒。
该方法无需参数。
objc[[XYBleManager sharedInstance] sendWakeUp];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_ivww |
| 完成判定 | 通过 sr_ivww 获取唤醒结果,lang 表示唤醒语言,src 表示唤醒来源。 |
| 字段 | 类型 | 说明 |
|---|
| lang | string | zh中文,en英文,unknow按键 |
| src | integer | 0语音,1触摸单击,2按键 |
回复示例
json{
"C": "sr_ivww",
"S": 0,
"B": {
"lang": "unknow",
"src": 0
}
}
手机发送热点信息
指令码: cs_wfsta
方法与调用
设置手机wifi。
objc- (void)sendWifiSTA:(NSString *)ssid pwd:(NSString *)pwd ip:(NSString *)ip;
| 参数 | 类型 | 说明 |
|---|
ssid | NSString * | 名称 |
pwd | NSString * | 密码 |
ip | NSString * | IP |
调用时传入对应的业务参数:
objc[[XYBleManager sharedInstance] sendWifiSTA:ssid pwd:pwd ip:ip];
返回说明
无响应。
是否开启图像算法
指令码: cs_phoalg
方法与调用
设置开启关闭图像算法。
objc- (void)sendSetPhoalg:(BOOL )isOn;
调用时传入对应的业务参数:
objc[[XYBleManager sharedInstance] sendSetPhoalg:isOn];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_phoalg |
| 完成判定 | 收到 sr_phoalg 且状态为 0,表示图像算法设置成功。 |
无业务回复参数。
回复示例
json{
"C": "sr_phoalg",
"S": 0,
"B": ""
}
是否开启视频防抖
指令码: cs_vdoeis
方法与调用
设置开启关闭视频防抖。
objc- (void)sendSetVdoeis:(BOOL )isOn;
调用时传入对应的业务参数:
objc[[XYBleManager sharedInstance] sendSetVdoeis:isOn];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_vdoeis |
| 完成判定 | 收到 sr_vdoeis 且状态为 0,表示视频防抖设置成功。 |
无业务回复参数。
回复示例
json{
"C": "sr_vdoeis",
"S": 0,
"B": ""
}
获取图像算法/视频防抖开关状态
指令码: cs_algeis
方法与调用
获取图像算法/视频防抖开关状态。
该方法无需参数。
objc[[XYBleManager sharedInstance] sendAlgeis];
返回说明
无响应。
获取智能交互开关
指令码: cs_swst
方法与调用
获取智能交互开关状态。
该方法无需参数。
objc[[XYBleManager sharedInstance] sendSwst];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_swst |
| 完成判定 | 收到 sr_swst 且状态为 0,表示智能交互开关查询成功。 |
| 字段 | 类型 | 说明 |
|---|
| status | integer | 智能交互开关状态 |
回复示例
json{
"C": "sr_swst",
"S": 0,
"B": {
"status": 65023
}
}
设置智能交互开关
指令码: cs_swit
方法与调用
设置智能交互开关。
objc- (void)sendSetSwit:(NSInteger )type isOn:(BOOL )isOn;
| 参数 | 类型 | 说明 |
|---|
type | NSInteger | 类型:1佩戴检测,2拍照提示,3录像提示,4录音提示,5按键唤醒,6触摸,7闪灯,8语音唤醒 |
isOn | BOOL | 是否打开 |
调用时传入对应的业务参数:
objc[[XYBleManager sharedInstance] sendSetSwit:type isOn:isOn];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_swit |
| 完成判定 | 收到 sr_swit 且状态为 0,表示智能交互开关设置成功。 |
| 字段 | 类型 | 说明 |
|---|
| type | integer | 开关类型:1佩戴检测,2拍照提示音,3录像提示音,4录音提示音,5按键唤醒,6触摸,7闪灯,8语音唤醒 |
| switch | integer | 开关状态:1开启,0关闭 |
回复示例
json{
"C": "sr_swit",
"S": 0,
"B": {
"type": 1,
"switch": 1
}
}
AI拍照传图
指令码: cs_aiph
方法与调用
AI拍照。
该方法无需参数。
objc[[XYBleManager sharedInstance] sendAiph];
使用说明: 该方法无需参数。图片数据的接收方式见 AI拍照与传图。
返回说明
无响应。
设置 Wi-Fi 开关
指令码: cs_wfop
方法与调用
设置wifi开关。
objc- (void)sendWifiWfop:(NSString *)ssid pwd:(NSString *)pwd isOn:(BOOL )isOn;
| 参数 | 类型 | 说明 |
|---|
ssid | NSString * | 名称 |
pwd | NSString * | 密码 |
isOn | BOOL | 是否打开 |
调用时传入对应的业务参数:
objc[[XYBleManager sharedInstance] sendWifiWfop:ssid pwd:pwd isOn:isOn];
返回说明
无响应。
同步AI状态
指令码: cs_sound
方法与调用
同步AI状态。
objc- (void)sendSound:(XYAIStatusType )statusType;
| 参数 | 类型 | 说明 |
|---|
statusType | XYAIStatusType | 状态类型 |
调用时传入对应的业务参数:
objc[[XYBleManager sharedInstance] sendSound:statusType];
使用说明: 使用 XYAIStatusType 指定开始、对话中、停止或无声状态。
返回说明
无响应。
获取佩戴状态
指令码: cs_wrst
方法与调用
获取佩戴状态。
objc- (void)sendGetWearState;
该方法无需参数。
objc[[XYBleManager sharedInstance] sendGetWearState];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_wrst |
| 完成判定 | 收到 sr_wrst 且状态为 0,表示本次指令执行成功。 |
回复示例
json{
"C": "sr_wrst",
"S": 0,
"B": {
"on": 0
}
}
获取BT蓝牙连接状态
指令码: cs_btst
方法与调用
获取BT蓝牙连接状态。
objc- (void)sendGetBTConnectState;
该方法无需参数。
objc[[XYBleManager sharedInstance] sendGetBTConnectState];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_btst |
| 完成判定 | 收到 sr_btst 且状态为 0,表示BT 蓝牙连接状态查询成功。 |
回复示例
json{
"C": "sr_btst",
"S": 0,
"B": {
"on": 0
}
}
设置 BLE 名称
指令码: cs_blna
方法与调用
设置Ble蓝牙名称。
objc- (void)sendSetBleName:(NSString *)bleName;
| 参数 | 类型 | 说明 |
|---|
bleName | NSString * | Ble蓝牙名称 |
调用时传入对应的业务参数:
objc[[XYBleManager sharedInstance] sendSetBleName:bleName];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_blna |
| 完成判定 | 收到 sr_blna 且状态为 0,表示 BLE 蓝牙名称设置成功。 |
| 字段 | 类型 | 说明 |
|---|
| blename | string | BLE 蓝牙名称 |
回复示例
json{
"C": "sr_blna",
"S": 0,
"B": {
"blename": "Ble_4511"
}
}
查询经典蓝牙名称
指令码: cs_gbtna
方法与调用
获取BT蓝牙名称。
objc- (void)sendGetBTName;
该方法无需参数。
objc[[XYBleManager sharedInstance] sendGetBTName];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_gbtna |
| 完成判定 | 收到 sr_gbtna 且状态为 0,表示BT 蓝牙名称查询成功。 |
回复示例
json{
"C": "sr_gbtna",
"S": 0,
"B": {
"btname": "BT_4511"
}
}
查询蓝牙地址
指令码: cs_btaddr
方法与调用
获取Mac地址。
objc- (void)sendGetMacAddress;
该方法无需参数。
objc[[XYBleManager sharedInstance] sendGetMacAddress];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_btaddr |
| 完成判定 | 收到 sr_btaddr 且状态为 0,表示本次指令执行成功。 |
回复示例
json{
"C": "sr_btaddr",
"S": 0,
"B": {
"btaddr": "2b:be:eb:54:45:11"
}
}
设置音量
指令码: cs_vol
方法与调用
设置音量。
objc- (void)sendSetVolume:(NSInteger)volume;
| 参数 | 类型 | 说明 |
|---|
volume | NSInteger | 音量,范围0~15 |
调用时传入对应的业务参数:
objc[[XYBleManager sharedInstance] sendSetVolume:volume];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_vol |
| 完成判定 | 收到 sr_vol 且状态为 0,表示音量设置成功。 |
无业务回复参数。
回复示例
json{
"C": "sr_vol",
"S": 0
}
OTA进度
事件码: sr_adota
设备通过 receiveDataBlock 上报该事件。
事件数据
| 项目 | 内容 |
|---|
| 事件码 | sr_adota |
| 完成判定 | 收到 sr_adota,表示升级状态回传成功。 |
| 字段 | 类型 | 说明 |
|---|
| type | string | update进度,success成功,error失败 |
| progress | integer | 0~100 |
事件示例
json{
"C": "sr_adota",
"B": {
"type": "update",
"progress": 35
}
}
LC3 音频传输开关
指令码: enable_custom_audio_tx
方法与调用
设置 LC3 音频传输开关。
objc- (void)sendEnableLC3:(BOOL)isOn;
| 参数 | 类型 | 说明 |
|---|
isOn | BOOL | 是否开启,YES 开启,NO 关闭 |
调用时传入对应的业务参数:
objc// 开启 LC3 音频传输
[[XYBleManager sharedInstance] sendEnableLC3:YES];
// 关闭 LC3 音频传输
[[XYBleManager sharedInstance] sendEnableLC3:NO];
使用说明: 开启前注册 lc3ReceiveDataBlock,接收眼镜发送的 LC3 编码音频数据。结束音频业务时传入 NO 关闭传输。
返回说明
无响应。
语音命令
事件码: sr_vcmd
设备通过 receiveDataBlock 上报该事件。
事件数据
| 项目 | 内容 |
|---|
| 事件码 | sr_vcmd |
| 完成判定 | 收到 sr_vcmd,表示语音命令事件回传成功。 |
| 字段 | 类型 | 说明 |
|---|
| cmd | integer | 语音命令 ID:1拍照;2开始录像;3停止录像;4接听电话;5拒接或挂断电话;6音量加;7音量减;20语音会话超时结束;21无效命令或当前状态不允许 |
事件示例
json{
"C": "sr_vcmd",
"S": 0,
"B": {
"cmd": 20
}
}
触摸事件
事件码: sr_tpevt
设备通过 receiveDataBlock 上报该事件。
事件数据
| 项目 | 内容 |
|---|
| 事件码 | sr_tpevt |
| 完成判定 | 收到 sr_tpevt,表示触摸事件回传成功。 |
| 字段 | 类型 | 说明 |
|---|
| type | integer | 触摸事件类型:0单击;1双击;2三击;3长按;4前滑;5后滑;6上滑;7下滑 |
事件示例
json{
"C": "sr_tpevt",
"S": 0,
"B": {
"type": 1
}
}
按钮事件
事件码: sr_keyevt
设备通过 receiveDataBlock 上报该事件。
事件数据
| 项目 | 内容 |
|---|
| 事件码 | sr_keyevt |
| 完成判定 | 收到 sr_keyevt,表示按钮事件回传成功。 |
| 字段 | 类型 | 说明 |
|---|
| button | integer | 按钮:0左按钮,1右按钮 |
| type | integer | 按压类型:0单次按压,1长按,2双次按压,3三次按压 |
事件示例
json{
"C": "sr_keyevt",
"B": "{\"button\":0,\"type\":0}"
}
停止AI
事件码: sr_stai
设备通过 receiveDataBlock 上报该事件。
事件数据
| 项目 | 内容 |
|---|
| 事件码 | sr_stai |
| 完成判定 | type 为 0,表示 AI 已停止或结束。 |
| 字段 | 类型 | 说明 |
|---|
| type | integer | 0 表示 AI 已停止或结束 |
事件示例
json{
"C": "sr_stai",
"S": 0,
"B": {
"type": 0
}
}
日志上报
事件码: sr_log
设备通过 receiveDataBlock 上报该事件。
事件数据
| 项目 | 内容 |
|---|
| 事件码 | sr_log |
| 完成判定 | 收到 sr_log,表示日志上报成功。 |
| 字段 | 类型 | 说明 |
|---|
| curr | integer | 当前包序号 |
| body | string | 日志数据内容 |
事件示例
json{
"C": "sr_log",
"B": {
"curr": 1,
"body": "log content..."
}
}
AI 继续
指令码: cs_wkcfm
方法与调用
继续 AI 会话,取消延迟提示音并重置 AI 定时器。
objc- (void)sendAiConfirm;
该方法无需参数。
objc[[XYBleManager sharedInstance] sendAiConfirm];
使用说明: 取消延迟提示音,重置 AI 定时器。
返回说明
无响应。
唤醒音延时设置
指令码: cs_wsdelay
方法与调用
设置唤醒提示音的延时时间。
objc- (void)sendSoundDelay:(NSInteger )mills;
调用时传入对应的业务参数:
objc[[XYBleManager sharedInstance] sendSoundDelay:mills];
使用说明: 设置唤醒提示音的延时时间。
返回说明
无响应。
视频ROI设置
指令码: cs_vdroixy
方法与调用
设置视频 ROI 区域的左上角坐标。
objc- (void)sendVideoRoixyWithX:(NSInteger)x y:(NSInteger)y;
| 参数 | 类型 | 说明 |
|---|
x | NSInteger | ROI 区域左上角的 X 坐标,范围 0~1144 |
y | NSInteger | ROI 区域左上角的 Y 坐标,范围 0~1020 |
调用时传入对应的业务参数:
objc[[XYBleManager sharedInstance] sendVideoRoixyWithX:x y:y];
使用说明: 调用参数为 x 和 y。
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_vdroixy |
| 完成判定 | 收到 sr_vdroixy 且状态为 0,表示视频 ROI 设置成功。 |
回复示例
json{
"C": "sr_vdroixy",
"S": 0,
"B": "{\"succ\":true}"
}
语音唤醒关闭
事件码: sr_ivcw
设备通过 receiveDataBlock 上报该事件。
事件数据
| 项目 | 内容 |
|---|
| 事件码 | sr_ivcw |
| 完成判定 | 收到 sr_ivcw,表示语音唤醒关闭事件回传成功。 |
无业务回复参数。
事件示例
json{
"C": "sr_ivcw",
"S": 0
}
设置视频比特率
指令码: cs_vbit
方法与调用
设置视频比特率。
objc- (void)sendSetVideoBitrate:(NSInteger)bitrate;
| 参数 | 类型 | 说明 |
|---|
bitrate | NSInteger | 比特率 |
调用时传入对应的业务参数:
objc[[XYBleManager sharedInstance] sendSetVideoBitrate:bitrate];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_vbit |
| 完成判定 | 收到 sr_vbit 且状态为 0,表示视频比特率设置成功。 |
无业务回复参数。
回复示例
json{
"C": "sr_vbit",
"S": 0,
"B": ""
}
播放蓝牙连接提示音
指令码: cs_blecfm
方法与调用
播放蓝牙连接提示音。
objc- (void)sendPlayBleConnectPromptTone;
该方法无需参数。
objc[[XYBleManager sharedInstance] sendPlayBleConnectPromptTone];
使用说明: 播放“Connected”连接提示音,无需参数。
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_blecfm |
| 完成判定 | 收到 sr_blecfm 且状态为 0,表示播放连接提示音指令执行成功。 |
无业务回复参数。
回复示例
json{
"C": "sr_blecfm",
"S": 0
}
bt是否随佩戴检测自动断开
指令码: cs_wbdc
方法与调用
设置摘下眼镜时 BT 自动断开的功能开关,默认关闭。
objc- (void)sendSetWearBTDisconnect:(BOOL)isOn;
| 参数 | 类型 | 说明 |
|---|
isOn | BOOL | YES 开启,NO 关闭 |
调用时传入对应的业务参数:
objc[[XYBleManager sharedInstance] sendSetWearBTDisconnect:isOn];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_wbdc |
| 完成判定 | 收到 sr_wbdc 且状态为 0,表示摘下时 BT 自动断开设置成功。 |
无业务回复参数。
回复示例
json{
"C": "sr_wbdc",
"S": 0
}
是否允许未佩戴时也能用 AI
指令码: cs_nwai
方法与调用
设置是否允许未佩戴眼镜时使用 AI。
objc- (void)sendSetNotWearingAI:(BOOL)isOn;
| 参数 | 类型 | 说明 |
|---|
isOn | BOOL | YES 允许,NO 不允许 |
调用时传入对应的业务参数:
objc[[XYBleManager sharedInstance] sendSetNotWearingAI:isOn];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_nwai |
| 完成判定 | 收到 sr_nwai 且状态为 0,表示未佩戴时使用 AI 的开关设置成功。 |
| 字段 | 类型 | 说明 |
|---|
| switch | integer | 1允许,0不允许 |
回复示例
json{
"C": "sr_nwai",
"S": 0,
"B": {
"switch": 0
}
}
设置摘下时间
指令码: cs_woft
方法与调用
设置摘下眼镜后触发摘下状态的等待时间。
objc- (void)sendSetWearOffTime:(NSInteger)time;
| 参数 | 类型 | 说明 |
|---|
time | NSInteger | 延时时间,范围 1~120 秒 |
调用时传入对应的业务参数:
objc[[XYBleManager sharedInstance] sendSetWearOffTime:time];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_woft |
| 完成判定 | 收到 sr_woft 且状态为 0,表示摘下检测延时设置成功。 |
| 字段 | 类型 | 说明 |
|---|
| time | integer | 摘下检测延时时间,范围 1~120 秒 |
回复示例
json{
"C": "sr_woft",
"S": 0,
"B": {
"time": 5
}
}
查询系统是否准备好
指令码: cs_syrd
方法与调用
查询系统是否准备好。
objc- (void)sendGetSystemStatus;
该方法无需参数。
objc[[XYBleManager sharedInstance] sendGetSystemStatus];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_syrd |
| 完成判定 | 收到 sr_syrd 且状态为 0,表示本次指令执行成功。 |
回复示例
json{
"C": "sr_syrd",
"S": 0,
"B": {
"ready": 1
}
}
确认文件接收
指令码: cs_flrv
方法与调用
报告某个文件接收完。
objc- (void)sendFileRecv:(XYFileType )fileType fileName:(NSString *)fileName;
| 参数 | 类型 | 说明 |
|---|
fileType | XYFileType | 文件类型,XYFileTypeAll不可用 |
fileName | NSString * | 文件名称 |
调用时传入对应的业务参数:
objc[[XYBleManager sharedInstance] sendFileRecv:fileType fileName:fileName];
使用说明: 每个文件接收、校验并保存成功后,调用此方法向眼镜确认文件已接收,传入对应的文件类型和文件名。
返回说明
无响应。
设置经典蓝牙名称
指令码: cs_btna
方法与调用
设置BT蓝牙名称。
objc- (void)sendSetBTName:(NSString *)btName;
| 参数 | 类型 | 说明 |
|---|
btName | NSString * | BT蓝牙名称 |
调用时传入对应的业务参数:
objc[[XYBleManager sharedInstance] sendSetBTName:btName];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_btna |
| 完成判定 | 收到 sr_btna 且状态为 0,表示BT 蓝牙名称设置成功。 |
| 字段 | 类型 | 说明 |
|---|
| btname | string | BT 蓝牙名称 |
回复示例
json{
"C": "sr_btna",
"S": 0,
"B": {
"btname": "K900"
}
}
设置开启关闭定向拾音
指令码: cs_svad
方法与调用
设置开启关闭定向拾音。
objc- (void)sendSetSvad:(BOOL )isOn;
调用时传入对应的业务参数:
objc[[XYBleManager sharedInstance] sendSetSvad:isOn];
返回说明
无响应。
连接指定 Wi-Fi
指令码: cs_wfcon
方法与调用
连接到指定 Wi-Fi。
objc- (void)sendConnectWifi:(NSString *)ssid pwd:(NSString *)pwd;
| 参数 | 类型 | 说明 |
|---|
ssid | NSString * | 要连接的 Wi-Fi 名称 |
pwd | NSString * | 要连接的 Wi-Fi 密码 |
调用时传入对应的业务参数:
objc[[XYBleManager sharedInstance] sendConnectWifi:ssid pwd:pwd];
返回说明
无响应。
AI拍照(指定图片参数)
指令码: cs_bleph
方法与调用
Ble拍照。
objc- (void)sendTakeBlePhoto:(NSString *)pictureName width:(NSInteger)width height:(NSInteger)height quality:(NSInteger)quality;
| 参数 | 类型 | 说明 |
|---|
pictureName | NSString * | 图片名称 |
width | NSInteger | 图片宽度 |
height | NSInteger | 图片高度 |
quality | NSInteger | 图片质量 |
调用时传入对应的业务参数:
objc[[XYBleManager sharedInstance] sendTakeBlePhoto:pictureName width:width height:height quality:quality];
返回说明
无响应。
设置摄像头自定义参数模式
指令码: cs_en_campa
方法与调用
设置摄像头自定义参数模式。
objc- (void)sendEnCampa:(BOOL)isOn;
调用时传入对应的业务参数:
objc[[XYBleManager sharedInstance] sendEnCampa:isOn];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_en_campa |
| 完成判定 | 收到 sr_en_campa 且状态为 0,表示相机参数开关设置成功。 |
| 字段 | 类型 | 说明 |
|---|
| succ | boolean | 操作是否成功 |
| usermode | boolean | 用户模式是否开启 |
回复示例
json{
"C": "sr_en_campa",
"S": 0,
"B": "{\"succ\":true,\"usermode\":true}"
}
设置摄像头参数
指令码: cs_set_campa
方法与调用
设置摄像头参数。
objc- (void)sendCampaWithEV:(NSInteger)ev et:(long long)et iso:(NSInteger)iso awb:(NSInteger)awb;
| 参数 | 类型 | 说明 |
|---|
ev | NSInteger | EV 参数 |
et | long long | ET 参数 |
iso | NSInteger | ISO 参数 |
awb | NSInteger | AWB 参数 |
调用时传入对应的业务参数:
objc[[XYBleManager sharedInstance] sendCampaWithEV:ev et:et iso:iso awb:awb];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_set_campa |
| 完成判定 | 收到 sr_set_campa 且状态为 0,表示相机参数设置成功。 |
回复示例
json{
"C": "sr_set_campa",
"S": 0,
"B": "{\"succ\":true}"
}
获取当前摄像头参数
指令码: cs_get_campa
方法与调用
获取当前摄像头参数。
objc- (void)sendGetCampa;
该方法无需参数。
objc[[XYBleManager sharedInstance] sendGetCampa];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_get_campa |
| 完成判定 | 收到 sr_get_campa 且状态为 0,表示相机参数查询成功。 |
| 字段 | 类型 | 说明 |
|---|
| succ | boolean | 操作是否成功 |
| on | integer | 相机参数开关:1开启,0关闭 |
| ev | integer | 曝光补偿参数 |
| et | integer | 曝光时间参数 |
| iso | integer | ISO 参数 |
| awb | integer | 白平衡参数 |
回复示例
json{
"C": "sr_get_campa",
"S": 0,
"B": "{\"succ\":true,\"on\":0,\"ev\":0,\"et\":50000000,\"iso\":400,\"awb\":1}"
}
获取摄像头参数范围
指令码: cs_get_camparange
方法与调用
获取摄像头参数范围。
objc- (void)sendGetCamparange;
该方法无需参数。
objc[[XYBleManager sharedInstance] sendGetCamparange];
返回说明
| 项目 | 内容 |
|---|
| 回复码 | sr_get_camparange |
| 完成判定 | 收到 sr_get_camparange 且状态为 0,表示相机参数范围查询成功。 |
| 字段 | 类型 | 说明 |
|---|
| succ | boolean | 操作是否成功 |
| ev | string | 曝光补偿范围 |
| et | string | 曝光时间参数范围 |
| iso | string | ISO 范围 |
| awb | string | 白平衡可选值及对应模式名称 |
回复示例
json{
"C": "sr_get_camparange",
"S": 0,
"B": "{\"succ\":true,\"ev\":\"[-2,2]\",\"et\":\"[100000, 400000000]\",\"iso\":\"[100, 2400]\",\"awb\":\"[0, 1, 2, 3, 4, 5, 6, 7, 8] [OFF, AUTO, INCANDESCENT, FLUORESCENT, WARM_FLUORESCENT, DAYLIGHT, CLOUDY_DAYLIGHT, TWILIGHT, SHADE]\"}"
}
录制进度事件
事件码: ss_avpg
设备通过 receiveDataBlock 上报该事件。
使用说明: 录像和录音过程中上报录制进度。该事件不作为录制完成的判定依据,录制结果分别通过 sr_vdo 和 sr_ado 获取。
事件数据
| 项目 | 内容 |
|---|
| 事件码 | ss_avpg |
| 完成判定 | 进度事件不表示录制完成。 |
| 字段 | 类型 | 说明 |
|---|
| succ | boolean | 操作是否成功 |
| type | integer | 50:录像;52:录音 |
| total | integer | 进度总值 |
| current | integer | 当前进度值 |
事件示例
json{
"C": "ss_avpg",
"S": 0,
"B": "{\"succ\":true,\"type\":50,\"total\":60,\"current\":1}"
}
响应模型
| XYBleRespondModel 字段 | 类型 | 说明 |
|---|
cmd | NSString * | 回复指令或事件码 |
status | NSString * | 设备返回的状态 |
data | NSDictionary * | 解析后的业务数据 |
originalData | NSData * | 原始回复数据 |
| 数据通道 | 回调 | 内容 |
|---|
| BLE 控制 | XYBleManager.receiveDataBlock | 指令回复和设备事件 |
| BLE 文件 | XYBleManager.fileReceiveDataBlock | 完整文件数据 |
| LC3 音频 | XYBleManager.lc3ReceiveDataBlock | 编码音频数据 |
| Wi-Fi 文件 | XYSocketManager.receiveDataBlock | 累计文件数据和接收状态 |
| OTA | XYOTAManager.sendProgressBlock / completionBlock | 文件发送进度和结果 |
SDK接口
XYBleManager
sharedInstance
单例。
objc+ (XYBleManager *)sharedInstance;
xy_sdkVersion
SDK版本号。
objc- (NSString *)xy_sdkVersion;
xy_startLog:
开启日志。
objc- (void)xy_startLog:(BOOL )isStart;
xy_startScanBleDevice
开始扫描设备。
objc- (void)xy_startScanBleDevice;
xy_stopScanBleDevice
停止扫描设备。
objc- (void)xy_stopScanBleDevice;
xy_connectBleDevice:
连接设备。
objc- (void)xy_connectBleDevice:(CBPeripheral *)peripheral;
xy_cancelConnectBleDevice:
取消连接设备。
objc- (void)xy_cancelConnectBleDevice:(CBPeripheral *)peripheral;
xy_cancelAllConnect
取消所有连接设备。
objc- (void)xy_cancelAllConnect;
xy_isConnectBleDevice
判断是否连接有外设。
objc- (BOOL)xy_isConnectBleDevice;
openHeart
方法声明、参数和返回见:心跳指令(cs_hrt)。
sendSetTime
方法声明、参数和返回见:设置时间指令(cs_stm)。
sendGetBatteryVol
方法声明、参数和返回见:获取电量(cs_batv)。
sendSetVolume:
方法声明、参数和返回见:设置音量(cs_vol)。
sendGetSystemStatus
方法声明、参数和返回见:查询系统是否准备好(cs_syrd)。
sendGetSystemVersion
方法声明、参数和返回见:查询版本(cs_syvr)。
sendGetStorageInfo
方法声明、参数和返回见:查询存储信息(cs_gtst)。
shutDevice
方法声明、参数和返回见:关闭设备(cs_shut)。
rebootDevice
方法声明、参数和返回见:重启设备(cs_rebt)。
sendTakePhoto:
方法声明、参数和返回见:拍照(cs_pho)。
sendContinuePhoto
方法声明、参数和返回见:连拍(cs_ctph)。
sendVideoRecord:
方法声明、参数和返回见:开始录像(cs_vdo)。
sendAudioRecord:
方法声明、参数和返回见:开始录音(cs_ado)。
requestServerOpenHotspotWithOpenType:
方法声明、参数和返回见:开启眼镜热点(cs_opap)。
closeHotspot
方法声明、参数和返回见:关闭眼镜热点(cs_csap)。
askFile:
方法声明、参数和返回见:请求文件传输(cs_asfl)。
sendFileRecv:fileName:
方法声明、参数和返回见:确认文件接收(cs_flrv)。
方法声明、参数和返回见:清空眼镜的多媒体(cs_clst)。
方法声明、参数和返回见:获取眼镜多媒体的设置(cs_gmst)。
sendSetPhotoParam:
方法声明、参数和返回见:设置拍照参数(cs_phst)。
sendSetVideoParam:videoArgumentQualityType:videoArgumentDurationType:
方法声明、参数和返回见:设置录像参数(cs_vdst)。
sendSetVideoBitrate:
方法声明、参数和返回见:设置视频比特率(cs_vbit)。
sendSetAudioParam:
方法声明、参数和返回见:设置录音参数(cs_adst)。
sendSetBTName:
方法声明、参数和返回见:设置经典蓝牙名称(cs_btna)。
sendSwst
方法声明、参数和返回见:获取智能交互开关(cs_swst)。
sendSetSwit:isOn:
方法声明、参数和返回见:设置智能交互开关(cs_swit)。
sendWifiSTA:pwd:ip:
方法声明、参数和返回见:手机发送热点信息(cs_wfsta)。
sendAlgeis
方法声明、参数和返回见:获取图像算法/视频防抖开关状态(cs_algeis)。
sendSetPhoalg:
方法声明、参数和返回见:是否开启图像算法(cs_phoalg)。
sendSetVdoeis:
方法声明、参数和返回见:是否开启视频防抖(cs_vdoeis)。
sendSetSvad:
方法声明、参数和返回见:设置开启关闭定向拾音(cs_svad)。
sendAiph
方法声明、参数和返回见:AI拍照传图(cs_aiph)。
sendWifiWfop:pwd:isOn:
方法声明、参数和返回见:设置 Wi-Fi 开关(cs_wfop)。
sendSound:
方法声明、参数和返回见:同步AI状态(cs_sound)。
sendStopVideoRecord
方法声明、参数和返回见:停止录像(cs_stvd)。
sendStopAudioRecord
方法声明、参数和返回见:停止录音(cs_stad)。
sendWakeUp
方法声明、参数和返回见:通知眼镜唤醒(cs_ivww)。
sendGetWearState
方法声明、参数和返回见:获取佩戴状态(cs_wrst)。
sendGetBTConnectState
方法声明、参数和返回见:获取BT蓝牙连接状态(cs_btst)。
sendSetWearBTDisconnect:
方法声明、参数和返回见:bt是否随佩戴检测自动断开(cs_wbdc)。
sendSetNotWearingAI:
方法声明、参数和返回见:是否允许未佩戴时也能用 AI(cs_nwai)。
sendSetWearOffTime:
方法声明、参数和返回见:设置摘下时间(cs_woft)。
sendSetBleName:
方法声明、参数和返回见:设置 BLE 名称(cs_blna)。
sendGetBTName
方法声明、参数和返回见:查询经典蓝牙名称(cs_gbtna)。
sendGetMacAddress
方法声明、参数和返回见:查询蓝牙地址(cs_btaddr)。
sendConnectWifi:pwd:
方法声明、参数和返回见:连接指定 Wi-Fi(cs_wfcon)。
sendTakeBlePhoto:width:height:quality:
方法声明、参数和返回见:AI拍照(指定图片参数)(cs_bleph)。
sendAiConfirm
方法声明、参数和返回见:AI 继续(cs_wkcfm)。
sendPlayBleConnectPromptTone
方法声明、参数和返回见:播放蓝牙连接提示音(cs_blecfm)。
sendSoundDelay:
方法声明、参数和返回见:唤醒音延时设置(cs_wsdelay)。
sendVideoRoixyWithX:y:
方法声明、参数和返回见:视频ROI设置(cs_vdroixy)。
sendEnCampa:
方法声明、参数和返回见:设置摄像头自定义参数模式(cs_en_campa)。
sendCampaWithEV:et:iso:awb:
方法声明、参数和返回见:设置摄像头参数(cs_set_campa)。
sendGetCampa
方法声明、参数和返回见:获取当前摄像头参数(cs_get_campa)。
sendGetCamparange
方法声明、参数和返回见:获取摄像头参数范围(cs_get_camparange)。
sendEnableLC3:
方法声明、参数和返回见:LC3 音频传输开关(enable_custom_audio_tx)。
sendCustomDataHex:
发送自定义Hex指令。
objc- (void)sendCustomDataHex:(NSString *)dataHex;
discoverDeviceBlock
扫描发现设备回调。
objc@property (nonatomic, copy) void(^discoverDeviceBlock)(CBPeripheral *peripheral, NSDictionary *advertisementData, NSNumber *RSSI);
connectStatusBlock
连接状态回调。
objc@property (nonatomic, copy) void(^connectStatusBlock)(BOOL isConnect);
receiveOriginalDataBlock
接收原始数据回调。
objc@property (nonatomic, copy) void(^receiveOriginalDataBlock)(NSData *respondData);
receiveDataBlock
接收数据回调。
objc@property (nonatomic, copy) void(^receiveDataBlock)(XYBleRespondModel *respondModel);
lc3ReceiveDataBlock
接收LC3音频数据回调。
objc@property (nonatomic, copy) void(^lc3ReceiveDataBlock)(NSData *lc3Data);
fileReceiveDataBlock
文件接收数据回调。
objc@property (nonatomic, copy) void(^fileReceiveDataBlock)(NSData *fileData);
XYSocketManager
sharedInstance
单例。
objc+ (XYSocketManager *)sharedInstance;
xy_connectSocket
连接。
objc- (void)xy_connectSocket;
connectStatusBlock
连接状态回调。
objc@property (nonatomic, copy) void(^connectStatusBlock)(NSError * _Nullable error);
receiveDataBlock
接收数据回调。
objc@property (nonatomic, copy) void(^receiveDataBlock)(BOOL isCompleted, XYFileDataType fileDataType, NSString *fileName, NSData *data, NSInteger fileSize);
XYOTAManager
sharedInstance
单例。
objc+ (XYOTAManager *)sharedInstance;
xy_connectSocket
连接。
objc- (void)xy_connectSocket;
xy_disconnectSocket
断开。
objc- (void)xy_disconnectSocket;
xy_startOTAWithData:type:
开始 OTA 发送。
objc- (void)xy_startOTAWithData:(NSData *)data type:(XYOTADataType)type;
connectStatusBlock
连接状态回调。
objc@property (nonatomic, copy) void(^connectStatusBlock)(NSError * _Nullable error);
sendProgressBlock
OTA 进度回调。
objc@property (nonatomic, copy) void(^sendProgressBlock)(NSInteger packIndex, NSInteger packNum, NSInteger currentSize, NSInteger fileSize);
completionBlock
OTA 完成回调。
objc@property (nonatomic, copy) void(^completionBlock)(BOOL success, NSError * _Nullable error);
XYBleRespondModel
cmd
指令。
objc@property (nonatomic, copy) NSString *cmd;
status
状态。
objc@property (nonatomic, copy) NSString *status;
data
数据。
objc@property (nonatomic, strong) NSDictionary *data;
originalData
原数据。
objc@property (nonatomic, strong) NSData *originalData;
XYFileRespondModel
fileName
文件名。
objc@property (nonatomic, copy) NSString *fileName;
fileType
文件类型:0图片,1视频,2音频。
objc@property (nonatomic, assign) NSInteger fileType;
fileSize
文件大小。
objc@property (nonatomic, assign) NSInteger fileSize;
fileData
文件数据。
objc@property (nonatomic, strong) NSData *fileData;
XYDataUtil
xy_convertStreamToFileDataWithData:
转换流数据成文件数据。
objc+ (XYFileRespondModel *)xy_convertStreamToFileDataWithData:(NSData *)data;
枚举声明
调用接口时使用对应的枚举类型。
XYFileType
objctypedef enum : NSUInteger {
XYFileTypePhoto, ///< 传输图片 / Photo
XYFileTypeVideo, ///< 传输视频 / Video
XYFileTypeAudio, ///< 传输音频 / Audio
XYFileTypeBle, ///< 传输BLE图片 / BLE Photo
XYFileTypeAll, ///< 传输所有图片、音视频 / All
} XYFileType;
XYPhotoArgumentType
objctypedef enum : NSUInteger {
XYPhotoArgumentType1280_720, ///< 1280x720
XYPhotoArgumentType1920_1080, ///< 1920x1080
XYPhotoArgumentType2560_1920, ///< 2560x1920
XYPhotoArgumentType3840_2160, ///< 3840x2160
XYPhotoArgumentType4208_3120, ///< 4208x3120
} XYPhotoArgumentType;
XYVideoArgumentSizeType
objctypedef enum : NSUInteger {
XYVideoArgumentSizeType1920_1080, ///< 1920x1080
XYVideoArgumentSizeType1280_720, ///< 1280x720
XYVideoArgumentSizeType640_480, ///< 640x480
} XYVideoArgumentSizeType;
XYVideoArgumentQualityType
objctypedef enum : NSUInteger {
XYVideoArgumentQualityTypeLow, ///< 低-0 / Low-0
XYVideoArgumentQualityTypeMiddle, ///< 中-1 / Middle-1
XYVideoArgumentQualityTypeHigh, ///< 高-2 / High-2
} XYVideoArgumentQualityType;
XYVideoArgumentDurationType
objctypedef enum : NSUInteger {
XYVideoArgumentDurationType30, ///< 30S
XYVideoArgumentDurationType60, ///< 60S
XYVideoArgumentDurationType180, ///< 180S
XYVideoArgumentDurationType300, ///< 300S
} XYVideoArgumentDurationType;
XYAudioArgumentDurationType
objctypedef enum : NSUInteger {
XYAudioArgumentDurationType60, ///< 60S
XYAudioArgumentDurationType180, ///< 180S
XYAudioArgumentDurationType300, ///< 300S
XYAudioArgumentDurationType600, ///< 600S
XYAudioArgumentDurationType1800, ///< 1800S
XYAudioArgumentDurationType3600, ///< 3600S
XYAudioArgumentDurationType7200, ///< 7200S
} XYAudioArgumentDurationType;
XYAIStatusType
objctypedef enum : NSUInteger {
XYAIStatusType_Start, ///< 开始 / Start
XYAIStatusType_Chat, ///< 对话中 / In the conversation
XYAIStatusType_Stop, ///< 停止 / Stop
XYAIStatusType_No_Sound, ///< 无声 / Silence
} XYAIStatusType;
XYFileDataType
objctypedef enum : NSUInteger {
XYFileDataTypePhoto, ///< 图片 / Photo
XYFileDataTypeVideo, ///< 视频 / Video
XYFileDataTypeAudio, ///< 音频 / Audio
} XYFileDataType;
XYOTADataType
objctypedef enum : NSUInteger {
XYOTADataTypeOTA_APK = 0, ///< APK
XYOTADataTypeOTA_MTK = 1, ///< MTK
XYOTADataTypeOTA_BES = 2, ///< BES
} XYOTADataType;