基本的慢充通讯文档-系统接口
目录
描述
规约
本文档所述的协议是用以东骏科技有限公司物联网服务平台和继电器控制设备的数据交互。
客服(技术)联系方式
杭州东骏科技有限公司
电话:0571-87017551
手机:13082852087
兼容性
仅适用于授权设备。
词汇表
端口:充电时使用的接口,设备可以单独控制的电力输出结构。
端口编号:端口的程序代码,和设备编号共用用以表示端口在系统中的唯一值。端口编号必须以数字顺序编码,每台机器端口编号不得跳跃,不得重用。
响应类型:上报服务端的数据响应类型。分为即时响应上报和设备主动上报。
会话ID: 由服务端生成,用以区分不同的命令数据链。
网络通讯协议
本章节内容定义通讯模块和服务器之间的通讯协议。
通讯方式
- 数据上报:string字符串
- 指令数据:定长报文
- 通讯网络协议:TCP
关于粘包
由于服务器操作系统在处理TCP通讯时,将数据包转换成流传输给应用层,在数据频率高或者并发高的情况下很容易出现粘包,单片机受内存限制将不处理粘包,所以服务器在发送数据的时候需要注意的是尽量不要以特别高的频率向单片机发送数据,单片机如果接收到数据有粘包则只能处理前面一包的数据,后面的数据将会被丢弃,服务器可以通过重发机制避免粘包对业务产生影响,同时在很偶尔的情况下服务器发送数据可能出现分包(虽然现在大部分服务器发送慢充这样的数据不会出现分包),如果大量出现分包,请调整服务器网络参数设置,如果同一条数据被分包发送间隔大于2s将被单片机将在接收到后面的数据之前就认为前面的数据是非法的。同时因为服务器内存资源充足,建议服务器尽量对接收数据进行粘包处理。
协议结构
命令结构
定义:服务器发送,通讯模块接收的数据报文。
1 | 2 | 3 | 4 | 5 | 6 | 7 |
1:开始标识(1byte) “_”
2:报文长度(3byte)(ASCII数字)
3:命令(3byte)(英文大写,第一字节A为保留字段)
4:会话ID(6byte)(每一字节0x00-0x3D之间数字+偏移量0x31,当然如果使用A-Za-z0-9就一定再这个范围之内了,也就满足要求了),每次不同的通讯的会话ID都需要不一样(服务器发起的通讯至少连续的20次通讯不一样,除了特殊说明以外,当然我们的建议还是让每次通讯的会话ID尽可能的不一样),通常设备会在获取到服务器指令执行以后需要回复结果的会返回相同的会话ID给服务器,服务端可以通过会话ID获得设备当前回应的数据是哪一个会话的。同一个会话ID设备会认为是同一次通讯的重复发送,如果设备已经处理了相关的指令,就会丢弃之后相同会话ID的指令。设备由于内存限制,比对的会话ID是之前10次通讯的会话ID,为了可靠期间服务端只要保证连续的20次服务器发起的通讯会话ID不一致就可以了确保设备不会触发丢弃操作而影响指令的执行。另外如果有些命令服务器为了使设备一定收到,但设备只需要执行一次的,这样的命令多次发送用同一会话ID发送就可以了
5:分隔符(1byte) “/”
6:参数(如果没有参数则没有该部分)
7:结束标识(2byte) (0x0D 0x0A)
响应结构
定义:通讯模块发送,服务器接收的报文。
1 | 2 | 3 | 4 | 5 | 6 | 7 |
1:开始标识(1byte) “_”
2:响应类型(2byte) PG-ping,DV-设备号(IMEI),ID-SIM卡ICCID号,CM-客户端命令,RP-数据上报,RS-命令响应, RJ-Json数据上报
3:命令(3byte)(大写英文,回传服务器请求的命令,如果没有服务器请求则为AAA)
4:会话ID(6byte)(无服务器会话ID则返回”000000”,文档中指令的会话ID有特殊定义的,已定义为准)
5:内容长度(3byte)(ASCII数字)6的长度
6:内容(内容长度可以为空)
7:结束标识(2byte) (0x0D 0x0A)
命令限制
- ADV(设备号IMEI号) AID(SIM卡ICCID号) AXT(心跳) AAA(空指令) 为系统内置命令不能用于其他接口
- 业务级别的接口命令不得用 A 开头
业务协议-继电器倒计时
查询设备端口状态
端口查询请求
关联设备命令:0x01
发送方 | 服务器 |
说明 | 服务端询问设备状态 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,STA |
会话ID | 6byte,服务器生成 |
分隔符 | 1byte,“/” |
参数 | 空 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 016 STA DSfFGd / <0x0D> <0x0A>
端口查询响应
关联设备命令:0x01
发送方 | 通信模块 |
说明 | 返回服务端查询内容 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,STA |
会话ID | 6byte,服务器生成 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 端口号
: 状态(1-端口空闲,2-端口正在使用,3-端口禁用,4-端口故障) (“/”端口分隔符) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RS STA DSfFGd 011 1 : 0 / 2 : 1 / 3 : 1 <0x0D> <0x0A>
设备启动
最后变更版本:2.2.7,变更日期:2018-3-23
关联设备命令:0x02
设备启动请求
发送方 | 服务器 |
说明 | 支付完成后,启动设备,开始充电 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,RUN |
会话ID | 6byte,服务器生成 |
分隔符 | 1byte,“/” |
参数 | 端口字段长度(2byte)
端口号(任意长度) 充电时长字段长度(2byte) 充电时长(任意长度) 功率档位字段长度(2byte) 功率档位(任意长度,0-255,0表示不选择) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 023 RUN 123456 / 01 2 02 60 01 1 <0x0D> <0x0A>
设备启动响应
发送方 | 通信模块 |
说明 | 响应服务端启动情况 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,RUN |
会话ID | 6byte,服务器生成 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 状态(1-成功,2-故障,3-端口已用) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RS RUN 123456 001 1 <0x0D> <0x0A>
运行完成通知
设备运行完成上报
发送方 | 通信模块 |
说明 | 设备充电完成后,上报服务端 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RP |
命令 | 3byte,UWC |
会话ID | 6byte,A80005 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 充电端口#/#
充电剩余时间/电量(单位:分钟/度)#/# 停止原因(0-时间用完了,1-用户手动停止(拔插头或是按了停止按钮),2-充满自动停止,3-端口出现问题被迫停止,4-因充电器功率过大,5-刷卡退费结束,6-开始充电未接充电器)#/# 卡号:刷卡的卡号,如果不是刷卡订单则卡号为空(可选字段) #/# 退款金额:充电完成需要退款的金额(可选字段) #/# 卡类型:刷卡的卡类型,如果不是刷卡订单则卡类型为空或为零(可选字段) #/# 重传序号(通讯模块生成,该参数是后面DLB命令的参数,获取到充电完成就必须要发送DLB回应设备已经接收到,如果不回应,设备为了保证服务端收到该条消息会每隔一分钟重新发送)#/# |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RP UWC A80005 017 1 #/# 70 #/# 2 #/# 2938475869 #/# 2 #/# 1 #/# 56<0x0D> <0x0A>
删除重传队列
发送方 | 服务器 |
说明 | 服务端收到设备充电完成上报后,回应设备让设备删除重传列表中的该条数据。 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,DLB |
会话ID | 6byte,服务器生成 |
分隔符 | 1byte,“/” |
参数 | 重传序号(通讯模块生成) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 018 DLB 123456 / 56 <0x0D> <0x0A>
远程停止运行
关联设备命令:0x0B
停止指定端口运行
发送方 | 服务器 |
说明 | 停止指定的运营端口(执行退款功能时使用) |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,RTN |
会话ID | 6byte,服务器生成 |
分隔符 | 1byte,“/” |
参数 | 2byte 端口号 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 018 RTN 123456 / 01<0x0D> <0x0A>
停止指定端口运行响应
关联设备命令:0x0B
发送方 | 通信模块 |
说明 | 返回服务端执行结果 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,DCH |
会话ID | 6byte,服务器生成 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 端口号#/#剩余时间(单位:分) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RS DCH 123456 001 1 #/# 60 <0x0D> <0x0A>
时间单位设置
下发时间单位设置
发送方 | 服务器 |
说明 | 服务器请求设备功能掩码 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,SKG |
会话ID | 6byte,服务器下发 |
分隔符 | 1byte,“/” |
参数 | 1-分钟,2-秒 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 017 SKG 123456 / 0 0x0D 0x0A
下发时间单位响应
发送方 | 通信模块 |
说明 | 上报刷卡结果 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,SKG |
会话ID | 6byte,服务器生成 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | S-成功,F-失败 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RS SKG 123456 001 S <0x0D> <0x0A>
查询时间单位设置
发送方 | 服务器 |
说明 | 服务器请求设备功能掩码 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,SKH |
会话ID | 6byte,服务器下发 |
分隔符 | 1byte,“/” |
参数 | 0 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 017 SKH 123456 / 0 0x0D 0x0A
查询时间单位响应
发送方 | 通信模块 |
说明 | 上报刷卡结果 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,SKH |
会话ID | 6byte,服务器生成 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 1-分钟为单位,2-秒为单位,N-没有设置 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RS SKH 123456 001 0 <0x0D> <0x0A>
是否开启断电时间保存
下发断电保存设置
发送方 | 服务器 |
说明 | 服务器请求设备功能掩码 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,SKI |
会话ID | 6byte,服务器下发 |
分隔符 | 1byte,“/” |
参数 | 1-保存,2-不保存 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 017 SKI 123456 / 0 0x0D 0x0A
下发断电保存设置响应
发送方 | 通信模块 |
说明 | 上报刷卡结果 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,SKI |
会话ID | 6byte,服务器生成 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | S-成功,F-失败 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RS SKI 123456 001 S <0x0D> <0x0A>
查询断电保存设置
发送方 | 服务器 |
说明 | 服务器请求设备功能掩码 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,SKL |
会话ID | 6byte,服务器下发 |
分隔符 | 1byte,“/” |
参数 | 0 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 017 SKL 123456 / 0 0x0D 0x0A
查询断电保存设置响应
发送方 | 通信模块 |
说明 | 上报刷卡结果 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,SKL |
会话ID | 6byte,服务器生成 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 1-保存,2-不保存,N-没有设置 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RS SKL 123456 001 0 <0x0D> <0x0A>
业务协议-投币信号模拟
端口查询
服务端查询可用端口
发送方 | 服务器 |
说明 | 服务端查询设备可用端口 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,CXD |
会话ID | 6byte,服务器生成 |
分隔符 | 1byte,“/” |
参数 | 端口号(1byte 0-全部端口,1-1号端口,2-2号端口) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 017 CXD 123456 / 1 <0x0D> <0x0A>
状态查询响应
发送方 | 通信模块 |
说明 | 设备收到服务器查询命令时,返回端口状态 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,CXD |
会话ID | 6byte,服务端下发 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 端口(1byte 1-1号端口,2-2号端口)
分隔符:/ 端口状态(1byte 0-不可用,1-可用) (端口分隔符:#) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RS CXD 123456 003 1 / 1 <0x0D> <0x0A>
_ RS CXD 123456 007 1 / 1 # 2 / 0 <0x0D> <0x0A>
第三方支付充值
服务器下发充值命令
发送方 | 服务器 |
说明 | 服务器向设备下发充值命令 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,CON |
会话ID | 6byte,服务器生成 |
分隔符 | 1byte,“/” |
参数 | 订单号(23byte)
充值端口号(1byte): 1或2 充值数量(2byte): 1~99 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 042 CON A80001 / 12345678901234567890123 1 01 <0x0D> <0x0A>
设备充值命令响应
发送方 | 通信模块 |
说明 | 设备响应充值命令并返回是否成功 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,CON |
会话ID | 6byte,服务器生成 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 订单号(23byte) #/#
是否成功:S-成功,F-失败 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RS CON 123456 027 12345678901234567890123 #/# S <0x0D> <0x0A>
下发学习内容
服务器下发学习内容
发送方 | 服务器 |
说明 | 服务端设置模块的信号模式及信号时长 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,CSN |
会话ID | 6byte,服务器生成 |
分隔符 | 1byte,“/” |
参数 | 信号模式(1byte):(0 — 常开模式,1 — 常闭模式)
信号时长(2byte):大于20(单位:毫秒) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 019 CSN 123456 / 0 60 <0x0D> <0x0A>
学习结果上报
发送方 | 通信模块 |
说明 | 模块响应服务端执行情况 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,CSN |
会话ID | 6byte,服务端下发 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | S-成功,F-失败 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RS CSN 123456 001 S <0x0D> <0x0A>
投币上报
是否启用投币上报
发送方 | 服务器 |
说明 | 服务端下发是否需要投币上报(默认为关闭状态) |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,CTB |
会话ID | 6byte,服务器生成 |
分隔符 | 1byte,“/” |
参数 | 是否启用(1byte):(0 — 关闭,1 — 启用) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 017 CTB 123456 / 0 <0x0D> <0x0A>
响应服务端设置
发送方 | 通信模块 |
说明 | 响应服务端设置投币上报功能是否成功 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,CTB |
会话ID | 6byte(服务端下发) |
内容长度 | 3byte,表示内容长度 001 |
内容 | S-成功,F-失败 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RP CTB 123456 001 S <0x0D> <0x0A>
发起投币上报
发送方 | 通信模块 |
说明 | 发现投币后上报服务器 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RP |
命令 | 3byte,CIN |
会话ID | 6byte,A80002 |
内容长度 | 3byte,表示内容长度 001 |
内容 | 1 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RP CIN 123456 001 1 <0x0D> <0x0A>
运行完成上报
发送方 | 通信模块 |
说明 | 设备运行结束后,负载拔出,上报服务端完成 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RP |
命令 | 3byte,STP |
会话ID | 6byte,A80012 |
内容长度 | 3byte,表示内容长度 001 |
内容 | 1-1号端口结束,2-2号端口结束 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RP STP A80012 001 1 <0x0D> <0x0A>
系统及网络接口
获取设备号
请求设备号
发送方 | 服务器 |
说明 | 在设备连接服务端成功后,服务端立即发送指令请求该设备的设备号
现在约定设备的GSM模块的IMEI号作为唯一设备号 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,ADV |
会话ID | 6byte,000000 |
分隔符 | 1byte,“/” |
参数 | IMEI |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 020 ADV 000000 / IMEI 0x0D 0x0A
设备号响应
发送方 | 通信模块 |
说明 | 设备收到设备号请求时,返回设备号
现在约定设备的GSM模块的IMEI号作为唯一设备号 设备号返回后才能开始真正的业务级别通讯 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,DV |
命令 | 3byte,ADV |
会话ID | 6byte,000000 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 2byte ID类型:IM
2byte 编码长度:IMEI号长度,一般为15 (一般15byte)设备号:GSM模块IMEI号 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
IMEI号: 987654321012345 _ DV ADV 000000 019 IM 15 987654321012345 0x0D 0x0A
心跳Ping
发送心跳Ping
发送方 | 通信模块 |
说明 | 设备连接成功后,轮询发送心跳包,保持长连接。
综合考虑运营商GPRS的超时、路由映射缓存超时、流量节省等因素, 心跳间隔建议在60秒 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,PG |
命令 | 3byte,AXT |
会话ID | 6byte,000000 |
内容长度 | 3byte,001 |
内容 | 信号值:0-31(,分割)
误码率:0-7(#/#分割) 上次心跳响应时间:整数值(可能为负,10ms为单位,上次心跳发出时间到上次接收到服务器心跳返回的时间,可以初略估计出网络的传输和服务器的响应速度,#/#分割) 网络制式:GPRS、HSPA、WCDMA、LTE、CDMA等 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ PG AXT 000000 016 31 , 0 #/# 74 #/# GPRS 0x0D 0x0A
信号值显示建议:
以下以5格信号显示为例:信号值0-5显示0格,信号值6-12显示为1格,信号值13-16显示为2格,信号值17-20显示为3格,信号值21-25显示为4格,信号值26-31显示为5格。同时如果误码率≥5,则信号格数在原来基础上减去1,如果计算的信号格数为负数则显示为零格。
通常信号值为15以下(包括15)的建议通过信号放大或者调整天线匹配等手段使模块获得更好的信号,在这种信号情况下会出现掉线率高,数据延时高等情况,对通讯和业务会造成影响。
关于天线:
天线是将传输线中的电磁能转化成自由空间的电磁波,或将空间电磁波转化成传输线中的电磁能的专用设备。在无线通信系统中,天线是收发信机与外界传播介质之间的接口。同一个天线既可以辐射又可以接收无线电波:发射时,把高频电流转换为电磁波;接收时把电磁波转换为高频电流。
天线是一种变换器,它把传输线上传播的导行波,变换成在无界媒介(通常是自由空间)中传播的电磁波,由于天线具有可逆性,在接收时,天线进行相反的变换;天线是发射和接收电磁波的一个重要装置,没有天线也就没有无线电通信。因此天线的好坏以及天线的安装环境直接影响通讯的质量甚至是是否可以通讯。当你发现你同一个地方2G信号是覆盖的,但是设备的信号很差时,请务必确认天线是否匹配2G网络,天线的安装环境是否良好。天线周围不应该有金属屏蔽或者对信号有反射和吸收的介质,天线周围也不应该有高频信号源或者电力线路,天线安装应该有一定的高度,并查看天线频率、增益、驻波比系数、功率,灵敏度等参数是否符合你的要求,如果你认为设备没有达到预期的信号效果,请咨询专业的天线厂家。
响应心跳Ping
发送方 | 服务器 |
说明 | 服务端回复心跳 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,AXT |
会话ID | 6byte,000000 |
分隔符 | 1byte,“/” |
参数 | P |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 017 AXT 000000 / P 0x0D 0x0A
获取ICCID以及软硬件版本号
请求ICCID以及软硬件版本号
发送方 | 服务器 |
说明 | 在设备返回设备号后,服务端发送指令获取SIM卡的ICCID |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,AID |
会话ID | 6byte,000000 |
分隔符 | 1byte,“/” |
参数 | |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 016 AID 000000 / 0x0D 0x0A
ICCID以及软硬件版本号响应
发送方 | 通信模块 |
说明 | 设备收到ICCID请求时,返回ICCID |
开始标志 | 1byte,“_” |
响应类型 | 2byte,ID |
命令 | 3byte,AID |
会话ID | 6byte,000000 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | ICCID号(#/#分割)
软件版本号(#/#) 硬件版本号 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
ICCID号 : 898602B3131650175846
_ ID AID 000000 045 898602B3131650175846 #/# mc-2.3.0 #/# DJ-BSD-8202 0x0D 0x0A
远程重启
设置远程重启
发送方 | 服务器 |
说明 | 设置设备重启 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,ABT |
会话ID | 6byte,000000 |
分隔符 | 1byte,“/” |
参数 | |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 016 ABT 000000 / 0x0D 0x0A
请求设备类型
请求设备类型
发送方 | 服务器 |
说明 | 请求设备的类型编号,服务端约定 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,ASY |
会话ID | 6byte,000000 |
分隔符 | 1byte,“/” |
参数 | |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 016 ASY 000000 / 0x0D 0x0A
响应设备类型
发送方 | 通信模块 |
说明 | 响应设备的类型编号 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RP |
命令 | 3byte,ASY |
会话ID | 6byte,A00003 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 设备类型 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RP ASY A00003 001 1 0x0D 0x0A
获取固件说明
请求固件说明
发送方 | 服务器 |
说明 | 请求设备固件说明 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,AAE |
会话ID | 6byte,服务器下发 |
分隔符 | 1byte,“/” |
参数 | |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 016 AAE 123456 / 0x0D 0x0A
响应固件说明
发送方 | 通信模块 |
说明 | 响应服务器固件说明 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,AAE |
会话ID | 6byte,服务端下发 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 固件说明utf8字段base64之后的字符 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RS AAE 123456 016 5Zu65Lu26K+05piO 0x0D 0x0A
心跳和握手流程
设备通讯模块连接上服务器后会首先发送一次心跳,此时服务器就可以和模块通讯了,一般来说首先进行身份鉴别,通过获取IMEI和ICCID指令,获取设备的IMEI和ICCID号校验设备的身份信息。心跳是由模块发起,当发起心跳以后服务端必须在5秒钟之内回复心跳,建立连接以后模块会每个一定的时间发送心跳给服务器用来保持长连接和通讯确认。
打
印
新
页
打
印
新
页
打
印
新
页
打
印
新
页
打
印
新
页