您的位置:首页 > 其它

喜马拉雅WiFi音响绑定及通讯协议初稿

2015-12-01 12:42 225 查看
喜马拉雅WiFi音响绑定及通讯协议初稿

通讯协议

0x5A数据长度框架版本协议类型设备编码Mac地址数据帧序列号保留字数据类型数据内容检验码FCS
1字节2字节1字节1字节8字节6字节4字节8字节2字节N字节2字节

通讯Json格式

{
"cmd": 0 ,//命令码
"code": 0,  //返回码
"msg": "",  //状态消息
"data": ......  //数据节点
}


参数说明

参数名称是否必须字段类型参数说明
cmdYESint命令码
codeNOint返回码
msgNOString状态消息
dataNOString数据节点

全局命令码

每一种操作对用一个命令码,用作标识指令。

全局命令码说明如下:

命令码(十六进制)十进制说明
0x00011添加歌曲
0x00022App查询歌曲列表
0x00033升级操作
0x00044播放
0x00055关机
0x00066静音/解除静音
0x00077音量+
0x00088音量-
0x00099切换aux状态
0x000a10下一曲
0x000b11上一曲
0x000c12暂停
0x000d13App查询播放状态
0x000e14WIFI 无线简易连接
0x000f15设备回复心跳
0x400f16399App发送心跳
0x001117palyMode(顺序播放/随机播放/列表循环/单曲循环/)
0x001218音量设置(直接设置音量值)
0x001319设备推送播放状态
0x001420设备推送播放列表
0x001521拖拽进度条

全局返回码

每次调用接口时,可能获得正确或错误的返回码,可以根据返回码信息调试接口,排查错误。

全局返回码说明如下:

0请求成功
200无错误
400不支持此接口
401JSON数据解析错误

示例

字符串

{
"cmd": 0x0001 ,//命令码
"code": 0,  //返回码
"msg": "",  //状态消息
"data": "This is string"  //数据节点
}


整形参数

{
"cmd": 0x0001 ,//命令码
"code": 0,  //返回码
"msg": "",  //状态消息
"data": 1  //数据节点
}


对象

{
"cmd": 0x0001 ,//命令码
"code": 0,  //返回码
"msg": "",  //状态消息
"data":  {
"ssid":"TP-link",  //连接的路由名称
"password":"12345678",  //路由密码,需要加密
}
}


数组

{
"cmd": 0x001 ,//命令码
"code": 0,  //返回码
"msg": "",  //状态消息
"data":[
{
"id"      :   "0"
"name" : “xxxx",
"artist" : “xxxx",
"album_title": “xxxx",
"cover_url_small”:“xxxx",
"cover_url_middle":"xxxx",
"cover_url_large":"xxxx",
"url":"xxxxxxxxx"  {详细规格见规格说明url部分},
},
{
"id":"1"
"name":"xxxx1",
"artist":"xxxx1",
"album":"xxxx1",
"cover_url_small":"xxxx",
"cover_url_middle":"xxxx",
"cover_url_large":"xxxx",
"url":"xxxxxxxxxx"{详细规格见规格说明url部分},
}
]
}


指令说明

一、设备基础指令

App扫描设备

0x5A数据长度框架版本协议类型设备编码Mac地址数据帧序列号保留字数据类型数据内容检验码FCS
5A0022400100000000000000000000000000002000000000000000000000000405data381a
- 命令字:0x0405

- data区:NULL

设备回复自身信息

0x5A数据长度框架版本协议类型设备编码Mac地址数据帧序列号保留字数据类型数据内容检验码FCS
5Axxxx400100000199001b0300d8f710e019b00000000000000000000000000305dataxxxx
- 命令字:0x0305

- 厂商ID:0x0199

- 大分类:0x1b

- 小分类:0x03

App发送心跳包

0x5A数据长度框架版本协议类型设备编码Mac地址数据帧序列号保留字数据类型数据内容检验码FCS
5Axxxx400100000000000000000000000000002000000000000000000000000104dataxxxx
- 命令字:0x0104

- data区:json

示例:

{
"cmd": 0x400f ,//命令码
"code": 0,  //返回码
"msg": "",  //状态消息
"data": ......  //数据节点
}


设备回复心跳

0x5A数据长度框架版本协议类型设备编码Mac地址数据帧序列号保留字数据类型数据内容检验码FCS
5Axxxx400100000000000000000000000000000000000000000000000000000204dataxxxx
命令字:0x0204

data区:json

示例:

{
"cmd": 0x000f ,//命令码
"code": 0,  //返回码
"msg": "",  //状态消息
"data":  {
"deviceId": "SPK设备序列号"
}
}


二、App主动控制终端指令

1.App控制终端

0x5A数据长度框架版本协议类型设备编码Mac地址数据帧序列号保留字数据类型数据内容检验码FCS
5Axxxx400100000000000000000000000000000000000000000000000000000104dataxxxx
命令字:0x0104

data区:json数据

示例:

{
"cmd": 0x00xx ,//命令码
"code": 0,  //返回码
"msg": "",  //状态消息
"data": ......  //数据节点
}


2.终端回复App

0x5A数据长度框架版本协议类型设备编码Mac地址数据帧序列号保留字数据类型数据内容检验码FCS
5Axxxx400100000000000000000000000000000000000000000000000000000204dataxxxx
命令字:0x0204

data区:json数据

示例:

{
"cmd": 0x00xx ,//命令码
"code": 0,  //返回码
"msg": "",  //状态消息
"data": ......  //数据节点
}


三、终端主动发送控制数据给App

1.周期上传运行数据

0x5A数据长度框架版本协议类型设备编码Mac地址数据帧序列号保留字数据类型数据内容检验码FCS
5Axxxx400100000000000000000000000000000000000000000000000000000105dataxxxx
命令字:0x0105

data区:json数据

示例:

{
"cmd": 0x0013 ,//命令码
"code": 0,  //返回码
"msg": "",  //状态消息
"data": ......  //数据节点
}


音箱数据模型

一、歌单

参数说明

参数名称是否必须字段类型参数说明
idint歌曲ID
namestring演唱者
artistString艺术家
album_titleString专辑标题
lrc_idString歌词ID
image_url_smallString歌曲海报1
image_url_middleString歌曲海报2
image_url_largeString歌曲海报3
macStringMac地址
total_timeint歌曲时长
album_idint专辑ID
utypeint比如 虾米音乐 考虑 喜马拉雅 之类的
uriint歌曲URL
downloadurlString下载url

二、播放状态

参数说明

参数名称是否必须字段类型参数说明
id 是int歌曲ID
mtypeString虾米,百度云盘,本地音乐…
p_statusint“0/1/2/3/4”, //准备播放,播放,暂停,停止,播放结束(用于网络收音机)
typeString当前播放源(预设preset),收藏,实时推送
namestring演唱者
artistString艺术家
albumString专辑
next_idint下一首歌曲id
total_timeint歌曲总时间
current_timeint歌曲当前播放时间
play_modeint模式(//顺序播放/随机播放列表循环/单曲循环/)
volumeint音量

绑定流程



点击看大图

[原文链接地址]/article/8647191.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: