设备、文件与维测业务
设备、升级与助听业务
设备状态查询
连接参数查询
表 1 连接参数查询字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| protocal_version | 0x01 | 1 | uint8 | • 0x01:协议版本1.0 • 0x02:协议版本2.0 |
O | 1.0/1.0 |
| SN_get | 0x02 | 64 | uint8 | SN:字符串,最大64Byte,使用时根据具体的SN号长度封包。 | O | 1.0/1.0 |
| BT_MAC_get | 0x03 | 6 | uint8 | BT的MAC地址。 | O | 1.0/1.0 |
| max_frame_unit | 0x04 | 2 | uint16 | 链路层最大帧长度。 | O | 1.0/1.0 |
| interval | 0x05 | 2 | uint16 | 数据包发送最小间隔时间,单位:ms。 | O | 1.0/1.0 |
| Device_version | 0x06 | 32 | uint8 | 设备软件版本号:最大32Byte字符串,使用时根据具体的版本号长度封包。 | O | 1.0/1.0 |
| Earphone_role | 0x07 | 1 | uint8 | 双耳耳机主副信息查询: 1:主耳耳机 2:副耳耳机 |
O | 1.0/1.0 |
| Earphone_pos | 0x08 | 1 | uint8 | 双耳耳机左右信息查询: 1:左耳耳机 2:右耳耳机 |
O | 1.0/1.0 |
| Name | 0x09 | 32 | uint8 | 产品名称:字符串,最大32Byte,使用时根据具体的长度封包。 | O | 1.0/1.0 |
| Model | 0x0a | 32 | uint8 | 产品型号:字符串,最大32Byte,使用时根据具体的长度封包。 | O | 1.0/1.0 |
| Hardware_id | 0x0b | 4 | uint32 | 设备硬件版本号。 | O | 1.0/1.0 |
| Country | 0x0c | 1 | uint8 | 国家码查询: 0:中文 1:英文 国家码值由nv中的值定义。取值与“设备国家设置”保持一致。 |
O | 1.0/1.0 |
-
请求帧:(查询时,仅为TL格式,Length=0)

-
响应帧:
-
成功响应:

-
失败响应:

-
设备电池电量百分比查询
表 1 设备电池电量百分比查询字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| only_battery_percent | 0x01 | 1 | uint8 | 设备电池电量百分比。取值范围[0,100]。 设备只需上报一个电量表示时使用,如:手表电池电量。 |
O | 1.0/1.0 |
| left_battery_percent | 0x02 | 1 | uint8 | 设备电池不止一个时使用,对于TWS耳机来说,表示左耳机电量百分比,其它品类的设备需求明确后补充。取值范围[0,100]。 | O | 1.0/1.0 |
| right_battery_percent | 0x03 | 1 | uint8 | 设备电池不止一个时使用,对于TWS耳机来说,表示右耳机电量百分比,其它品类的设备需求明确后补充。取值范围[0,100]。 | O | 1.0/1.0 |
| box_battery_percent | 0x04 | 1 | uint8 | 设备电池不止一个时使用,对于TWS耳机来说,表示充电盒电量百分比,其它品类的设备需求明确后补充。取值范围[0,100]。 | O | 1.0/1.0 |
| battery_ charging_state | 0x05 | 1 | uint8 | 充电状态,包括左耳、右耳、充电盒充电状态返回,取值范围: • 0:未充电 • 1:充电中 • 2:已充满 注意:充电状态与电池电量百分比配套使用,表示前面对应的电池充电状态。 |
O | 1.0/1.0 |
-
请求帧:

-
响应帧:
-
成功响应:

-
失败响应:

-
耳机连接方式查询
表 1 耳机连接方式查询字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| Earphone_num_get | 0x01 | 1 | uint8 | 表示当前连接的耳机: • 1:单左耳连接 • 2:单右耳连接 • 3:双耳连接(TWS形态,主耳连接设置APP) |
O | 1.0/1.0 |
-
请求帧:****

-
响应帧:
-
成功响应:

-
失败响应:

-
耳机佩戴状态查询
表 1 耳机佩戴状态查询字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| wearing_status_get | 0x01 | 1 | uint8 | 表示当前耳机佩戴状态: • 1:耳机不支持入耳检测和耳机佩戴检测功能。 • 2:入耳状态。 • 3:出耳状态。 |
O | 1.0/1.0 |
| control_wearing_status_get | 0x02 | 1 | uint8 | 查询是否设置了强制入耳状态: • 1:强制设置了耳机持续在入耳状态。 • 2:强制设置了耳机持续不在入耳状态。 • 3:没有强制设置耳机状态,由设备自身的Sensor和算法检测入耳状态。 |
O | 1.0/1.0 |
-
请求帧:****

-
响应帧:
-
成功响应:

-
失败响应:

-
设备音量查询
表 1 设备音量查询字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| hearingaid_volume_get | 0x01 | 4 | int32 | 获取助听音量(单位为0.001dB,如:以设置音量为2.13dB为例,下发的参数为2130)。 | O | 1.0/1.0 |
| music_volume_get | 0x02 | 4 | int32 | 获取音乐音量(单位为0.001dB,如:以设置音量为2.13dB为例,下发的参数为2130)。 | O | 1.0/1.0 |
| phone_volume_get | 0x03 | 4 | int32 | 获取通话音量(单位为0.001dB,如:以设置音量为2.13dB为例,下发的参数为2130)。 | O | 1.0/1.0 |
| message_volume_get | 0x04 | 4 | int32 | 获取信息提醒音量(单位为0.001dB,如:以设置音量为2.13dB为例,下发的参数为2130)。 | O | 1.0/1.0 |
| ring_volume_get | 0x05 | 4 | int32 | 获取提示音音量(单位为0.001dB,如:以设置音量为2.13dB为例,下发的参数为2130)。 | O | 1.0/1.0 |
说明: 获取实时音量。 “message_volume_get”用于获取信息提醒音量,如:屏类产品中短信或者其他信息提醒的音量。 “ring_volume_get”用于获取提示音音量,如:耳机等小产品中只有一种提示音音量,使用此命令获取。
-
请求帧:

-
响应帧:
-
成功响应:

-
失败响应:

-
设备状态变化上报
表 1 设备状态变化上报字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| hearingaid_volume_report | 0x01 | 4 | int32 | 助听音量变化上报(单位为0.001dB,如:以设置音量为2.13dB为例,下发的参数为2130)。 | O | 1.0/1.0 |
| wearing_status_report | 0x02 | 1 | uint8 | 耳机佩戴状态上报: • 1:耳机不支持入耳检测和耳机佩戴检测功能 • 2:入耳状态 • 3:出耳状态 |
O | 1.0/1.0 |
| hearingaid_mode_report | 0x03 | 1 | uint8 | 助听模式变化上报,算法和产品确定不同的模式参数,此命令可以查询对应的模式序列号。 • 0:自动检测模式 • 1:模式1 • 2:模式2 • 3:模式3 • 4:模式4 • 5:模式5 • 6~10:模式6~模式10 |
O | 1.0/1.0 |
说明: 为满足实时获取设备状态,设备某些状态信息变化时使用此命令主动上报。
-
请求帧:

-
响应帧:
-
成功响应:

-
失败响应:

-
获取日期时间
表 1 获取日期时间字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| time | 0x01 | 20 | uint8 | 日期时间以北京时间为准,字符串格式为:年-月-日 时:分:秒。 如:2023-06-07 14:09:03 时钟取24小时制。 |
O | 1.0/1.0 |
说明: 用于设备端获取服务端的日期时间。
-
请求帧:

-
响应帧:
-
成功响应:

-
失败响应

-
升级业务处理
升级全业务流程如图1所示。

升级准备
表 1 升级准备字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| upg_prepare | 0x01 | 4 | uint32 | 文件大小,单位:Byte | O | 1.0/1.0 |
-
请求帧:

-
响应帧:
-
成功响应:

-
失败响应:

-
说明: 本小节失败响应涉及的 value 中的 ret 为 /src/include/errcode.h 中定义的错误码,共 4 Byte,具体错误码含义请参照该头文件。 如: 应答帧中“ret(value)”的值为40-30-00-80,转为四字节错误码为0x80003040,则对应“errcode.h”中的ERRCODE_UPG_NOT_INIT,意为升级模块未进行初始化。
升级请求
表 1 升级请求字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| upg_request | 0x01 | 2 | bool | 升级请求信息。 • 0x00:升级不重启 • 0x01:升级重启 |
O | 1.0/1.0 |
-
请求帧:

-
响应帧:
-
成功响应:

-
失败响应:

-
说明: 本小节失败响应涉及的 value 中的 ret 为 /src/include/errcode.h 中定义的错误码,共 4 Byte,具体错误码含义请参照该头文件。
升级开始
说明: Melody不涉及。
表 1 升级开始字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| upg_start | 0x01 | 0 | NA | NA | O | 1.0/1.0 |
-
请求帧:

-
响应帧:
-
成功响应:

-
失败响应

-
说明: 本小节失败响应涉及的 value 中的 ret 为 /src/include/errcode.h 中定义的错误码,共 4 Byte,具体错误码含义请参照该头文件。
升级停止
表 1 升级停止字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| upg_stop | 0x01 | 0 | NA | NA | O | 1.0/1.0 |
-
请求帧:(请求帧仅需TL结构,Length为0(填写0x80))

-
响应帧:

说明: 本小节失败响应涉及的 value 中的 ret 为 /src/include/errcode.h 中定义的错误码,共 4 Byte,具体错误码含义请参照该头文件。
获取升级状态
表 1 获取升级状态字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| upg_getinfo | 0x01 | 2 | uint16 | 参考枚举upgrade_type_t,版本号,是否可升级等信息。 | M | 1.0/1.0 |
| upg_info_ack | 0x02 | sizeof(info_ack_t) | struct | • info_type:信息类型 • info_size:信息长度 • info:信息值 |
M | 1.0/1.0 |
表 2 upgrade_type_t枚举描述
| 枚举值描述 | 说明 |
|---|---|
| UPG_INFO_TYPE_VER | 升级版本号。 |
| UPG_INFO_TYPE_PERMIT | 是否可升级。 |
| UPG_INFO_TYPE_RESEND | 是否可断点续传(携带镜像hash值)。(Melody不涉及) |
| UPG_INFO_TYPE_IMAGE_FLAG | 升级镜像的唯一标识。(Melody不涉及) |
| UPG_INFO_TYPE_ONE_EAR | 是否单耳升级。 |
-
请求帧:

-
响应帧:

例如:查询是否可以升级。
请求帧:

应答帧:

说明: get info的应答桢中,info_ack_t结构体中的info有以下几种情况:
- 在查询版本号时,耳机应答工具。info的值是一四段式版本号的字符串(包含'\0'),字符串的具体size,填充在了info_ack_t结构体中的size成员中(包含'\0')。
- 在查询是否可升级时,耳机应答工具。info的值是4Byte的错误码(错误码为0时为可进行升级,其他错误码详情请参考“/src/include/errcode.h”)。
- 在询问是否单耳升级时,工具应答耳机。info使用1Byte的0(否)或1(是)即可。
助听业务处理
助听验配开启
表 1 助听验配开启字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| hearing_config_start | 0x01 | 1 | uint8 | • 0x01:助听验配开始 • 0x02:助听验配结束 |
O | 1.0/1.0 |
-
请求帧:****

-
响应帧:
-
成功响应:

-
失败响应:

-
获取环境噪声
耳机频点测试
表 1 耳机频点测试字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| left_ear_channel | 0x01 | 2 | uint16 | Value表示左耳需要测试的对应频点(具体支持的频点需要算法和APP厂家确定)(单位:Hz)。 | O | 1.0/1.0 |
| right_ear_channe | 0x02 | 2 | uint16 | Value表示右耳需要测试的对应频点(具体支持的频点需要算法和APP厂家确定) (单位:Hz)。 | O | 1.0/1.0 |
| Test_volume | 0x03 | 4 | Int32 | 表示对应频点需要播放的数字音量,与左/右耳频点组合使用(单位:0.001dB,如:以设置音量为2.13dB为例,下发的参数为2130)。 | O | 1.0/1.0 |
| Test_time | 0x04 | 2 | uint16 | 表示对应频点需要播放的时间,与左/右耳频点和音量一起组合使用(单位:ms)。 | M | 1.0/1.0 |
| Hearing_loss_level | 0x05 | 4 | Int32 | 表示目标听损等级,范围[0,80]。(单位:dB HL) | O | 1.0/1.0 |
说明:
- 需要通过“助听验配开启”章节,开启助听验配,才能进行耳机频点测试。耳机频点测试完成后,需要参考“助听验配开启”章节结束助听验配。
- 为确保设备处理的一致性,左耳测试频点/右耳测试频点+测试音量/听损等级+播放时间三个Type必须一次下发,不能分开下发。
- Test_volume和Hearing_loss_level互斥,且二者必须传其中一个。
- Test_volume范围[-120, 60], 单位:dB。建议音量不要大于-3dB,否则可能会失真。
- 因为产品使用的器件不一致,导致能接收的最大和最小音量也不同,所以,请先与产品确定播放音量范围,再设定播放的音量大小,否则会导致设置错误。
- 仅支持如下频点:125,250,500,750,1000,1500,2000,3000,4000,6000,8000(单位:Hz)。
-
请求帧:****

-
响应帧:
-
成功响应:

-
失败响应:

-
助听模式设置
表 1 助听模式设置字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| Hearingaid_mode | 0x01 | 1 | uint8 | 助听模式,算法和产品确定不同的模式参数,APP下发对应的模式序列号。 • 0:自动检测模式 • 1:模式1 • 2:模式2 • 3:模式3 • 4:模式4 • 5:模式5: • 6~10:模式6~模式10 |
O | 1.0/1.0 |
| Hearingaid_mode_mask | 0x02 | 2 | uint16 | 使用掩码设置助听模式的有效性,从低到高位每bit代表一个助听模式(最低位为“自动检测模式”),每bit位的值表示该模式的有效性: • 每bit值=0:代表该模式不生效,用户无法设置耳机到该模式。 • 每bit值=1:代表该模式生效,用户可以设置耳机到该模式。 |
O | 1.0/1.0 |
说明:
- 每个产品支持的具体助听模式,需要根据算法和产品规划定义,定义完成后,可以对接到Hearingaid_mode的模式序列号中。 如某产品定义了:自动模式、交通模式、社交模式、聚会模式、安静模式五种模式。那么产品可以跟算法约定每种模式的序列号和对应的模式参数,然后可以在Hearingaid_mode中,默认:0=自动模式,1=交通模式,2=社交模式,3=聚会模式,4=安静模式等。
- 在产品使用过程中,如果某种模式对一些用户不友好,可以通过使用Hearingaid_mode_mask来限制或者开启某些模式的使用。Hearingaid_mode_mask的每bit表示一个助听模式,从最低位bit开始向高位,依次代表“自动检测模式”“模式1”“模式2”...... 如:某产品按照上例支持5种模式,设置Hearingaid_mode_mask=0000 0000 0001 1111表示自动模式和模式1~模式4,用户都可以设置生效,Hearingaid_mode_mask=0000 0000 0001 1110表示自动模式不生效,用户无法设置自动模式,但是用户可以通过APP设置或者按键循环设置模式1~模式4。
-
请求帧:****

-
响应帧:
-
成功响应:

-
失败响应:

-
混音模式设置
表 1 混音模式设置字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| Audio_aid_mix | 0x01 | 1 | uint8 | 音频和助听混音设置: • 1:蓝牙音频(蓝牙通话和音乐)和助听模式混音。 • 2:蓝牙音频(蓝牙通话和音乐)和助听模式互斥。 • 3:蓝牙通话和助听模式混音,音乐和助听模式互斥。 • 4:蓝牙音乐和助听模式混音,蓝牙通话和助听模式互斥。 |
O | 1.0/1.0 |
说明: 根据芯片和产品不同,混音模式设置后,可能需要重启设备后生效(依据各产品设置而定),可以调用“设备重启”的命令或者手动重启设备。
-
请求帧:****

-
响应帧:
-
成功响应:

-
失败响应:

-
助听切换时间设置
表 1 助听切换时间设置字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| Time_switch_aidmode | 0x01 | 2 | uint16 | 蓝牙模式切换到助听模式后响应时间设置(单位:ms)。 | O | 1.0/1.0 |
-
请求帧:****

-
响应帧:
-
成功响应:

-
失败响应:

-
助听启动延时设置
表 1 助听启动延时设置字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| delay_open_aidmode | 0x01 | 2 | uint16 | 耳机开机后,开启助听模式延迟时间设置(单位:ms)。 | O | 1.0/1.0 |
说明: 请根据具体产品的设置来配置对应的值。 例如,部分未配置入耳检测功能的产品中,将“出盒”设定为“强制入耳”状态,“入盒”设定为“强制出耳”状态。
-
请求帧:****

-
响应帧:
-
成功响应:

-
失败响应:

-
助听模式自动检测设置
表 1 助听模式自动检测设置字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| Hearingaid_module_autoset | 0x01 | 1 | uint8 | 助听模式自动检测: • 1:开启 • 2:关闭 |
O | 1.0/1.0 |
-
请求帧:****

-
响应帧:
-
成功响应:

-
失败响应:

-
助听参数保存
表 1 助听参数保存字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| Hearingaid_para_save | 0x01 | 1 | uint8 | 助听参数保存命令。 1:表示需要保存助听参数 |
O | 1.0/1.0 |
说明: 此命令用于把验配参数块从内存中统一保存到Flash中。 助听验配完成后,必须调用此命令保存验配数据,以确保数据关机不丢失。
-
请求帧:****

-
响应帧:
-
成功响应:

-
失败响应:

-
助听音量调节参数设置
表 1 助听音量调节参数设置字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| Hearingaid_volume_count | 0x01 | 2 | uint16 | 设置设备中助听音量的可调解总阶数(范围:小于等于20,且大于等于1)。 | O | 1.0/1.0 |
| Hearingaid_volume_default_No | 0x02 | 2 | uint16 | 默认的助听音量阶数(表示助听音量数组中第几阶为默认助听音量)。 | O | 1.0/1.0 |
| Hearingaid_volume_group | 0x03 | N | int32 | 助听音量数组设置,为减少复杂度,请由小到大排序音量(音量单位为0.001dB,如:以设置音量为2.13dB为例,下发的参数为2130)。 | O | 1.0/1.0 |
说明:
- 为避免错误,上述type一起使用最佳。
- 设置的助听音量数组元素最大为20,由小到大排序。
- 默认助听音量阶数,以1开始从音量数组中取。 示例:Hearingaid_volume_count = 6;Hearingaid_volume_default_No = 2;Hearingaid_volume_group = {-25000,-20000,-15000,-10000,-5000,0} 示例参数说明:助听音量一共有6阶;默认音量为第2阶,为-20dB;助听音量数组为:-25dB、-20dB、-15dB、-10dB、-5dB、0dB。
-
请求帧:****

-
响应帧:
-
成功响应:

-
失败响应:

-
获取耳机统计数据
表 1 获取耳机统计数据字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| Audio_time_get | 0x01 | 4 | uint32 | 音频播放累计时长。单位:s 此数据被读取后,设备从新计数。 |
O | 1.0/1.0 |
| calling_time_get | 0x02 | 4 | uint32 | 通话累计时长。单位:s 此数据被读取后,设备从新计数。 |
O | 1.0/1.0 |
| Config_time_get | 0x03 | 4 | uint32 | 配置APP连接累计时长。单位:s 此数据被读取后,设备从新计数。 |
O | 1.0/1.0 |
-
请求帧:****

-
响应帧:
-
成功响应:

-
失败响应:

-
获取助听模式统计数据
须知:
- Type=1:标记出了模式个数;Type=2:顺序记录了每个模式和时长。 为避免数据错误,Type=1和Type=2必须同时使用。
- Aidmode_time_sums统计的是各个模式的使用时长,Aidmode_order_get记录的各个模式的使用顺序和时长。 如:用户使用顺序模式1使用30min,模式2使用20min,模式1再使用50min,模式3使用50min,则: 在Aidmode_order_get中记录为:模式1_30min -> 模式2_20min -> 模式1_50min -> 模式3_50分钟。 在Aidmode_time_sums中记录为:模式1_80min -> 模式2_20min -> 模式3_50分钟。 另:因为产品一般会根据设备空间来限定Aidmode_order_get记录的切换条数,导致如果有频繁操作,有可能丢失记录。
表 1 获取助听模式统计数据字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| Aidmode_count_get | 0x01 | 2 | uint16 | 顺序记录的助听模式个数。 此数据被读取后,设备从新计数。 |
O | 1.0/1.0 |
| Aidmode_order_get | 0x02 | N | uint8 | 各助听模式使用时长的顺序记录。单位:min 如:(模式1_30min -> 模式2_20min -> 模式1_50min -> 模式3_50分钟) 整个数据为4字节数组,每一个4字节表示一种模式和对应的使用时间(单位:min):第1个字节为助听模式号,后3个字节表示此模式的使用时长。 模式号为APP和算法确定的参数,请参见“助听模式设置”。 此数据被读取后,设备从新计数。 |
O | 1.0/1.0 |
| Aidmode_time_sums | 0x03 | N | uint8 | 各助听模式使用时长汇总。单位:min。 整个数据为4字节数组,每一个4字节表示一种模式和对应的使用时间(单位:min):第1个字节为助听模式号,后3个字节表示此模式的使用时长。 模式号为APP和算法确定的参数,请参见“助听模式设置”。 此数据被读取后,设备从新计数。 |
O | 1.0/1.0 |
-
请求帧:****

-
响应帧:
-
成功响应:

-
失败响应:

-
助听模式可设置
表 1 助听模式可设置字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| Aidmode_control | 0x01 | 1 | uint8 | 助听模式可设置控制: • 1:设备上设置助听模式失效(无法在设备上调节助听模式)。 • 2:设备上可以设置助听模式(设备的默认设置)。 |
O | 1.0/1.0 |
-
请求帧:****

-
响应帧:
-
成功响应:

-
失败响应:

-
设备调节参数可保存
表 1 设备调节参数可保存字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| Aidmode_save | 0x01 | 1 | uint8 | 用户在设备上设置助听模式后是否可以保存: • 1:用户在设备上设置助听模式不保存,只是单次生效。(重启后丢失) • 2:用户在设备上设置助听模式保存。 |
O | 1.0/1.0 |
| Hearingaid_volume_save | 0x02 | 1 | uint8 | 用户在设备上调节助听音量后是否可以保存: • 1:用户在设备上调节助听音量不保存,只是单次生效。(重启后丢失) • 2:用户在设备上调节助听音量保存。 |
O | 1.0/1.0 |
-
请求帧:****

-
响应帧:
-
成功响应:

-
失败响应:

-
助听验配过程事件上报
表 1 助听验配过程事件上报字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| Telephone_event | 0x1 | 1 | uint8 | 助听验配过程中,出现打断或者干扰验配的事件,需要上报给验配师: • 1:来电提醒 • 2:通话中 • 3:通话结束 |
O | 1.0/1.0 |
说明: 助听验配过程中,给予验配师最大的权限,不对除“生产”和“升级”以外的其他事件进行屏蔽, 但是对其过程中产生的干扰事件需上报给验配师知晓,以决定后续操作。具体干扰事件,由厂家自行定义。
-
请求帧:

-
响应帧:
-
成功响应:

-
失败响应:

-
助听业务查询
表 1 助听业务查询字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| Hearingaid_mode_get | 0x01 | 1 | uint8 | 助听模式查询,算法和产品确定不同的模式参数,此命令可以查询对应的模式序列号: • 0:自动检测模式 • 1:模式1 • 2:模式2 • 3:模式3 • 4:模式4 • 5:模式5 • 6~10:模式6~模式10 |
O | 1.0/1.0 |
| Audio_aid_mix_get | 0x02 | 1 | uint8 | 音频和助听混音模式查询:(参数根据“5.3.5-混音模式设置” 确定) • 1:蓝牙音频(蓝牙通话和音乐)和助听模式混音。 • 2:蓝牙音频(蓝牙通话和音乐)和助听模式互斥。 • 3:蓝牙通话和助听模式混音,音乐和助听模式互斥。 • 4:蓝牙音乐和助听模式混音,蓝牙通话和助听模式互。 |
O | 1.0/1.0 |
| BTmusic_adjust_get | 0x03 | 1 | uint8 | 蓝牙音乐是否通过助听参数调节查询: • 1:不通过助听参数调节蓝牙音乐。 • 2:通过助听参数调节蓝牙音乐。 |
O | 1.0/1.0 |
| call_adjust_get | 0x04 | 1 | uint8 | 通话音频是否通过助听参数调节查询: • 1:不通过助听参数调节通话音频。 • 2:通过助听参数调节通话音频。 |
O | 1.0/1. |
| Hearingaid_mode_mask_get | 0x05 | 2 | uint16 | 使用掩码设置助听模式的有效性,从低到高位每bit代表一个助听模式(最低位为“自动检测模式”),每bit位的值表示该模式的有效性:(请参见“助听模式设置”的使用,与Type0x01=Hearingaid_mode_get一起使用)。 • 每bit值=0:代表该模式不生效,用户无法设置耳机到该模式。 • 每bit值=1:代表该模式生效,用户可以设置耳机到该模式。 |
O | 1.0/1.0 |
| Hearingaid_volume_count_get | 0x06 | 2 | uint16 | 获取设备中助听音量的可调解总阶数(范围:≤20,且≥1)。 | O | 1.0/1.0 |
| Hearingaid_volume_default_No_get | 0x07 | 2 | uint16 | 获取默认的助听音量阶数(表示助听音量数组中第几阶为默认助听音量)。 | O | 1.0/1.0 |
| Hearingaid_volume_group_get | 0x08 | N | int32 | 获取助听音量数组设置,为减少复杂度,请由小到大排序音量。(音量单位为0.001dB,如:以设置音量为2.13dB为例,下发的参数为2130)。 | O | 1.0/1.0 |
| Hearingaid_get | 0x09 | 1 | uint8 | 查询助听功能是否开启状态: • 1:助听功能开启。 • 2:助听功能关闭。 |
O | 1.0/1.0 |
| Hearingaid_Whistle_Calib_Get | 0x0A | 1 | uint8 | 查询设备是否在“助听啸叫校准”状态中: • 1:未开启助听啸叫校准业务。 • 2:正在进行助听啸叫校准业务。 |
O | 1.0/1.0 |
说明: 其他Type=0x06 0x07 0x08根据“助听音量调节参数设置”章节定义,同时尽量一起使用。
-
请求帧:

-
响应帧:
-
成功响应:

-
失败响应:

-
音频调节设置查询
表 1 音频调节设置字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| BTmusic_adjust | 0x01 | 1 | uint8 | 设置蓝牙音乐是否通过助听参数调节: • 1:不通过助听参数调节蓝牙音乐。 • 2:通过助听参数调节蓝牙音乐。 |
O | 1.0/1.0 |
| call_adjust | 0x02 | 1 | uint8 | 设置通话音频是否通过助听参数调节: • 1:不通过助听参数调节通话音频。 • 2:通过助听参数调节通话音频。 |
O | 1.0/1.0 |
-
请求帧:

-
响应帧:
-
成功响应:

-
失败响应:

说明: 单独发送Type=0x01或者Type=0x02指令,只能单独设置蓝牙音乐是否通过助听参数调节,或者单独设置蓝牙通话是否通过助听参数调节。如果需要一起设置蓝牙音乐和蓝牙通话,需要在一条指令同时下发Type=0x01和Type=0x02的配置。
-
生产测试业务
表 1 生产测试业务字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| Hearingaid_Medical_test_set | 0x01 | 1 | uint8 | 助听医规测试控制: • 1:开启助听医规测试。 • 2:关闭助听医规测试。 |
O | 1.0/1.0 |
| Hearingaid_Medical_test_get | 0x02 | 1 | uint8 | 查询是否进入助听医规测试: • 1:已经进入助听医规测试。 • 2:没有进入助听医规测试。 |
O | 1.0/1.0 |
须知: 该Command ID字段下业务主要用于生产测试,不能直接用于正常用户使用模式下,以免出现异常场景。 注意Typ=0x02时,是查询帧格式,不能使用设置帧格式。
-
请求帧:

-
响应帧:
-
成功响应:

-
失败响应:

-
助听业务设置
表 1 助听业务设置字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| Hearingaid_Open | 0x01 | 1 | uint8 | 控制助听功能开关: • 1:开启助听功能。 • 2:关闭助听功能。 |
O | 1.0/1.0 |
| Hearingaid_Whistle_Calib | 0x02 | 1 | uint8 | 助听啸叫校准时间设置,单位:s。 发送该命令时,表明开启助听啸叫校准,且校准时间由该字段设置。 |
O | 1.0/1.0 |
-
请求帧格式

-
应答帧格式
-
成功响应

-
失败响应

-
助听业务上报
表 1 助听业务上报描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| Hearingaid_Whistle_Calib_Finish | 0x01 | 1 | uint8 | 助听啸叫校准设备主动上报业务状态: • 1:未开启助听啸叫校准业务。 • 2:正在进行助听啸叫校准业务。 • 3:助听啸叫校准业务已经完成。 • 4:助听啸叫校准业务失败。 |
O | 1.0/1.0 |
-
请求帧格式

-
应答帧格式
-
成功响应

-
失败响应

-
助听参数配置
指定模式下所有参数配置
表 1 指定模式下所有参数配置字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| Hearingaid_scene | 0x01 | 1 | uint8 | 助听模式 | M | 1.0/1.0 |
| Hearingaid_parameters | 0x02 | 助听参数的长度 | uint8 | 指定助听模式下的参数 | M | 1.0/1.0 |
-
请求帧:****

-
响应帧:
-
成功响应:

-
失败响应:

-
-
示例
0x04,0x01,0x81,0x81,0x01,0x82,0x02,0x00,0x02,......(需要设置的助听参数)
作用:配置模式1下的助听参数。
说明: 助听参数长度:512Byte 助听的模式: auto(自动识别场景):0 transportation(交通场景):1 socializing(社交场景):2 party(聚会场景):3 quiet(安静场景):4 ext0(扩展场景0):5 ext1(扩展场景1):6 test(医规场景):7
指定模式下部分参数配置
表 1 指定模式下部分参数配置字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value 数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| Hearingaid_scene | 0x01 | 1 | uint8 | 指定模式 | M | 1.0/1.0 |
| Hearingaid_offset | 0x02 | 2 | uint16 | 参数位置 | M | 1.0/1.0 |
| Hearingaid_value | 0x03 | N | uint8 | 设定的参数值 | M | 1.0/1.0 |
-
请求帧:****

-
响应帧:
-
成功响应:

-
失败响应:

-
-
请求帧示例:
0x04,0x02,0x81,0x81,0x01,0x82,0x82,0x04,0x00,0x83,0x81,0x01,0x81,0x81,0x02,0x82,0x82,0x01,0x00,0x83,0x82,0x01,0x00
请求帧含义如下所示:

配置模式1下,偏移为4,长度为1的参数,设置为0x01;
配置模式2下,偏移为1,长度为2的参数,设置为0x01,0x00。
说明: 助听的模式: auto(自动识别场景):0 transportation(交通场景):1 socializing(社交场景):2 party(聚会场景):3 quiet(安静场景):4 ext0(扩展场景0):5 ext1(扩展场景1):6 test(医规场景):7 偏移值加上设置的参数长度,需要≤512Byte。 请求帧长度,需要≤530Byte。 请求帧支持多组TLV发送需求。 获取助听参数偏移地址请参见配套 Melody 音频算法资料中的“助听算法参数说明”章节。
指定模式下具体参数配置
表 1 指定模式下具体参数配置字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| Hearingaid_scene | 0x01 | 1 | uint8 | 指定模式 | M | 1.0/1.0 |
| Hearingaid_parameter1 | 0x02 | 1 | uint8 | 设定参数值 | O | 1.0/1.0 |
| Hearingaid_parameter2 | 0x03 | 1 | uint8 | 设定参数值 | O | 1.0/1.0 |
| Hearingaid_parameter3 | 0x04 | 1 | uint8 | 设定参数值 | O | 1.0/1.0 |
表 2 type描述
| Type(bit0~bit6) | 功能 |
|---|---|
| 0x02 | 降噪开关 |
| 0x03 | 波束开关 |
| 0x04 | 抗啸叫开关 |
-
请求帧:****

-
响应帧:
-
成功响应:

-
失败响应:

-
-
示例
0x04,0x03,0x81,0x81,0x01,0x82,0x81,0x00,0x83,0x81,0x01,0x84,0x81,0x00
作用:配置模式1下,降噪关闭,波束打开,抗啸叫关闭。
说明:
- type=0x01指定助听的模式,value表示具体的模式,助听各个场景对应的value如下: auto(自动识别场景):0 transportation(交通场景):1 socializing(社交场景):2 party(聚会场景):3 quiet(安静场景):4 ext0(扩展场景0):5 ext1(扩展场景1):6 test(医规场景):7
- type=0x02表示在指定助听模式下的降噪开关(0表示关,非0表示开)。
- type=0x03表示在指定助听模式下的波束开关(0表示关,非0表示开)。
- type=0x04表示在指定助听模式下的抗啸叫开关(0表示关,非0表示开)。
获取指定模式下助听参数
表 1 获取指定模式下助听参数字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| Hearingaid_scene | 0x01 | 1 | uint8 | 助听模式 | M | 1.0/1.0 |
| Hearingaid_parameters | 0x02 | 助听参数的长度 | uint8 | 指定模式下助听参数 | M | 1.0/1.0 |
-
请求帧:

-
响应帧:
-
成功响应:

-
失败响应:

-
-
示例
0x04,0x10,0x81,0x81,0x01
作用:获取模式1下的助听参数。
说明: 助听参数的长度为512Byte。 助听的模式: auto(自动识别场景):0 transportation(交通场景):1 socializing(社交场景):2 party(聚会场景):3 quiet(安静场景):4 ext0(扩展场景0):5 ext1(扩展场景1):6 test(医规场景):7
获取指定模式下部分助听参数
表 1 获取指定模式下部分助听参数字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| Hearingaid_scene | 0x01 | 1 | uint8 | 指定模式 | M | 1.0/1.0 |
| Hearingaid_offset | 0x02 | N | uint8 | 参数位置 | M | 1.0/1.0 |
| Hearingaid_value | 0x03 | N | uint8 | 获取的参数 | M | 1.0/1.0 |
| Hearingaid_value_length | 0x04 | N | uint8 | 参数长度 | M | 1.0/1.0 |
-
请求帧:

-
响应帧:
-
成功响应:

-
失败响应:

-
-
请求帧示例:
0x04,0x06,0x81,0x81,0x01,0x82,0x81,0x00,0x84,0x81,01,0x81,0x81,0x02,0x82,0x82,0x00,0x01,0x84,0x82,80,00
请求帧含义如下所示:

获取模式1,偏移为0,长度为1的参数值;
获取模式2,偏移为256,长度为128的参数值。
说明: 助听的模式: auto(自动识别场景):0 transportation(交通场景):1 socializing(社交场景):2 party(聚会场景):3 quiet(安静场景):4 ext0(扩展场景0):5 ext1(扩展场景1):6 test(医规场景):7 偏移值加上获取的参数长度,需要≤512Byte。 应答帧长度,需要≤530Byte。 获取助听参数偏移地址请参见配套 Melody 音频算法资料中的“助听算法参数说明”章节。
文件、设置与维测业务
命令索引
文件传输
图 1 文件传输流程

说明:
- 不论上传还是下载,都由手机APP侧发起文件传输,发起时可以使用传输开始命令或传输协商命令。
- 传输协商命令可以与设备协商传输相关的两个参数:每组传输的次数(data_block_number)、每次传输数据的大小(data_block_size)。
- 传输开始命令不能协商上述两个参数,因此只能使用默认参数传输:每组传输次数data_block_number=8次,每次传输数据的大小data_block_size=256Byte。
- 整个传输过程分为若干组,每组由一个传输请求命令和若干个传输回应命令组成。
- 传输请求命令由文件接收方发送,请求对端发送一段数据,在命令中指定这一组需要传输的数据大小以及该段数据在文件中的偏移,数据大小=min(待传输剩余大小,data_block_number * data_block_size)。
- 文件发送方在收到传输请求命令后,应连续发送最多data_block_number个传输回应命令,每个传输回应命令携带的数据大小=min(待传输剩余大小,data_block_size)。
- 文件的数据必须顺序请求和发送。文件接收方在顺序收到请求的这一组全部数据后,再请求下一组数据。
- 文件接收方如果连续1秒内没有收到任何传输回应命令,应再次发送传输请求命令,重新请求未收到的数据,直到这一组的数据全部收到。如接收方连续30秒收不到数据,应结束这次传输。
- 接收方在收到全部数据后,通过传输通知命令通知对端,结束这次传输。
传输开始
表 1 传输开始字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| transmit_start | 0x01 | sizeof(transmit_start_pkt_t) + sizeof(info) | struct | • uint32_t transmit_id:单次传输唯一标识。 • uint16_t src_send:1:传输方向(占1bit)。 • uint16_t struct_ver:2:结构版本,助听器项目为0(占2bit)。 • uint16_t re_trans:1:是否使能断电续传,助听器项目值为0,不支持(占1bit)。 • uint16_t bitmap_enable:1:是否使能位域,默认为0(占1bit)。 • uint16_t pad:11:预留bit(占11bit)。 • uint16_t transmit_type:交互类型,详情参考代码枚举值transmit_type_t。 • uint32_t total_size:文件大小。 • uint32_t info_size:info内容大小,如文件路径名长度。 • uint8_t info[0]:info数据内容。 |
O | 1.0/1.0 |
请求帧:

传输参数协商
表 1 传输参数协商字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| transmit_negotiate | 0x01 | sizeof(transmit_negotiate_pkt_t) + sizeof(info) | struct | • uint32_t transmit_id:单次传输唯一标识。 • uint16_t src_send:1:传输方向(占1bit)。 • uint16_t struct_ver:2:结构版本,助听器项目为0(占2bit)。 • uint16_t re_trans:1:是否使能断电续传,助听器项目值为0,不支持(占1bit)。 • uint16_t bitmap_enable:1:是否使能位域,默认为0(占1bit)。 • uint16_t pad:11:预留bit(占11bit)。 • uint16_t transmit_type:交互类型,详情参考代码枚举值transmit_type_t。 • uint32_t total_size:文件大小。单位:Byte。 • uint16_t data_block_num; 每组传输次数。 • uint16_t data_block_size; 每次传输大小。单位:Byte。 • uint32_t info_size:info内容大小,如文件路径名长度。单位:Byte。 • uint8_t info[0]:info数据内容。 |
M | 1.0/1.0 |
| transmit_negotiate_ack | 0x02 | sizeof(transmit_negotiate_ack_pkt_t) + sizeof(info) | struct | • uint32_t transmit_id:单次传输唯一标识。 • uint16_t data_block_number:每组传输次数。 • uint16_t data_block_size:每次传输大小。单位:Byte。 • uint32_t info_size:info内容大小。 • uint8_t info[0]:info数据内容。 |
O | 1.0/1.0 |
请求帧:

传输请求
表 1 传输请求字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| transmit_request | 0x01 | sizeof(transmit_request_pkt_t) | struct | • uint32_t transmit_id:单次传输唯一标识。 • uint32_t cnt:当前协议取1;多组offset和size属于协议扩展定义,使用前需完成通信双方适配。 • uint32_t offset:文件具体偏移值。 • uint32_t size:基于文件偏移offset的传输大小值。单位:Byte。 |
M | 1.0/1.0 |
请求帧:

传输回应
表 1 传输回应字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| transmit_reply | 0x01 | sizeof(transmit_reply_pkt_t) + sizeof(data) | struct | • uint32_t transmit_id:单次传输唯一标识。 • uint32_t offset:文件具体偏移值。 • uint32_t size:本次传输大小值。单位:Byte。 • uint8_t data[0]:数据内容。 |
M | 1.0/1.0 |
请求帧:

传输通知
表 1 传输通知字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| transmit_notify | 0x01 | sizeof(transmit_state_notify_pkt_t) + sizeof(data) | struct | • uint32_t transmit_id:单次传输唯一标识。 • uint32_t state_code:详见枚举transmit_state_notify_code_t。 • uint32_t len:数据内容大小值。单位:Byte。 • uint8_t data[0]:数据内容。 |
M | 1.0/1.0 |
typedef enum {
TRANSMIT_STATE_NOTIFY_INVALID_ID = 10, /* transmit id无效 */
TRANSMIT_STATE_NOTIFY_FINISH, /* 传输结束 */
TRANSMIT_STATE_NOTIFY_FINISH_2, /* 保留的传输结束状态,当前流程不使用 */
TRANSMIT_STATE_NOTIFY_DUPLICATE_ID, /* 保留的transmit id重复状态,当前流程不使用 */
TRANSMIT_STATE_NOTIFY_STOP_ID = 16, /* 传输中止 */
TRANSMIT_STATE_NOTIFY_SAVE_FAILED_ID, /* 传输出错 */
} transmit_state_notify_code_t;
请求帧:

传输停止
表 1 传输停止字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| transmit_stop | 0x01 | sizeof(transmit_stop_pkt_t) | struct | • uint32_t transmit_id:单次传输唯一标识。 • uint32_t reason:预留,默认为0。 |
O | 1.0/1.0 |
| transmit_stop_ack | 0x02 | sizeof(transmit_stop_pkt_t) | struct | • uint32_t transmit_id:单次传输唯一标识。 • uint32_t reason:预留,默认为0。 |
O | 1.0/1.0 |
请求帧:

文件列举
说明: Melody暂不涉及。
表 1 文件列举字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| transmit_ls | 0x01 | sizeof(diag_ls_cmd_t) + sizeof(path) | struct | • uint32_t dir_len:strlen(path)+1。 • uint8_t path[0]:路径名称,要带结束符,对应长度为路径名长度+1字节结束符。 |
O | 1.0/1.0 |
| transmit_ls_ack | 0x02 | sizeof(diag_ls_ind_t + sizeof(file_name) | struct | • uint16_t idx:文件序号。 • uint8_t path_len:strlen(file name)+1。 • uint8_t file_type:文件类型,文件为0,文件夹为1。 • uint32_t file_size:文件大小,单位:Byte。 • uint8_t file_name[0]:文件名,对应长度为路径名长度+1字节结束符。 |
O | 1.0/1.0 |
请求帧:

文件删除
说明: Melody暂不涉及。
表 1 文件删除字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| transmit_delete | 0x01 | sizeof(diag_del_cmd_t) + sizeof(name) | struct | • uint16_t dir_len:strlen(path name)+1。 • uint8_t rev:保留字段。 • uint8_t file_type: 文件类型:文件为0,文件夹为1。 • uint8_t name[0]:对应长度为路径名长度+1字节结束符。 |
O | 1.0/1.0 |
| transmit_delete_ack | 0x02 | 4 | uint32 | 返回值 | O | 1.0/1.0 |
请求帧:

获取bitmap
说明: Melody暂不涉及。
表 1 获取bitmap字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| transmit_bitmap | 0x01 | sizeof(transmit_bitmap_pkt_t) | struct | • transmit_id:单次传输唯一标识。 • offset:相对文件的偏移地址。 • len:从offset开始的长度。单位:Byte。 |
O | 1.0/1.0 |
| transmit_bitmap_ack | 0x02 | sizeof(transmit_bitmap_ack_pkt_t) | struct | • transmit_id:单次传输唯一标识。 • offset:相对文件的偏移地址。 • bitsize:bit对应的数据位数。 • len:等价于bitsize/8,向上取整。 • data:bitmap值,每bit对应协商的每次传输长度是否写入。 |
O | 1.0/1.0 |
请求帧:

设备设置
恢复出厂设置
表 1 恢复出厂设置字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| restore_factory_set | 0x01 | 1 | uint8 | 恢复出厂设置: 1:默认恢复出厂设置。 2:自定义恢复出厂设置。 |
O | 1.0/1.0 |
说明: 默认恢复出厂设置:删除所有在产品出厂后,用户使用过程中产生的数据,如:统计数据、音量调节、助听参数配置数据、蓝牙配对连接数据等。 自定义恢复出厂设置:需要删除和保留的数据,由客户自行在产品定义中明确,该命令下发后,接收端直接按照定义执行。
-
请求帧:

-
响应帧:
-
成功响应:

-
失败响应:

-
耳机入耳状态设置
表 1 耳机入耳状态设置字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| control_wearing_status | 0x01 | 1 | uint8 | 入耳状态控制: • 1:强制设置耳机持续在入耳状态。 • 2:强制设置耳机持续不在入耳状态。 • 3:取消强制设置耳机状态,由设备自身的Sensor和算法检测入耳状态。 |
O | 1.0/1.0 |
-
请求帧:

-
响应帧:
-
成功响应:

-
失败响应:

-
设备音量及效果设置
表 1 设备音量设置字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| hearingaid_volume_set | 0x01 | 4 | int32 | 助听音量设置(单位为0.001dB,如:以设置音量为2.13dB为例,下发的参数为2130)。 | O | 1.0/1.0 |
| music_volume_set | 0x02 | 4 | int32 | 音乐音量设置(单位为0.001dB,如:以设置音量为2.13dB为例,下发的参数为2130)。 | O | 1.0/1.0 |
| phone_volume_set | 0x03 | 4 | int32 | 通话音量设置(单位为0.001dB,如:以设置音量为2.13dB为例,下发的参数为2130)。 | O | 1.0/1.0 |
| message_volume_set | 0x04 | 4 | int32 | 信息提醒音量设置(单位为0.001dB,如:以设置音量为2.13dB为例,下发的参数为2130)。 | O | 1.0/1.0 |
| ring_volume_set | 0x05 | 4 | int32 | 提示音音量设置(单位为0.001dB,如:以设置音量为2.13dB为例,下发的参数为2130)。 提示音音量范围[-70dB,0dB],建议音量值设置不低于-35dB。可通过设置不同的dB值实现提示音大、中、小等音量等级控制。 |
O | 1.0/1.0 |
| ring_volume_close | 0x06 | 1 | uint8 | 提示音开启/关闭控制: • 0:关闭设备所有提示音。 • 1:开启设备所有提示音。 |
O | 1.0/1.0 |
| 3A_Algorithm_set | 0x07 | 1 | uint8 | 对音频3A算法开启/关闭控制: • 0:关闭3A算法。 • 1:开启3A算法。 |
O | 1.0/1.0 |
说明: 用于实时音量调节。 设置实时音量时,注意在设备中定义和设置的音量阶数,如果本次设置的实时音量,与产品定义和设置的音量不一致,可能导致本次设置的实时音量无法生效。
-
请求帧:

-
响应帧:
-
成功响应:

-
失败响应:

-
耳机上下滑动控制
表 1 耳机上下滑动控制字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| Touch_config | 0x01 | 1 | uint8 | 耳机上下滑动控制: • 1:耳机上下滑动效果失效。 • 2:耳机上下滑动效果生效,上滑加音量,下滑减音量。 |
O | 1.0/1.0 |
-
请求帧:

-
响应帧:
-
成功响应:

-
失败响应:

-
频点提示音设置
表 1 频点提示音设置字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| Tone_No | 0x01 | 1 | uint8 | 提示音编号:厂家在进行产品配置时,定义的提示音编号。 • 1:Tone1 • 2:Tone2 …….. |
O | 1.0/1.0 |
| Tone_volume_set | 0x02 | 4 | int32 | 提示音音量大小设置(单位为0.001dB,如:以设置音量为2.13dB为例,下发的参数为2130)。 | O | 1.0/1.0 |
| Tone_rate_set | 0x03 | 2 | uint16 | 提示音频率设置(单位:Hz)。 | O | 1.0/1.0 |
| Tone_play_time | 0x04 | 2 | uint16 | 提示音播放时间设置(单位:ms)。 | O | 1.0/1.0 |
说明: 用于设置单音频为提示音的相关参数。
-
请求帧:

-
响应帧:
-
成功响应:

-
失败响应:

-
持续提示音提醒设置
表 1 持续提示音提醒设置字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| busness_type | 0x01 | 1 | uint8 | 需要持续提示音提醒的业务类型: 1:低电提醒 …….. |
O | 1.0/1.0 |
| Tone_No | 0x02 | 1 | uint8 | 使用的提示音编号: • 0:表示使用设备内部保存好的音频文件 • 1:Tone1(见“频点提示音设置”) • 2:Tone2 …….. |
O | 1.0/1.0 |
| Tone_time | 0x03 | 4 | Uint32 | 提示音持续提醒时间(单位:s)。 • 0:表示不持续提醒 • 0xFFFFFFFF:表示一直持续下去 |
O | 1.0/1.0 |
| Tone_interval | 0x04 | 2 | uint16 | 提示音播放时间间隔设置(单位:s)。 | O | 1.0/1.0 |
-
请求帧:

-
响应帧:
-
成功响应:

-
失败响应:

-
按键控制
表 1 按键控制字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| Long_button | 0x01 | 1 | uint8 | 设备长按键功能控制: • 1:设备长按键功能失效 • 2:设备长按键功能生效 |
O | 1.0/1.0 |
| Short_button | 0x02 | 1 | uint8 | 设备短按键功能控制: • 1:设备短按键功能失效 • 2:设备短按键功能生效 |
O | 1.0/1.0 |
-
请求帧:

-
响应帧:
-
成功响应:

-
失败响应:

-
麦克风喇叭回环测试
表 1 麦克风喇叭回环测试字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| mic_speaker_loopback | 0x01 | 1 | uint8 | value值表示切换到第几个麦克风进行回环测试。 • 0:mic0到speaker回环测试。 • 1:mic1到speaker回环测试。 |
O | 1.0/1.0 |
| mic_speaker_loopback_mask | 0x02 | 1 | uint8 | value值表示开启测试和关闭测试。 • 1:开启麦克风喇叭回环测试。 • 0:关闭麦克风喇叭回环测试。 |
O | 1.0/1.0 |
-
请求帧

-
响应帧
-
成功响应

-
失败响应

-
喇叭频响校准值设置
表 1 喇叭频响校准值设置字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| Speaker_cali_filters_coefs | 0x01 | 48 | int16[24] | 48个字节共24个int16型数值 • 每3个int16为一组表示一个peak型滤波器参数 • 8个滤波器的8组参数共48Byte。 每组3个参数依次表示: • 滤波器中心频率,以Hz为单位,取值范围20~20000。 • 滤波器品质因数,取值范围10~1000,为Q值乘以100,即Q值范围为0.10~10.00。 • 滤波器峰值增益,取值-1200~1200,为gain值乘以100,即gain范围为-12.00~12.00 dB。 滤波器设置成功返回通用错误码的“成功”100000。 |
O | 1.0/1.0 |
-
请求帧

-
响应帧
-
成功响应

-
失败响应

-
-
示例
0x07,0x09,0x81,0xB0,25,40,-500,100,200,-500,350,100,-350,500,500,800,1000,150,400,1600,10,-500,2500,141,1000,10000,100,200
对应系数:

说明: 产测流程测试Mic频响时建议关闭3A算法。如果开启3A算法,频响曲线需要一段时间收敛,收敛时间为10秒。 此协议主要用于产测需要校准喇叭时,此协议具体需要配置的值由产测上位机计算给出。
喇叭频响校准值保存NV设置
表 1 喇叭频响校准值保存NV设置字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| Speaker_cali_filters_coefs | 0x01 | 48 | int16[24] | 48个字节共24个int16型数值 • 每3个int16为一组表示一个peak型滤波器参数。 • 8个滤波器的8组参数共48Byte。 • 参数长度错误时返回“参数个数错误”错误码112001。 每组3个参数依次表示: • 滤波器中心频率,单位:Hz,取值范围20~20000。 • 滤波器品质因数,取值范围10~1000,为Q值乘以100,即Q值范围为0.10~10.00。 • 滤波器峰值增益,取值-1200~1200,为gain值乘以100,即gain范围为-12~12 dB。 • 当参数值超过以上范围,返回“参数值错误”错误码112002。 滤波器设置成功返回通用错误码的“成功”100000。 |
O | 1.0/1.0 |
-
请求帧

-
响应帧
-
成功响应

-
失败响应

说明: 此协议主要用于产测需要校准喇叭时。
-
切换麦克风设置
表 1 切换麦克风设置字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| Mic_Switch | 0x01 | 1 | uint8 | value值表示切换到第几个麦克风。 • 0:mic0。 • 1:mic1。 |
O | 1.0/1.0 |
-
请求帧

-
响应帧
-
成功响应

-
失败响应

-
麦克风增益校准值设置
表 1 麦克风增益校准值设置字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| Mic | 0x01 | 1 | uint8 | value值表示第几个麦克风。 • 0:mic0。 • 1:mic1。 |
O | 1.0/1.0 |
| Gain | 0x02 | 2 | int16 | 麦克风增益补偿的dB数,数值等于dB数乘以1000。 补偿范围-12~12 dB,参数值为-12000~12000。例如补偿-3.125dB(音频通道需要衰减3.125dB),参数值取-3125。 |
O | 1.0/1.0 |
-
请求帧:

-
响应帧:
-
成功响应:

-
失败响应:

说明: 此协议主要用于产测需要校准麦克风时。gain的步长为0.125dB。如果设置的gain不是0.125dB的倍数,会将gain向下取整为0.125dB的倍数。
-
麦克风增益校准值保存NV设置
表 1 麦克风增益校准值保存NV设置字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| Mic | 0x01 | 1 | uint8 | value值表示第几个麦克风。 • 0:mic0。 • 1:mic1。 |
O | 1.0/1.0 |
| Gain | 0x02 | 2 | int16 | 麦克风增益补偿的dB数,数值等于dB数乘以1000。 补偿范围-12~12 dB,参数值为-12000~12000。例如补偿-3.125dB(音频通道需要衰减3.125dB),参数值取-3125。 |
O | 1.0/1.0 |
-
请求帧:

-
响应帧:
-
成功响应:

-
失败响应:

说明: 此协议主要用于产测需要校准麦克风时。gain的步长是0.125dB。
-
设备重启
须知: 该命令仅限于用户商用版本中使用,在生产过程中使用时,需要根据具体产品和生产流程确定。
表 1 设备重启字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| reset | 0x01 | 1 | uint8 | • 1:表示设备正常重启 | O | 1.0/1.0 |
-
请求帧

-
响应帧
-
成功响应:

-
失败响应:

-
设备蓝牙名称设置
表 1 设备蓝牙名称设置字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| BT_Name_set | 0x01 | N | uint8 | BT蓝牙名称设置:字符串,使用时根据具体的长度封包。 | O | 1.0/1.0 |
| BLE_Name_set | 0x02 | N | uint8 | BLE蓝牙名称设置:字符串,使用时根据具体的长度封包。 | O | 1.0/1.0 |
说明: 蓝牙名称的具体长度,请根据具体产品设计来确定。 BT名称修改设置后需要重启才能生效。 BLE名称修改设置后需重新广播才能生效。
-
请求帧

-
响应帧
-
成功响应:

-
失败响应:

-
设备国家设置
表 1 设备国家设置字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| Tone_Country | 0x01 | 1 | uint8 | 提示音播报语言设置: 0:中文 1:英文 语言ID由nv中的值定义。 |
O | 1.0/1.0 |
-
请求帧

-
响应帧
-
成功响应:

-
失败响应:

-
MCU业务维测
检测调试
待开发。
表 1 电容传感器调试字段描述
| 字段名称 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| capsensor_test | 0x01 | sizeof(capsensor_data_t) | capsensor_data_t | • uint32_t index:序号 • int16_t data0:第1个Capsensor电容值 • int16_t data1:第2个Capsensor电容值 • int16_t data2:第3个Capsensor电容值 • int16_t data3:第4个Capsensor电容值 • int16_t data4:第5个Capsensor电容值 • int8_t data5:第1个温度传感器的温度值 • int8_t left_ear:左右耳(1:左耳; 2:右耳) • uint64_t tws_timestamp:本地时间戳(毫秒) • int8_t press_event:触控事件 • int8_t wear_event:佩戴事件 • int16_t reserve0:预留字段 • int16_t reserve1:预留字段 • int16_t reserve2:预留字段 • int16_t reserve3:预留字段 • int16_t reserve4:预留字段 • int16_t reserve5:预留字段 • int16_t reserve6:预留字段 • int16_t reserve7:预留字段 • int16_t reserve8:预留字段 • int16_t reserve9:预留字段 |
O | 1.0/1.0 |
请求帧:

Audio业务维测
通话录音功能
表 1 通话录音功能配置字段描述
| 字段 | Type(bit0~bit6) | Length Size(Oct) | Value数据类型 | 说明 | 必选/可选(M/O) | 版本 |
|---|---|---|---|---|---|---|
| start_func | 0x01 | 2 | • 字节1: bit[3:0]:功能(b7=1有效) bit[6:4]:系统信息(b7=1有效) bit[7]:开始/停止 • 字节2: bit[3:0]:编码格式 bit[7:4]:预留 |
• 设备系统: 0:无系统信息 1:安卓系统 2:ios系统 3: 鸿蒙系统 • 开始/停止: 0:停止 1: 开始 • 功能: 0:通话录音实时上传 其他功能待扩展 • 编码格式: 0:OPUS 其他编码格式待扩展 |
O | 1.0/1.0 |
| send_data | 0x2 | N | SN号:(1Byte) + 音频数据 bit[7]:上下行方向 bit[6:0]:SN |
上下行方向: 0:上行 1:下行 |
O | 1.0/1.0 |
| report_state | 0x3 | 2 | • 字节1:状态类型 • 字节2:状态值 |
• 状态类型: 通话:1 其他类型待扩展 • 状态值: 0:预留 1:来电 2:去电 3:接通 4:挂断 5:拒接 6:通话切换到听筒 7: 通话切回到蓝牙 |
O | 1.0/1.0 |
-
请求帧



-
响应帧
-
成功响应:

-
失败响应:

-