01、收款播报机通用版本网络协议
对接说明
网络协议使用json格式,根据 cmd 区分指令类型。以下协议是设备端默认处理好的,服务器需要适配终端。若需要播报机终端适配服务器端的协议,需要评估工作量,并收取一定的开发费。
另外,因流量卡流量有限,有些指令不需要频繁发送。尽量节省流量。服务器与终端联调之前,请先用 mqtt.fx 连接上服务器,确保 mqtt 服务器端没有问题。再介入音箱设备。
mqtt.fx 下载: https://www.jensd.de/apps/mqttfx/1.7.1/?spm=a2c4g.11186623.2.13.747e73a8AC8Jqr
一、语音播报
服务器下发
示例:
{"cmd":"voice","channel":0,"money":"31.22","msg":"微信收款31.22元","speed":50,"msgid":"202010260001"}
字段 | 类型 | 必选 | 取值说明 | |||||
cmd | 字符串 | 是 | 指令名称,固定取值:“voice” | |||||
msg | 字符串 | 否 | TTS播报的内容,中文字符必须是 UTF8 编码。只要存在该字段,就会使用 TTS 播报,若需要使用 MP3 播报,则不要传该值。 | |||||
channel | 整形 | 否 | 自定义收款渠道语音,比如:0-微信收款,1-支付宝收款。当使用MP3播报时必传。msg不存在才生效。( 仅B002生效 ) | |||||
money | 字符串 | 否 | 收款金额,必须保留2位小数。当使用MP3播报时必传。msg不存在才生效。( 仅B002生效 ) | |||||
speed | 整形 | 否 | TTS播报语速。取值0-100,值越大,语速越快。默认语音为50。(注:B002 版本上无效,MP3播报不需要传) | |||||
msgid | 字符串 | 否 | 消息ID,若当前消息ID与上一个消息ID相同,则认为是同一个消息,终端不重复执行。建议用带时间戳的编号赋值 |
终端回复
示例:
{"cmd":"voice","sn": "B002COMMONTESTDEVICE","status":1}
字段 | 类型 | 必选 | 取值说明 | |||||
cmd | 字符串 | 是 | 指令名称,固定取值:“voice” | |||||
sn | 字符串 | 否 | mqtt连接时,该字段不传;TCP/IP连接时才传 | |||||
status | 整形 | 是 | 1-播报成功,2-播报失败。 |
终端响应:语音播报“微信收款31.22元”
二、设置设备参数
注意事项
2G 版本20210429之前的版本号禁用该指令。从版本号 B002_20210429-1103 开始支持
服务器下发
示例:
{"cmd":"setting","poweron":"欢迎使用万能收款播报机", "poweroff":"谢谢使用","volume":"inc","ttsspeed":50,"msgid":"202010260002"}
字段 | 类型 | 必选 | 取值说明 | ||||||||
cmd | 字符串 | 是 | 指令名称,固定取值:“setting” | ||||||||
poweron | 字符串 | 否 | 设备开机铃声,中文字符编码必须是 UTF8 编码,若poweron="",则清空设置,使用默认铃声 | ||||||||
poweroff | 字符串 | 否 | 设备关机铃声,中文字符编码必须是 UTF8 编码,若poweroff="",则清空设置,使用默认铃声 | ||||||||
volume | 字符串 | 否 | 设置音量。inc-音量递增,dec-音量递减,1~7-数字直接指定音量等级 | ||||||||
ttsspeed | 整形 | 否 | 语音播报速度,取值0~100(注:2G流量版本上无效,不需要传) | ||||||||
msgid | 字符串 | 否 | 消息ID,若当前消息ID与上一个消息ID相同,则认为是同一个消息,终端不重复执行。建议用带时间戳的编号赋值 |
终端回复
示例:
{"cmd":"setting","sn": "B002COMMONTESTDEVICE","poweron":1,"poweroff":1,"volume":1,"ttsspeed":1}
字段 | 类型 | 必选 | 取值说明 | |||||
cmd | 字符串 | 是 | 指令名称,固定取值:“setting” | |||||
sn | 字符串 | 否 | mqtt连接时,该字段不传;TCP/IP连接时才传 | |||||
poweron | 整形 | 否 | 1-开机铃声设置成功,0-开机铃声设置失败 | |||||
poweroff | 整形 | 否 | 1-关机铃声设置成功,0-关机铃声设置失败 | |||||
volume | 整形 | 否 | 0-音量设置失败, 1~7 - 音量设置成功,返回对应音量等级。 | |||||
ttsspeed | 整形 | 否 | 1-语速设置成功,0-语速设置失败(注:2G流量版本上无效,不需要传) |
三、获取设备位置
服务器下发
示例:
{"cmd":"getloc", "msgid":"202010260003"}
字段 | 类型 | 必选 | 取值说明 | |||||
cmd | 字符串 | 是 | 指令名称,固定取值:“getloc” | |||||
msgid | 字符串 | 否 | 消息ID,若当前消息ID与上一个消息ID相同,则认为是同一个消息,终端不重复执行。建议用带时间戳的编号赋值 |
终端回复
示例
JavaScript 全选
{
"cmd":"getloc",
"sn": "B002COMMONTESTDEVICE",
"lat":"028.2044303",
"lng":"112.8847263",
"lbs":[
{"lac":"120600609","mnc":"0","rssi":"18","mcc":"460","cid":"29601"},
{"lac":"252332421","mnc":"0","rssi":"18","mcc":"460","cid":"29601"},
{"lac":"121619222","mnc":"0","rssi":"16","mcc":"460","cid":"29601"},
{"lac":"98152263","mnc":"0","rssi":"15","mcc":"460","cid":"29601"},
{"lac":"252332422","mnc":"0","rssi":"17","mcc":"460","cid":"29601"},
{"lac":"13706903","mnc":"0","rssi":"8","mcc":"460","cid":"29601"}
]
}
字段 | 类型 | 必选 | 取值说明 | |||||
cmd | 字符串 | 是 | 指令名称,固定取值:“getloc” | |||||
sn | 字符串 | 否 | mqtt连接时,该字段不传;TCP/IP连接时才传 | |||||
lat | 字符串 | 否 | 根据lbs数据获取到的纬度(注:2G流量版本上不会上传该字段) | |||||
lng | 字符串 | 否 | 根据lbs数据获取到的经度(注:2G流量版本上不会上传该字段) | |||||
lbs | Json数组 | 是 | 获取经纬度的lbs数据 |
B002项目2G流量版不返回经纬度,只返回LBS数据,若需要定位功能,需在服务器上调用地图接口将LBS数据转换为经纬度。
具体接口可咨询地图服务商,比如高德地图。
四、获取设备信息
服务器下发
示例:
{"cmd":"getinfo", "msgid":"202010260004"}
字段 | 类型 | 必选 | 取值说明 | |||||
cmd | 字符串 | 是 | 指令名称,固定取值:“getinfo” | |||||
msgid | 字符串 | 否 | 消息ID,若当前消息ID与上一个消息ID相同,则认为是同一个消息,终端不重复执行。建议用带时间戳的编号赋值 |
终端回复
示例
JavaScript 全选
{
"cmd": "getinfo",
"sn": "B002COMMONTESTDEVICE",
"imei": "863586888311150",
"imsi": "460042712831115",
"iccid": "89860407111980351047",
"volume": "2",
"batt": 4207,
"poweron": "欢迎使用智能收款播报云音响",
"poweroff": "谢谢使用",
"ttsspeed": 50,
"verno": "B005_通用版本_1.0.0_Luat_V0026_RDA8910_TTS_FLOAT",
"otakey":"Gv8h5Opqcqs6uVY9BgbzZZ2P98cOYgZo",
"signal": 28
}
字段BB95:J102 | 类型 | 必选 | 取值说明 | |||||
cmd | 字符串 | 是 | 指令名称,固定取值:“getinfo” | |||||
sn | 字符串 | 是 | 设备sn号,用于连接服务器 | |||||
imei | 字符串 | 是 | 设备IMEI号码 | |||||
imsi | 字符串 | 是 | Sim卡的imsi号码 | |||||
iccid | 字符串 | 是 | Sim卡iccid号码,可用于流量充值 | |||||
volume | 字符串 | 是 | 音量大小”2”,2表示当前音量等级 | |||||
batt | 整形 | 是 | 电池电压,单位mv(注:2G流量版为电量百分比) | |||||
poweron | 字符串 | 是 | 开机铃声,中文编码为UTF8 | |||||
poweroff | 字符串 | 是 | 关机铃声,中文编码为UTF8 | |||||
ttsspeed | 整形 | 否 | 设备当前TTS播报语速。取值0-100,值越大,语速越快。默认语音为50。(注:2G流量版本上不上传该字段) | |||||
verno | 字符串 | 是 | 设备软件版本 | |||||
signal | 整形 | 是 | SIM卡信号强度(注:2G流量版本上不上传该字段) | |||||
otakey | 字符串 | 是 | SIM卡信号强度(注:2G流量版本上不上传该字段) |
五、TCP/IP 心跳包 二维码识别
服务器下发
示例:
{"cmd":"qrcode","freq":3}
字段 | 类型 | 必选 | 取值说明 | |||||
cmd | 字符串 | 是 | 指令名称,固定取值:“qrcode” | |||||
freq | 整形 | 是 | 摄像头扫码频率,单位 秒。当freq>0时打开摄像头,freq=0时关闭摄像头。系统默认摄像头关闭,freq=0. |
注:服务器下发该消息,终端不回复
终端上传
示例:
{"cmd":"qrcode","data":"二维码内容base64编码","freq":3}
字段 | 类型 | 必选 | 取值说明 | |||||
cmd | 字符串 | 是 | 指令名称,固定取值:“qrcode” | |||||
data | 字符串 | 是 | 摄像头识别的二维码内容 base64 编码。服务器接收到该消息后,需要base64解码才能得到二维码内容。 | |||||
freq | 整形 | 是 | 摄像头当前的扫码频率 |
注:终端上传该消息,服务器不需要回复
六、TCP/IP 心跳包 GPIO 开关控制
服务器下发
示例:
{"cmd":"switch", "gpio":[{"pin":4,"flag":1},{"pin":12,"flag":0}]}
字段 | 类型 | 必选 | 取值说明 | |||||
cmd | 字符串 | 是 | 指令名称,固定取值:“switch” | |||||
gpio | Json数组 | 是 | gpio 数组 | |||||
pin | 整形 | 是 | gpio 编号,取值 0—31。注意:gpio口不能随意控制,只能控制硬件预留的gpio口,否则会引起设备工作不正常。(上述示例指令中 4 为黄灯,12 为蓝灯) | |||||
flag | 整形 | 是 | gpio 开关状态,1-gpio拉高,0-gpio拉低 |
B006 预留GPIO口: GPIO8,GPIO19,GPIO14,GPIO15
终端回复
终端不回复
七、TCP/IP 心跳包
终端上传
示例:
{"cmd":"heartbeat","sn":"B002TTSTESTDEVICE001"}
字段 | 类型 | 必选 | 取值说明 | |||||
cmd | 字符串 | 是 | 指令名称,固定取值:“heartbeat” | |||||
sn | 字符串 | 否 | 设备sn号,唯一标志一个设备 |
服务器回复
示例:
{"cmd":"heartbeat"}
字段 | 类型 | 必选 | 取值说明 | |||||
cmd | 字符串 | 是 | 指令名称,固定取值:“heartbeat” |
心跳包频率 2G设备1分钟一次,4G设备2分钟一次,只有在 TCP/IP 连接时才会用到,MQTT 连接时不需要该协议。
2G流量版设备连上服务器就会发送一条心跳包,只有收到服务器回复才会提示“服务连接成功”
版权声明:本文为YES开发框架网发布内容,转载请附上原文出处连接
QRcodeVoice 管理员