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流量版本上不会上传该字段)
lbsJson数组获取经纬度的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字符串音量大小22表示当前音量等级
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”
gpioJson数组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开发框架网发布内容,转载请附上原文出处连接
管理员
评论列表

发表评论

评论内容
昵称:
关联文章

01收款播报通用版本网络协议
智能收款播报 对接操作说明
02、2G流量版收款播报写码
11、收款播报下单生产说明
03、4G 收款播报写码
WIFI版本播报音响用户手册
订立协议
基于欧姆龙PLC#FinsTcp协议上位通讯(二)-C#通讯模块开发
基于欧姆龙PLC#FinsTcp协议上位通讯(一)-PLC配置
1.面向连接的传输协议:TCP
C# Socket网络编程 系列课程
windows平台的分布式微服务解决方案(1)--UUID全球通用唯一识别码
2.网络聊天程序的三种模式
组策略:网络安全:LAN 管理器身份验证级别 改为 没有定义
协议处理类的实现
版本记录
[.Net] .NET Reactor加授权方法 .NET Reactor自定义注册和获取机器码
DevExpress 组件 历史各版本下载地址【更新:V21.1.5】
.NET 通用多条件动态参数查询方法 - SqlSugar ORM
electron与node.js的版本对应关系