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

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

通讯协议

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

通讯Json格式

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

参数说明

参数名称 是否必须 字段类型 参数说明
cmd YES int 命令码
code NO int 返回码
msg NO String 状态消息
data NO String 数据节点

全局命令码

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

全局命令码说明如下:

[]()
命令码(十六进制) 十进制 说明
0x0001 1 添加歌曲
0x0002 2 App查询歌曲列表
0x0003 3 升级操作
0x0004 4 播放
0x0005 5 关机
0x0006 6 静音/解除静音
0x0007 7 音量+
0x0008 8 音量-
0x0009 9 切换aux状态
0x000a 10 下一曲
0x000b 11 上一曲
0x000c 12 暂停
0x000d 13 App查询播放状态
0x000e 14 WIFI 无线简易连接
0x000f 15 设备回复心跳
0x400f 16399 App发送心跳
0x0011 17 palyMode(顺序播放/随机播放/列表循环/单曲循环/)
0x0012 18 音量设置(直接设置音量值)
0x0013 19 设备推送播放状态
0x0014 20 设备推送播放列表
0x0015 21 拖拽进度条

全局返回码

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

全局返回码说明如下:

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

示例

字符串

{ 
"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部分},
  }
   ]
}

指令说明

一、设备基础指令

  1. App扫描设备
0x5A 数据长度 框架版本 协议类型 设备编码 Mac地址 数据帧序列号 保留字 数据类型 数据内容 检验码FCS
5A 0022 40 01 0000000000000000 000000000000 20000000 0000000000000000 0405 data 381a
  • 命令字:0x0405
  • data区:NULL

    1. 设备回复自身信息
0x5A 数据长度 框架版本 协议类型 设备编码 Mac地址 数据帧序列号 保留字 数据类型 数据内容 检验码FCS
5A xxxx 40 01 00000199001b0300 d8f710e019b0 00000000 0000000000000000 0305 data xxxx
  • 命令字:0x0305
  • 厂商ID:0x0199
  • 大分类:0x1b
  • 小分类:0x03

    1. App发送心跳包
0x5A 数据长度 框架版本 协议类型 设备编码 Mac地址 数据帧序列号 保留字 数据类型 数据内容 检验码FCS
5A xxxx 40 01 0000000000000000 000000000000 20000000 0000000000000000 0104 data xxxx
  • 命令字:0x0104
  • data区:json

示例:

    { 
     "cmd": 0x400f ,//命令码
    "code": 0,  //返回码
    "msg": "",  //状态消息
    "data": ......  //数据节点
    }
  1. 设备回复心跳
0x5A 数据长度 框架版本 协议类型 设备编码 Mac地址 数据帧序列号 保留字 数据类型 数据内容 检验码FCS
5A xxxx 40 01 0000000000000000 000000000000 00000000 0000000000000000 0204 data xxxx
  • 命令字:0x0204
  • data区:json

示例:

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

二、App主动控制终端指令

1.App控制终端

0x5A 数据长度 框架版本 协议类型 设备编码 Mac地址 数据帧序列号 保留字 数据类型 数据内容 检验码FCS
5A xxxx 40 01 0000000000000000 000000000000 20000000 0000000000000000 0104 data xxxx
  • 命令字:0x0104
  • data区:json数据

    示例:

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

2.终端回复App

0x5A 数据长度 框架版本 协议类型 设备编码 Mac地址 数据帧序列号 保留字 数据类型 数据内容 检验码FCS
5A xxxx 40 01 0000000000000000 000000000000 00000000 0000000000000000 0204 data xxxx
  • 命令字:0x0204
  • data区:json数据

    示例:

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

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

1.周期上传运行数据

0x5A 数据长度 框架版本 协议类型 设备编码 Mac地址 数据帧序列号 保留字 数据类型 数据内容 检验码FCS
5A xxxx 40 01 0000000000000000 000000000000 00000000 0000000000000000 0105 data xxxx
  • 命令字:0x0105
  • data区:json数据

    示例:

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

音箱数据模型

一、歌单

参数说明

参数名称 是否必须 字段类型 参数说明
id int 歌曲ID
name string 演唱者
artist String 艺术家
album_title String 专辑标题
lrc_id String 歌词ID
image_url_small String 歌曲海报1
image_url_middle String 歌曲海报2
image_url_large String 歌曲海报3
mac String Mac地址
total_time int 歌曲时长
album_id int 专辑ID
utype int 比如 虾米音乐 考虑 喜马拉雅 之类的
uri int 歌曲URL

二、播放状态

参数说明

参数名称 是否必须 字段类型 参数说明
id int 歌曲ID
mtype String 虾米,百度云盘,本地音乐…
p_status int “0/1/2/3/4”, //准备播放,播放,暂停,停止,播放结束(用于网络收音机)
type String 当前播放源(预设preset),收藏,实时推送
name string 演唱者
artist String 艺术家
album String 专辑
next_id int 下一首歌曲id
total_time int 歌曲总时间
current_time int 歌曲当前播放时间
play_mode int 模式(//顺序播放/随机播放列表循环/单曲循环/)
volume int 音量

绑定流程

喜马拉雅音响绑定及通讯协议_第1张图片
点击看大图

[原文链接地址]http://blog.csdn.net/xxl6097/article/details/50127949

你可能感兴趣的:(json,数据,cmd,Class,通讯)