语音服务

更新时间:2024-05-08 10:36:23下载pdf

语音服务相关的协议只适用于语音模组 VWXR2 的通用对接,其他非语音模组的通用固件没有以下相关协议功能。

基础指令

获取语音状态码(0x60)

语音模组的语音状态码会自动返回,MCU 也可以主动查询。

MCU 发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0x60
数据长度 2 0x0000
数据 0
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 03 60 00 00 62

模组返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x60
数据长度 2 0x0001
数据 1 语音状态码:
  • 0:空闲
  • 1:MIC 静音状态
  • 2:唤醒
  • 3:正在录音
  • 4:正在识别
  • 5:识别成功
  • 6:识别失败
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 00 60 00 01 00 60

MIC 静音设置(0x61)

该命令字可以设置静音,也可查询静音状态。

MCU 发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0x61
数据长度 2 0x0001
数据 1 静音设置值
  • 0:MIC 开启
  • 1:MIC 静音
  • 0xA0:查询静音状态
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 03 61 00 01 00 64

模组返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x61
数据长度 2 0x0001
数据 1 静音状态值
  • 0:MIC 开启
  • 1:MIC 静音
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 00 61 00 01 00 61

Speaker 音量设置(0x62)

该命令字可以设置音量,也可查询音量。

MCU 发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0x62
数据长度 2 0x0001
数据 1
  • 音量值:0-10
  • 查询音量:0xA0
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 03 62 00 01 03 68

模组返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x62
数据长度 2 0x0001
数据 1 音量值:0-10
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 00 62 00 01 03 65

音频产测(0x63)

音频产测就是边录边播,通过声学仪器对比模组的输入和输出音频信号。

MCU 发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0x63
数据长度 2 0x0001
数据 1 音频产测值
  • 0:关闭音频产测
  • 1:MIC1 音频环路测试
  • 2:MIC2 音频环路测试
  • 0xA0:查询当前产测状态
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 03 63 00 01 02 68

模组返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x63
数据长度 2 0x0001
数据 1 音频产测状态
  • 0:关闭音频产测
  • 1:MIC1 音频环路测试
  • 2:MIC2 音频环路测试
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 00 63 00 01 02 65

唤醒产测(0x64)

进入唤醒测试后,要求 10s 播放唤醒词电信号,10s 超时返回失败。

MCU 发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0x64
数据长度 2 0x0000
数据 0
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 03 64 00 00 66

模组返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x64
数据长度 2 0x0001
数据 0 唤醒结果返回
  • 0:唤醒失败
  • 1:唤醒成功
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 00 64 00 01 01 65

扩展功能(0x65)

扩展语音模组的相关系统功能增加播放/暂停、蓝牙开/关、本地闹钟、语音控制组合功能的状态通知和设置。

  • 播放/暂停功能:音乐、古诗、笑话等功能的播放与暂停功能。
  • 蓝牙开/关功能:蓝牙音箱的蓝牙开关。
  • 本地闹钟功能:语音和 App 设置的闹钟数据同步通知。
  • 语音控制组合功能:上一首、下一首等语音控制指令的通知。

MCU 功能设置(子命令 0x00)

MCU 发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0x65
数据长度 2 N
数据 1 子命令:0x00
Data:
{
“play”:true,
“bt_play”:true
,“ctrl_group”:“xxxx”}
  • play:播放/暂停功能,true:播放,false:暂停
  • bt_play:蓝牙开关功能,true:开,false:关
  • ctrl_group:播放控制,next:下一首,pre:上一首
MCU 设置暂仅支持播放/暂停、蓝牙开关
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例{"play":true,"bt_play":true,"ctrl_group":"next"}

55 aa 03 65 00 31 00 7b 22 70 6c 61 79 22 3a 74 72 75 65 2c 22 62 74 5f 70 6c 61 79 22 3a 74 72 75 65 2c 22 63 74 72 6c 5f 67 72 6f 75 70 22 3a 22 6e 65 78 74 22 7d c7

模组返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x65
数据长度 2 0x0002
数据 1 子命令:0x00
1 操作结果:
  • 0x00:成功
  • 0x01:失败
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 00 65 00 02 00 00 66

状态通知(子命令 0x01)

模组发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x65
数据长度 2 1+N
数据 1 子命令:0x01
Data:{
“play”:true,
“bt_play”:true,“
alarm”:“xxxx”, “
ctrl_group”:“xxxx”
}
  • play:播放/暂停功能,true:播放,false:暂停
  • bt_play:蓝牙开关功能,true:开,false:关
  • alarm:本地闹钟功能,"xxx" 为字符串
  • ctrl_group:语音控制组合功能,"xxx" 为字符串
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例{"play":true,"bt_play":true,"ctrl_group":"next", "alarm":"xxx"}

55 aa 00 65 00 3f 01 7b 22 70 6c 61 79 22 3a 74 72 75 65 2c 22 62 74 5f 70 6c 61 79 22 3a 74 72 75 65 2c 22 63 74 72 6c 5f 67 72 6f 75 70 22 3a 22 6e 65 78 74 22 2c 22 61 6c 61 72 6d 22 3a 22 78 78 78 22 7d 36

MCU 返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0x65
数据长度 2 2
数据 1 子命令:0x01
1 操作结果。
  • 0x00:成功
  • 0x01:失败
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 03 65 00 02 01 00 6a

唤醒模组(子命令 0x02)

  • 此功能为 MCU 主动唤醒模组。

  • 目前此功能只有 Linux 系统的通用对接模组支持。

MCU 发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0x65
数据长度 2 0x01
数据 1 子命令:0x02
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 03 65 00 01 02 6a

模组返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x65
数据长度 2 0x02
数据 1 子命令:0x02
1 操作结果。
  • 0x00:成功。
  • 0x01:失败。
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 00 65 00 02 02 00 68

打开 ASR 识别文本通知(子命令 0x03)

此功能开启后,自动语音识别(ASR)识别的文本会通过 0x6504 命令字传输。

MCU 发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0x65
数据长度 2 0x02
数据 1 子命令:0x03
1
  • 0x00:关闭
  • 0x01:开启
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 03 65 00 02 03 00 6c

模组返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x65
数据长度 2 0x02
数据 1 子命令:0x03
1 操作结果
  • 0x00:操作成功
  • 0x01:操作失败
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 00 65 00 02 03 00 69

ASR 识别通知(子命令 0x04)

模组发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0x65
数据长度 2 0xXX
数据 1 子命令:0x04
1 {
“text”:“UTF-8 内容”,
“speaker”:“human”,//robot
“id”:1171
}
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例{"text":"xx", "speaker":"human", "id":1171}

55 aa 03 65 00 2b 04 7b 22 74 65 78 74 22 3a 22 78 78 22 2c 22 73 70 65 61 6b 65 72 22 3a 22 68 75 6d 61 6e 22 2c 20 22 69 64 22 3a 31 31 37 31 7d 69

MCU 返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x65
数据长度 2 0x01
数据 1 子命令:0x04
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 00 65 00 01 04 69

查询当前播放节目(子命令 0x05)

  • 此功能为查询当前歌曲和内容信息。
  • 此功能返回数据里的中文内容按照 UTF-8 编码,Hex 传输发送。

MCU 发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0x65
数据长度 2 0x01
数据 1 子命令:0x05
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 03 65 00 01 05 6d

模组返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x65
数据长度 2 0x0002+N
数据 1 子命令:0x05
1 操作结果
Data[0]:
  • 0x00:查询成功
  • 0x01:查询失败
N 操作结果为 0x01 时无此部分内容
{
“artist”:“贝多芬”,
“trackTitle”:“D 大调小夜曲”
}//中文按照 UTF-8 编码
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例{"artist":"贝多芬", "trackTitle":"D 大调小夜曲" }

55 aa 00 65 00 34 05 00 7b 22 61 72 74 69 73 74 22 3a 22 e8 96 9b e4 b9 8b e8 b0 a6 22 2c 22 74 72 61 63 6b 54 69 74 6c 65 22 3a 22 e5 8a a8 e7 89 a9 e4 b8 96 e7 95 8c 22 7d dc

上报模组状态(子命令 0x06)

MCU 发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0x65
数据长度 2 0x02
数据 1 子命令:0x06
状态
  • 0x00:在线
  • 0x01:蓝牙
  • 0x02:通话
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 03 65 00 02 06 00 6f

模组返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x65
数据长度 2 0x02
数据 1 子命令:0x06
1 操作结果
  • 0x00:成功
  • 0x01:失败
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 00 65 00 02 06 00 6c

模组录音上报 - 自动结束(子命令 0x07)

该命令可主动触发模组进入录音状态,设备会智能拾取人声并自动结束录音,最大录音时长为 10 秒。

MCU 发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0x65
数据长度 2 0x02
数据 1 子命令:0x07
状态,0x01:开始录音
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 03 65 00 02 07 01 71

模组返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x65
数据长度 2 0x02
数据 1 子命令:0x07
1 操作结果
  • 0x00:成功
  • 0x01:失败
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 00 65 00 02 07 00 6d

模组录音上报 - 手动结束(子命令 0x08)

该命令可主动触发模组进入录音状态,需要手动发送结束录音,最大录音时长为 10 秒。

MCU 发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0x65
数据长度 2 0x02
数据 1 子命令:0x08
1 状态
  • 0x00:结束录音
  • 0x01:开始录音
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 03 65 00 02 08 00 71

模组返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x65
数据长度 2 0x02
数据 1 子命令:0x08
1 操作结果
  • 0x00:成功
  • 0x01:失败
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 00 65 00 02 08 00 6e

打开闹铃通知(子命令 0x09)

此功能开启后,闹铃会通过 0x650A 命令字传输。

MCU 发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0x65
数据长度 2 0x02
数据 1 子命令:0x09
1
  • 0x00:关闭
  • 0x01:打开
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 03 65 00 02 09 01 73

模组返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x65
数据长度 2 0x02
数据 1 子命令:0x09
1 操作结果
  • 0x00:成功
  • 0x01:失败
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 00 65 00 02 09 00 6f

闹铃下发(子命令 0x0A)

模组发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x65
数据长度 2 0xXX
数据 1 子命令:0x0A
  • Data[0]:闹铃数量 N
  • Data[1]:操作类型,0:poll,1:add,2:del,3:update ----以下为重复内容
  • Data[2~7]:闹铃 ID
  • Data[8]:年份
  • Data[9]:月份
  • Data[10]:日期
  • Data[11]:小时
  • Data[12]:分钟
  • Data[13]:bit7~bit1 循环规则,例如 “0111000” //星期一二三执行(从星期天到星期六,为 1 的那天执行),“0000000” //单次执行。bit0 闹铃状态,0 表示启动,1 表示暂停
  • Data[14]:闹钟铃声 ID,闹钟铃声:0 表示在线铃声,其他表示设备本地铃声
  • Data[15~35]:铃声描述,在线闹钟铃声描述:用于匹配播放歌曲
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例:闹钟 ID:1,时间:2021/08/23 17:32,单次执行。

55 aa 00 65 00 24 0a 01 01 00 00 00 00 00 01 15 08 17 11 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 fa

MCU 返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0x65
数据长度 2 0x01
数据 1 子命令:0x0A
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 03 65 00 01 0a 72

查询闹铃列表(子命令 0x0B)

MCU 发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0x65
数据长度 2 0x01
数据 1 子命令:0x0B
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 03 65 00 01 0b 73

模组返回闹铃用命令字 0x650A 下发。

关闭本地闹铃(子命令 0x0C)

MCU 发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0x65
数据长度 2 0x02
数据 1 子命令:0x0C
状态
  • 0x00:关闭
  • 0x01:开启
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 03 65 00 02 0c 00 75

模组返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x65
数据长度 2 0x02
数据 1 子命令:0x0C
1 操作结果
  • 0x00:成功
  • 0x01:失败
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 00 65 00 02 0c 00 72

闹铃操作(子命令 0x0D)

MCU 发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0x65
数据长度 2 0xXX
数据 1 子命令:0x0D
状态
  • 0x01:新增闹铃
  • 0x02:修改闹铃
  • 0x03:删除闹铃
  • 0x04:打开闹铃
  • 0x05:关闭闹铃
JSON 数据,参考下方说明
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例{"date":"20210326", "time":"17:05", "loops":"0000000", "timeZone":"+08:00", "bell":0}

55 aa 03 65 00 53 0d 01 7b 22 64 61 74 65 22 3a 22 32 30 32 31 30 33 32 36 22 2c 22 74 69 6d 65 22 3a 22 31 37 3a 30 35 22 2c 22 6c 6f 6f 70 73 22 3a 22 30 30 30 30 30 30 30 22 2c 22 74 69 6d 65 5a 6f 6e 65 22 3a 22 2b 30 38 3a 30 30 22 2c 22 62 65 6c 6c 22 3a 30 7d 9e

模组返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x65
数据长度 2 0x09
数据 1 子命令:0x0D
1 操作码
  • 0x01:新增闹铃
  • 0x02:修改闹铃
  • 0x03:删除闹铃
  • 0x04:打开闹铃
  • 0x05:关闭闹铃
1 操作结果
  • 0x00:操作成功
  • 0x01:JSON 格式错误
  • 0x02:参数缺失
  • 0x03:服务调用失败
  • 0x04:其他错误
6 操作的 timerId
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 00 65 00 09 0d 01 00 00 00 00 00 00 0a 85

闹钟操作 JSON 数据格式

1. 添加闹钟:

名称 类型 描述 参数是否可选
time String 闹钟时间,例如,08:30。 N
loops String 循环执行,从星期天到星期六,为 1 的那天执行。例如,0100001 表示星期 1 和星期 6 执行。 N
date String 闹钟日期,循环闹钟取默认值 00000000,单次取要执行的那天的日期。例如,20181126 N
timeZone String 时区,如:+08:00。 N
bell Integer 铃声:格式正整数。
  • 0:在线铃声。
  • 其他:设备本地铃声,默认为 1
Y
bellDesc String 在线铃声描述,用于播放选择具体的歌曲。 Y
  • 单次示例:{ "date": "20181126", "time": "20:30", "loops": "0000000", "timeZone": "+08:00", "bell":1 }
  • 循环示例:{ "date": "00000000", "time": "08:00", "loops": "0111110", "timeZone": "+08:00", "bell":1 }

2. 修改闹钟:

名称 类型 描述 参数是否可选
time String 闹钟时间,例如:08:30。 N
loops String 循环执行,从星期天到星期六,为 1 的那天执行。例如,0100001 表示星期 1 和星期 6 执行。 N
date String 闹钟日期,循环闹钟取默认值 00000000,单次取要执行的那天的日期。例如,20181126 N
timerId Long 闹钟 ID。 N
timeZone String 时区,如:+08:00。 N
bell Integer 铃声:格式正整数。
  • 0:在线铃声。
  • 其他:设备本地铃声,默认为 1
Y
bellDesc String 在线铃声描述,用于播放选择具体的歌曲。 Y
  • 单次示例:{ "timerId": 10164075, "date": "20210322", "time": "14:30", "loops": "0000000", "timeZone": "+08:00", "bell":1 }
  • 循环示例:{ "timerId": 10164075, "date": "20210322", "time": "14:30", "loops": "0111110", "timeZone": "+08:00", "bell":1 }

3. 删除闹钟:

请求参数

名称 类型 描述 参数是否可选
timerId Long 闹钟 ID N

请求示例

{"timerId": 1002}

4. 暂停闹钟:

请求参数

名称 类型 描述 参数是否可选
timerId Long 闹钟 ID N

请求示例

{"timerId": 1002}

5. 启动闹钟:

请求参数

名称 类型 描述 参数是否可选
timerId Long 闹钟 ID N

请求示例

{"timerId": 1002}

查询提醒数量(子命令 0x0E)

MCU 发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0x65
数据长度 2 0x01
数据 1 子命令:0x0E
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 03 65 00 01 0e 76

模组返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x65
数据长度 2 0x02
数据 1 子命令:0x0E
1 提醒个数 0~30
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 00 65 00 02 0e 02 76

主动在线内容下发(子命令 0x0F)

MCU 发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0x65
数据长度 2 0x0001+N
数据 1 子命令:0x0F
N {
“text”: “xxx”, //设备端保存的文本播放内容或文本指令
“type”: “tts/music”, // tts 为播报文本内容,music 为后续自定义铃声
“target”: “alert/clock”, //闹钟还是提醒
}
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例{"text":"播放贝多芬的歌", "type":"music", "target":"alert"}

55 aa 03 65 00 41 0f 7b 22 74 65 78 74 22 3a 22 e6 92 ad e6 94 be e6 9e 97 e4 bf 8a e6 9d b0 e7 9a 84 e6 ad 8c 22 2c 22 74 79 70 65 22 3a 22 6d 75 73 69 63 22 2c 22 74 61 73 67 65 74 22 3a 22 61 6c 65 72 74 22 7d 91

模组返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x65
数据长度 2 0x0002
数据 1 子命令:0x0F
1 操作结果
  • 0x00:成功
  • 0x01:JSON 格式错误
  • 0x02:参数缺失
  • 0x03:其他错误
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 00 65 00 02 0f 00 75

附类型 DP 上报/下发拓展服务(0x36)

打开附 DP 类型拓展服务(子命令 0x01)

  • 该服务主要拓展 data point(DP)下发端来源类型,主要的来源类型分为局域网、广域网、蓝牙等。

  • 该拓展服务打开后,附 DP 类型命令下发与命令下发呈互斥关系。

MCU 发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0x36
数据长度 2 0x0002
数据 1 子命令:0x01
1
  • 0x00:关闭附 DP 类型拓展服务
  • 0x01:开启附 DP 类型拓展服务
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 03 36 00 02 01 01 3c

模组返回

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x36
数据长度 2 0x0002
数据 1 子命令:0x01
1
  • 0x00:服务开启/关闭成功
  • 0x01:服务开启/关闭失败
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例55 aa 00 36 00 02 01 00 38

附 DP 类型命令下发(子命令 0x02)

  • DP 状态数据单元说明,请参考 DP 格式

  • 命令下发可含多个 DP 命令数据单元。

  • 命令下发为异步处理协议,对应于 MCU 的 DP 状态上报。

  • 附 DP 下发来源类型需要手动设置,并与命令下发的状态上报 互斥

  • DP 下发来源类型除支持的部分外,其他的不支持。

模组发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x00
命令字 1 0x36
数据长度 2 取决于命令数据单元类型以及个数 N+2
数据 1 子命令:0x02
1 DP 下发来源类型
  • 0x00:未知来源类型
  • 0x01:局域网
  • 0x02:广域网
  • 0x03:本地定时
  • 0x04:广域网场景联动
  • 0x05:可靠的通道
  • 0x06:蓝牙
  • 0x07:本地场景联动
  • 0xF0:离线语音模组
N 命令数据单元组
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例:局域网系统开关对应 3 号 DP,使用 bool 型变量,开机数值为 1。

示例55 aa 00 36 0007 02 01 03 01 0001 01 45

附 DP 类型状态上报(子命令 0x03)

目前仅离线语音模组业务支持,其他业务可直接使用 状态上报

  • DP 状态数据单元说明,请参考 DP 格式

  • 状态上报为异步处理协议,状态上报触发机制有三类:

    • MCU 收到附 DP 类型命令下发处理帧时,正确执行相应 DP 命令,再通过附 DP 类型状态上报帧将变化后的 DP 状态发送至模组。

    • MCU 主动检测到 DP 有变化,将变化后的 DP 状态发送至模组。

    • MCU 收到 状态查询帧 时,将所有的 DP 状态发送至模组。

    • 状态上报可含多个 DP 命令数据单元。

MCU 发送

字段 字节数 说明
帧头 2 0x55aa
版本 1 0x03
命令字 1 0x36
数据长度 2 取决于 状态数据单元 类型以及个数 N+3
数据 1 子命令:0x03
1
  • 0x00:MCU 主动上报
  • 0x01:回应状态查询
  • 0x02:回应附 DP 类型命令下发
1 在 MCU 主动上报和回应状态查询两种情况下统一使用 0x00,而回应附 DP 类型命令下发,需要返回数据的来源。
  • 0x00:未知来源类型
  • 0x01:局域网
  • 0x02:广域网
  • 0x03:本地定时
  • 0x04:广域网场景联动
  • 0x05:可靠的通道
  • 0x06:蓝牙
  • 0x07:本地场景联动
  • 0xF0:离线语音模组
N 状态数据单元组
校验和 1 从帧头开始,按字节求和,得出的结果对 256 求余

示例:回应广域网下发的湿度对应 5 号 DP,使用 value 型变量,湿度为 30℃

示例55 aa 03 36 000b 03 02 02 05 02 0004 0000001e 73