慢充设备通讯文档-系统接口
目录
- 1 版本变更说明
- 2 描述
- 3 协议结构
- 4 业务协议
- 4.1 查询设备端口状态
- 4.2 设备充电
- 4.3 设备参数设置
- 4.4 设置IC卡、投币器是否可用
- 4.5 端口锁定、解锁
- 4.6 远程停止充电
- 4.7 充电完成通知
- 4.8 线下消费上报
- 4.9 设备故障上报
- 4.10 查询某个端口的充电状态
- 4.11 查询消费数据
- 4.12 远程开关机
- 4.13 ID卡刷卡充电充值
- 4.14 设置充电站充满自停、刷卡退费
- 4.15 设置充电站5档计费功率、比例
- 4.16 读取设备5档计费功率、比例
- 4.17 查询整机充电状态
- 4.18 查询整机充电状态(不定路数)
- 4.19 获取硬件版本号
- 4.20 功能掩码
- 4.21 主板远程升级
- 4.22 设置免费充电模式、音量调节
- 4.23 设置最低浮充功率、浮充时间
- 4.24 设置刷卡充电时间
- 4.25 读取设备刷卡充电时间、充电模式、语音音量、浮充功率、浮充时间
- 4.26 在线卡刷卡消费
- 4.27 时间单位设置
- 4.28 主动获取和更新时间单位以及存储设置(倒计时模块专用)
- 4.29 是否开启断电时间保存(倒计时模块专用)
- 4.30 烟感报警
- 4.31 读取设备所有设置数据
- 4.32 查询整机所有端口状态
- 4.33 设置消费流程、计费方式
- 4.34 获取字符串版本号
- 4.35 重启主板
- 4.36 下发广告页面变更
- 5 系统及网络接口
- 6 心跳和握手流程
版本变更说明
2018-10-11
增加了主板上报功能掩码的功能,今后要实现平台的不同主板管理新主板和服务器务必实现功能掩码的上报和解析的支持
2018-10-08
新版本,老版本协议请见http://wiki.poseidong.cn/doc/index.php/%E6%85%A2%E5%85%85%E8%AE%BE%E5%A4%87%E9%80%9A%E8%AE%AF%E6%96%87%E6%A1%A3-%E7%B3%BB%E7%BB%9F%E6%8E%A5%E5%8F%A3(%E8%80%81%E6%9D%BF%EF%BC%8C2018-6%E4%BB%A5%E5%89%8D),大量的协议变更,使用新协议请以此文档为准
描述
规约
本文档所述的协议是用以东骏科技有限公司物联网服务平台和慢充设备的数据交互。
客服(技术)联系方式
杭州东骏科技有限公司
电话: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 : 1 / 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>
设备参数设置
关联设备命令:0x08、0x0C
变更设备参数设置
发送方 | 服务器 |
说明 | 设置设备的参数 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,DCC |
会话ID | 6byte,服务器生成 |
分隔符 | 1byte,“/” |
参数 | 3byte或5byte(5byte需要在前面加F,即可以是999,也可以是F65000)最大输出功率,若该值为0时,表示不设置这个值(不足3byte在前面补零)
3byte用户每次刷卡消耗的金额,单位:角(不足3byte在前面补零) 3byte第一个币的充电时间(0-999分钟)或者充电电量(0-9.99度)(不足3byte在前面补零) 3byte第二个币的充电时间(0-999分钟)或者充电电量(0-9.99度)(不足3byte在前面补零) 3byte第三个币的充电时间(0-999分钟)或者充电电量(0-9.99度)(不足3byte在前面补零) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 031 DCC 123456 / 100 010 030 070 120 <0x0D> <0x0A>
变更设备参数设置响应
发送方 | 通信模块 |
说明 | 返回服务端设置情况 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,DCC |
会话ID | 6byte,服务器生成 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 1byte 1-成功,0-失败 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RS DCC 123456 001 1 <0x0D> <0x0A>
设备参数查询请求
发送方 | 服务器 |
说明 | 查询设备设置的参数 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,DCN |
会话ID | 6byte,服务器生成 |
分隔符 | 1byte,“/” |
参数 | |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 016 DCN 123456 / <0x0D> <0x0A>
设备参数查询响应
发送方 | 通讯模块 |
说明 | 返回服务端设置情况 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,DCN |
会话ID | 6byte,服务器生成 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 最大输出功率,若该值为0时,表示不设置这个值(#/#分割)
用户每次刷卡消耗的金额,单位:角(#/#分割) 第一次投币时长,单位:分钟(#/#分割) 第二次投币时长,单位:分钟(#/#分割) 第三次投币时长,单位:分钟(#/#分割) 刷卡退费使能,0关闭,1开启(#/#分割) 充满自停使能,0关闭,1开启 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RS DCN 123456 024 100 #/# 10 #/# 30 #/# 70 #/# 120 <0x0D> <0x0A>
设置IC卡、投币器是否可用
关联设备命令:0x09
更改IC卡、投币器是否可用
发送方 | 服务器 |
说明 | 设置投币器和IC卡是否可用 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,DCD |
会话ID | 6byte,服务器生成 |
分隔符 | 1byte,“/” |
参数 | 1byte投币器开关设置:0-表示关闭 1-表示打开
1byte刷卡功能设置:0-表示关闭 1-表示打开 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 018 DCD 123456 / 0 1 <0x0D> <0x0A>
更改IC卡、投币器是否可用响应
发送方 | 通信模块 |
说明 | 返回服务端执行情况 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,DCD |
会话ID | 6byte,服务器生成 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 1byte 1-表示成功 0-表示失败 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RS DCD 123456 001 1 <0x0D> <0x0A>
端口锁定、解锁
关联设备命令:0x0A
设备端口锁定、解锁设置
发送方 | 服务器 |
说明 | 锁定/解锁设备指定端口 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,DCG |
会话ID | 6byte,服务器生成 |
分隔符 | 1byte,“/” |
参数 | 2byte 端口号
1byte 0-锁定指令/1-解锁指令 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 019 DCG 123456 / 01 1 <0x0D> <0x0A>
设备端口锁定、解锁响应
发送方 | 通信模块 |
说明 | 返回服务端操作结果 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,DCG |
会话ID | 6byte,服务器生成 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 1byte 1-表示成功 0-表示失败 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RS DCG 123456 001 1 <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>
充电完成通知
最后更新版本:2.2.7,最后更新日期:2018-3-23
关联设备命令:0x05
设备充电完成上报
发送方 | 通信模块 |
说明 | 设备充电完成后,上报服务端 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RP |
命令 | 3byte,UWC |
会话ID | 6byte,A80005 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 充电端口#/#
充电剩余时间/电量(单位:分钟/度)#/# 停止原因(0-时间用完了,1-用户手动停止(拔插头或是按了停止按钮),2-充满自动停止,3-端口出现问题被迫停止,4-因充电器功率过大,5-刷卡退费结束,6-开始充电未接充电器,7-端口远程停止,8-烟雾报警停止)#/# 卡号:刷卡的卡号,如果不是刷卡订单则卡号为空(可选字段) #/# 退款金额:充电完成需要退款的金额(可选字段) #/# 卡类型:刷卡的卡类型,如果不是刷卡订单则卡类型为空或为零(可选字段) #/# 重传序号(通讯模块生成,该参数是后面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>
线下消费上报
关联设备命令:0x03
设备上报投币数据
发送方 | 通信模块 |
说明 | 设备上报服务端投币数量 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RP |
命令 | 3byte,UTB |
会话ID | 6byte,A80006 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 投币数量(#/#分割)
端口(#/#分割) 重传序号:DLB重传序号,服务端接收到该指令以后必须立刻返回DLB通知设备收到此条数据,否则设备会一直发送直到服务端确认收到。该序号在返回DLB通知的时候需要带回来的序号。注意,为了防止DLB命令设备没有接收到导致设备重发而将同一条订单被识别成两条甚至多条,建议服务器将该功能的重传序号进行比对,即5分钟内如果上报的投币数据的重传序号相同,则认为是同一次投币订单。 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RP UTB A80006 005 1 #/# 1 #/# 56 <0x0D> <0x0A>
删除重传队列
发送方 | 服务器 |
说明 | 服务端收到设备投币订单上报后,回应设备让设备删除重传列表中的该条数据。 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,DLB |
会话ID | 6byte,服务器生成 |
分隔符 | 1byte,“/” |
参数 | 重传序号(通讯模块生成) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 018 DLB 123456 / 56 <0x0D> <0x0A>
设备上报刷卡信息
关联设备命令:0x04
发送方 | 通信模块 |
说明 | 设备上报刷卡订单 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RP |
命令 | 3byte,USK |
会话ID | 6byte,A80007 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 卡号类型(0-默认 1-包月 2-普通)#/#
刷卡金额(单位:角)#/# 卡号(目前为0,卡号上报需硬件对接) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RP USK A80007 010 2 #/# 20 #/# 0 <0x0D> <0x0A>
设备故障上报
关联设备命令:0x0D
发送方 | 通信模块 |
说明 | 设备上报服务端发生故障 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RP |
命令 | 3byte,DCE |
会话ID | 6byte,A80008 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 端口号(0x02表示2号端口。若错误的地方不包括端口号,255代表整机)#/#
故障类型:0x01-端口输出故障,0x02-机器整体充电功率过大,0x03-电源故障,0x04-预留 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RP DCE A80008 010 2 #/# 0 <0x0D> <0x0A>
查询某个端口的充电状态
关联设备命令:0x06
查询端口当前的充电状态
发送方 | 服务器 |
说明 | 查询某个端口的充电状态 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,DCA |
会话ID | 6byte,服务器生成 |
分隔符 | 1byte,“/” |
参数 | 2byte 端口号 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 018 DCA 123456 / 01<0x0D> <0x0A>
查询端口当前的充电状态响应
关联设备命令:0x06
发送方 | 通信模块 |
说明 | 响应某个端口的充电状态 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,DCA |
会话ID | 6byte,服务器生成 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 端口号:当前上报的端口
(#/#) 剩余时间/剩余电量:当前端口的充电剩余时间或者剩余电量 (#/#) 当前端口的瞬时功率:当前端口的瞬时功率,单位W |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RS DCA 123456 015 1 #/# 1234 #/# 1234 <0x0D> <0x0A>
查询消费数据
最后更新版本:2.2.7,最后更新日期:2018-3-23
关联设备命令:0x07
查询消费总额数据
发送方 | 服务器 |
说明 | 查询设备的消费总额 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,DCB |
会话ID | 6byte,服务器生成 |
分隔符 | 1byte,“/” |
参数 | 固定值 0 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 016 DCB 123456 / <0x0D> <0x0A>
查询消费总额数据响应
发送方 | 通信模块 |
说明 | 返回查询到的消费总额数据 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,DCB |
会话ID | 6byte,服务器生成 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 刷卡总金额
(#/#) 投币总金额 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RS DCB 123456 009 100#/#100 <0x0D> <0x0A>
远程开关机
最后更新版本:2.2.7,最后更新日期:2018-3-23
关联设备命令:0x0E
打开或关闭充电站
发送方 | 服务器 |
说明 | 打开或关闭充电站 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,DKB |
会话ID | 6byte,服务器生成 |
分隔符 | 1byte,“/” |
参数 | 开关机模式:1-代表关闭,0-代表开机 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 017 DCB 123456 / 1 <0x0D> <0x0A>
打开或关闭充电站响应
发送方 | 通信模块 |
说明 | 远程开打或关闭充电站的响应 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,DKB |
会话ID | 6byte,服务器生成 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 结果:1-表示成功,0-表示失败或不支持 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RS DKB 123456 001 1 <0x0D> <0x0A>
ID卡刷卡充电充值
关联设备命令:0x11、0x12
数字卡号对应规则:本命令支持的ID卡的卡号都是4个字节。比如硬件卡号的值“0x01 0x02 0x03 0x04”。而卡号在服务端系统中维护时为了方便操作需要转换成一个数字序列,我们规定这个数字序列是一个10位的固定长度的整数,比如“0016909060”,不足10位的在前面补零。该数字卡号的生成规则如下。
硬件卡号如下:
字节一 | 字节二 | 字节三 | 字节四 |
我们定义我们的数字在计算时使用uint32_t(32位无符号整形),卡号 = 字节一 << 24 + 字节二 << 16 + 字节三 << 8 + 字节四(<<代表左移)后的十进制数值,不足10个数字的在前面补零得到。
比如卡的硬件卡号是0x01 0x02 0x03 0x04那么,数字卡号就是 (00000001 00000010 00000011 00000100)2进制 = “0016909060”。
当然如果用户需要打印的卡号具有个性化的定义,用户只需要在制作卡的时候和服务端维护卡号做一个转换,本文档定义的规则要求只是确保服务端和通讯模块之间的通讯使用这种方式(能够对应)即可。
如果还不太明白,可以看下下面用计算器做的演示:上图输入的是原始的硬件卡号(十六进制的01 02 03 04),下图是转换成10进制的数字卡号
刷卡向模块发送卡号和扣费金额
关联设备命令:0x11
发送方 | 通信模块 |
说明 | 刷卡向模块发送卡号和扣费金额 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RP |
命令 | 3byte,COI |
会话ID | 6byte,A80013 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 卡号:ID卡卡号( #/#分割)
刷卡扣费退费金额:1代表0.1元,0代表不扣费(#/#分割) 卡里余额:1代表0.1元(#/#分割) 卡类型:服务端设置的卡的厂家号或型号,ASCII数字(#/#分割) 端口:充电的端口号,ASCII数字(#/#分割) 状态:1byte,1-代表扣款成功,2-代表扣款失败 余额不足,3-代表退费成功(#/#分割) 重传序号:DLB重传序号,服务端接收到该指令以后必须立刻返回DLB通知设备收到此条数据,否则设备会一直发送直到服务端确认收到。该序号在返回DLB通知的时候需要带回来的序号。 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RP COI A80013 035 1234567890#/#10#/#1000#/#1#/#1#/#1#/#56 <0x0D> <0x0A>
删除重传队列
发送方 | 服务器 |
说明 | 服务端收到设备ID卡付款上报后,回应设备让设备删除重传列表中的该条数据。 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,DLB |
会话ID | 6byte,服务器生成 |
分隔符 | 1byte,“/” |
参数 | 重传序号(通讯模块生成) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 018 DLB 123456 / 56 <0x0D> <0x0A>
充值-上报卡信息
关联设备命令:0x12
发送方 | 通信模块 |
说明 | 卡充值步骤一:刷卡向模块发送卡号和扣费金额 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RP |
命令 | 3byte,COP |
会话ID | 6byte,A80014 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 卡号:ID卡卡号
卡里余额:1代表0.1元 卡类型:服务端设置的卡的厂家号或型号,ASCII数字 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RP COP A80014 021 1234567890#/#1000#/#1 <0x0D> <0x0A>
充值-回复充值
关联设备命令:0x12
发送方 | 服务器 |
说明 | 卡充值步骤二:服务器回复充值 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,COQ |
会话ID | 6byte,服务器生成 |
分隔符 | 1byte,“/” |
参数 | 卡号:10byte,ID卡卡号
设置金额:5byte,单位:0.1元(最多65500) 卡类型:5byte,服务端设置的卡的厂家号或型号,ASCII数字 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 021 COQ 123456 / 01000 00001 <0x0D> <0x0A>
充值:设备再回复
关联设备命令:0x16
发送方 | 通信模块 |
说明 | 卡充值步骤三:设备再次应答服务器充值是否成功 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,COQ |
会话ID | 6byte,服务器下发 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 卡号:ID卡卡号(#/#分割)
卡里余额:1代表0.1元(#/#分割) 卡类型:服务端设置的卡的厂家号或型号,ASCII数字(#/#分割) 充值结果:1byte,1-充值成功,0-充值失败(#/#分割) 重传序号:DLB重传序号,服务端接收到该指令以后必须立刻返回DLB通知设备收到此条数据,否则设备会一直发送直到服务端确认收到。该序号在返回DLB通知的时候需要带回来的序号。 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RS COQ 123456 026 1234567890#/#1000#/#1#/#1#/#56 <0x0D> <0x0A>
删除重传队列
发送方 | 服务器 |
说明 | 服务端收到设备ID卡充值再回复上报后,回应设备让设备删除重传列表中的该条数据。 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,DLB |
会话ID | 6byte,服务器生成 |
分隔符 | 1byte,“/” |
参数 | 重传序号(通讯模块生成) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 018 DLB 123456 / 56 <0x0D> <0x0A>
设置充电站充满自停、刷卡退费
关联设备命令:0x13
设置充满退费参数
发送方 | 服务器 |
说明 | 设置充电站充满自停、刷卡退费 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,CHI |
会话ID | 6byte,服务器生成 |
分隔符 | 1byte,“/” |
参数 | 充满自停设置:1byte,0-不自停,1-自停
刷卡退费设置:1byte,0-不退废,1-退费 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 018 CHI 123456 / 1 1 <0x0D> <0x0A>
设置充满退费参数应答
发送方 | 通信模块 |
说明 | 设置充电站充满自停、刷卡退费应答 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,CHI |
会话ID | 6byte,服务器生成 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 固定值:1 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RS CHI 123456 001 1 <0x0D> <0x0A>
设置充电站5档计费功率、比例
关联设备命令:0x14
设置功率比例
发送方 | 服务器 |
说明 | 设置充电站5档计费功率、比例,具体用几档依设备而定 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,CHM |
会话ID | 6byte,服务器生成 |
分隔符 | 1byte,“/” |
参数 | 第一档功率:5byte,ASCII数字 设置第一档的功率范围0-第一档功率,单位:W
第一档比例:3byte,电动车在此功率范围内充电时间对应机器设置时间的百分比,充电时间=设置时间*对应比例% 第二档功率:5byte,ASCII数字 设置第二档的功率范围:第一档功率—第二档功率,单位:W 第二档比例:3byte,电动车在此功率范围内充电时间对应机器设置时间的百分比,充电时间=设置时间*对应比例% 第三档功率:5byte,设置第三档的功率范围:第二档功率—第三档功率,单位:W 第三档比例:3byte,电动车在此功率范围内充电时间对应机器设置时间的百分比,充电时间=设置时间*对应比例% 第四档功率:5byte,设置第四档的功率范围:第三档功率—第四档功率,单位:W(目前预留) 第四档比例:3byte,电动车在此功率范围内充电时间对应机器设置时间的百分比,充电时间=设置时间*对应比例%(目前预留) 第五档功率:5byte,设置第五档的功率范围:第四档功率—第五档功率,单位:W(目前预留) 第五档比例:3byte,电动车在此功率范围内充电时间对应机器设置时间的百分比,充电时间=设置时间*对应比例%(目前预留) 注意:功率第一档不能大于第二档,第二档不能大于第三档,以此类推。 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 055 CHM 123456 / 00100 100 00200 050 00300 030 00400 015 0500 010 <0x0D> <0x0A>
设置功率比例应答
发送方 | 通信模块 |
说明 | 设置充电站5档计费功率、比例应答,主板不支持则不回复 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,CHM |
会话ID | 6byte,服务器生成 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 1-成功,0-失败(与主板要求的不符,比如功率超出了主板的最大功率,功率大小限制与主板要求不符等) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RS CHM 123456 001 1 <0x0D> <0x0A>
读取设备5档计费功率、比例
关联设备命令:0x15
读取功率比例
发送方 | 服务器 |
说明 | 读取充电站5档计费功率、比例,读出来是5档,没用的档位全是 0 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,CHO |
会话ID | 6byte,服务器生成 |
分隔符 | 1byte,“/” |
参数 | 固定值 0 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 017 CHO 123456 / 0 <0x0D> <0x0A>
读取功率比例应答
发送方 | 通信模块 |
说明 | 返回五档功率比例值 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,CHO |
会话ID | 6byte,服务器生成 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 第一档功率:设置第一档的功率范围0-第一档功率,单位:W(#/#分割)
第一档比例:电动车在此功率范围内充电时间对应机器设置时间的百分比,充电时间=设置时间*对应比例%(#/#分割) 第二档功率:设置第二档的功率范围:第一档功率—第二档功率,单位:W(#/#分割) 第二档比例:电动车在此功率范围内充电时间对应机器设置时间的百分比,充电时间=设置时间*对应比例%(#/#分割) 第三档功率:设置第三档的功率范围:第二档功率—第三档功率,单位:W(#/#分割) 第三档比例:电动车在此功率范围内充电时间对应机器设置时间的百分比,充电时间=设置时间*对应比例%(#/#分割) 第四档功率:设置第四档的功率范围:第三档功率—第四档功率,单位:W(#/#分割) 第四档比例:电动车在此功率范围内充电时间对应机器设置时间的百分比,充电时间=设置时间*对应比例%(#/#分割) 第五档功率:设置第五档的功率范围:第四档功率—第五档功率,单位:W(#/#分割) 第五档比例:电动车在此功率范围内充电时间对应机器设置时间的百分比,充电时间=设置时间*对应比例% |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RS CHO 123456 053 100#/#100#/#200#/#50#/#300#/#30#/#400#/#15#/#500#/#10 <0x0D> <0x0A>
开关传感器
发送方 | 服务器 |
说明 | 设备上电联网之后默认不会检查烟雾传感器,需要服务端主动开启,开启之后设备在重启之前会每个30s读取一次烟雾传感器值,发现烟雾超过设定值将会报警,服务器可以通过该命令读取当前烟雾值或者关闭烟雾报警上报。如果你连接了烟雾报警器,关闭烟雾上报并不会关闭烟雾传感器电源,烟雾传感器如果存在声光报警功能,仍然现场会有声光报警,只是报警的同时并不会上报给服务器。 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,DYW |
会话ID | 6byte,服务器生成 |
分隔符 | 1byte,“/” |
参数 | 1-开启,2-读取,3-关闭查询,4-关闭并传感器断电(暂不支持) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 017 DYW 123456 / 1 <0x0D> <0x0A>
响应开关传感器
发送方 | 通信模块 |
说明 | 设备每分钟读取一次烟雾值,如果烟雾浓度超限则上报 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,DYW |
会话ID | 6byte,服务器下发 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 响应数据类型,1-开启,2-读取,3-关闭查询,4-关闭并传感器断电(#/#分割),0-异常
当前设备设定报警阈值(ppm,关闭操作时该值为0,#/#分割) 当前烟雾值(ppm,开启和关闭操作时该值为0,仅读取有效) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RS DYW 123456 012 1#/#1000#/#0 <0x0D> <0x0A>
设备报警阈值
发送方 | 服务器 |
说明 | 服务器改变报警器的报警阈值,以及模块上报报警的阈值,传感器不支持报警或修改存储报警阈值时服务器每次开启报警后都需要修改该值,否则为固定值1500ppm。 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,GYW |
会话ID | 6byte,服务器生成 |
分隔符 | 1byte,“/” |
参数 | 报警阈值(ppm,5byte,不足在前面补0) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 021 GYW 123456 / 01000 <0x0D> <0x0A>
响应报警阈值设置
发送方 | 通信模块 |
说明 | 响应服务器报警阈值设置 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,GYW |
会话ID | 6byte,服务器下发 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 1-成功(#/#分割)
当前的报警阈值 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RS GYW 123456 008 1#/#1000 <0x0D> <0x0A>
查询整机充电状态
关联设备命令:0x24
请求整机状态
发送方 | 服务器 |
说明 | 请求查询整机充电状态 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,CQZ |
会话ID | 6byte,服务器生成 |
分隔符 | 1byte,“/” |
参数 | 固定值 0 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 017 CQZ 123456 / 0 <0x0D> <0x0A>
应答整机状态
发送方 | 通信模块 |
说明 | 应答查询整机充电状态 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RP |
命令 | 3byte,CQS |
会话ID | 6byte,A80016 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 整机电流,0.1A为单位(#/#分割)
箱体温度:表示现在机箱的温度,如果没接传感器,则传回255(#/#分割) 输出回路继电器状态:Bit位表示,0-1023,0(0000000000)表示全部没有充电,1(0000000001)表示第一路充电(#/#分割) 第1路功率:这一路当前充电的瞬时功率,单位为0.1W。如0x0001表示0.1W(#/#分割) 第2路功率:这一路当前充电的瞬时功率,单位为0.1W。如0x0001表示0.1W(#/#分割) 第3路功率:这一路当前充电的瞬时功率,单位为0.1W。如0x0001表示0.1W(#/#分割) 第4路功率:这一路当前充电的瞬时功率,单位为0.1W。如0x0001表示0.1W(#/#分割) 第5路功率:这一路当前充电的瞬时功率,单位为0.1W。如0x0001表示0.1W(#/#分割) 第6路功率:这一路当前充电的瞬时功率,单位为0.1W。如0x0001表示0.1W(#/#分割) 第7路功率:这一路当前充电的瞬时功率,单位为0.1W。如0x0001表示0.1W(#/#分割) 第8路功率:这一路当前充电的瞬时功率,单位为0.1W。如0x0001表示0.1W(#/#分割) 第9路功率:这一路当前充电的瞬时功率,单位为0.1W。如0x0001表示0.1W(#/#分割) 第10路功率:这一路当前充电的瞬时功率,单位为0.1W。如0x0001表示0.1W(#/#分割) 第1路剩余充电时间:表示这一路充电端口的剩余充电时间,无充电为0,0x0001表示1分钟(#/#分割) 第2路剩余充电时间:表示这一路充电端口的剩余充电时间,无充电为0,0x0001表示1分钟(#/#分割) 第3路剩余充电时间:表示这一路充电端口的剩余充电时间,无充电为0,0x0001表示1分钟(#/#分割) 第4路剩余充电时间:表示这一路充电端口的剩余充电时间,无充电为0,0x0001表示1分钟(#/#分割) 第5路剩余充电时间:表示这一路充电端口的剩余充电时间,无充电为0,0x0001表示1分钟(#/#分割) 第6路剩余充电时间:表示这一路充电端口的剩余充电时间,无充电为0,0x0001表示1分钟(#/#分割) 第7路剩余充电时间:表示这一路充电端口的剩余充电时间,无充电为0,0x0001表示1分钟(#/#分割) 第8路剩余充电时间:表示这一路充电端口的剩余充电时间,无充电为0,0x0001表示1分钟(#/#分割) 第9路剩余充电时间:表示这一路充电端口的剩余充电时间,无充电为0,0x0001表示1分钟(#/#分割) 第10路剩余充电时间:表示这一路充电端口的剩余充电时间,无充电为0,0x0001表示1分钟(#/#分割) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RS CQS 123456 113 138 #/# 23 #/# 341 #/# 0 #/# 239 #/# 0 #/# 731 #/# 0 #/# 278 #/# 0 #/# 328 #/# 0 #/# 523 #/# 0 #/# 23 #/# 0 #/# 72 #/# 0 #/# 287 #/# 0 #/# 782 #/# 0 #/# 258 <0x0D> <0x0A>
查询整机充电状态(不定路数)
关联设备命令:0x26
上报整机状态
发送方 | 通信模块 |
说明 | 应答查询整机充电状态 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RP |
命令 | 3byte,CDL |
会话ID | 6byte,A80017 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 整机电流,0.1A为单位(#/#分割)
箱体温度:表示现在机箱的温度,如果没接传感器,则传回255(#/#分割) 整机电压,0.1V为单位(#/#分割) 数据组【 端口号-当前端口状态-当前功率-当前剩余时间(或剩余电量)-当次充电的电量-已充电时间(可能不存在) (每一组数据“/”分割) 】 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RP CDL 123456 042 2000 #/# 23 #/# 2200 #/# 1-1-3000-20 / 2-1-2400-32 <0x0D> <0x0A>
获取硬件版本号
此版本号需要和服务端确认,不同的版本号业务处理方式可能不太一样,注意如果使用了老的通讯模块则不会应答此内容
关联设备命令:0x25
请求硬件版本号
发送方 | 服务器 |
说明 | 请求硬件的版本号 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,AYD |
会话ID | 6byte,服务器生成 |
分隔符 | 1byte,“/” |
参数 | 固定值 0 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 017 AYD 123456 / 0 <0x0D> <0x0A>
响应硬件版本号
发送方 | 通信模块 |
说明 | 响应硬件版本号 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,AYD |
会话ID | 6byte,服务器生成 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 硬件版本号,十六进制字符串 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RS AYD 123456 004 0A 01 <0x0D> <0x0A>
功能掩码
功能掩码是为了解决平台日益增加的慢充主板种类(每种主板之间功能存在差异),使得服务器方便对于不同的主板的差别做出不同的处理,而设计的功能。主板必须实现功能掩码,以免出现不可知的问题,早期没有实现功能掩码上报的主板我们按照默认设置进行处理。
功能掩码是一个32bit的数字,其中每一个位或多个位对应一个存在差别(平台允许存在的差别)的功能硬件的实现方式。
bit位 | 定义 | 默认值 |
31 | 0表示不支持字符串版本号,1辨识支持字符串版本号,功能支持以字符串版本号区分计算 | 0 |
30 | 1表示用户自己主板,0东骏合作主板 | 0 |
29 | 00:计时主板,01:计电量主板,10:支持计时也支持计电量主板,使用哪种计费方式由命令决定,11:查询计费主板,服务端通过接口获取主板运行时间或电量并直接确定开启还是关闭,模块定时查询服务端计算的主板运行状态 | 0 |
28 | 0 | |
27 | 0表示不支持动态二维码下发,1表示支持动态二维码下发 | 0 |
26 | 000:主板功率等级<=500W,001:主板功率等级500W-1000W(包含),010:主板功率等级1000W-2000W(包含),011:主板功率等级2000W-10KW,100:主板功率等级10kW-50kW,101:主板功率等级50kW-150kW,110:主板功率等级150kW-500kW,111:主板功率等级>500kW(建议2000W以上的主板功率计量为0.1kW) | 0 |
25 | 0 | |
24 | 0 | |
23 | 0、支持功率电流获取,1、不支持功率电流获取(如果不支持功率电流获取22、21、20设置无效) | 0 |
22 | 00、电量计费数值精度0.01千瓦时,01、电量计费数值精度0.1千瓦时,10、电量计费数值为1千瓦时,11、电量计费数值为瓦时 | 0 |
21 | 0 | |
20 | 0、功率计量单位0.1W,1、功率计量单位0.1kW | 0 |
19 | 0、刷卡数值“角”为单位,1、刷卡数值“元”为单位 | 0 |
18 | 0、计时以“分”为单位,1、计时以“秒”为单位 | 0 |
17 | 00:交流桩,01:低压直流桩,10:高压直流桩,11:交直流桩 | 0 |
16 | 0 | |
15 | 0、不支持整机开启关闭,1、支持整机开启关闭 | 0 |
14 | 0、支持投币器远程开关,1、不支持投币器远程开关 | 0 |
13 | 0、支持刷卡器远程开关,1、不支持刷卡器远程开关 | 0 |
12 | 0、不支持退币器,1、支持退币器 | 0 |
11 | 0、支持端口锁定功能,1、不支持端口锁定功能 | 0 |
10 | 0、支持分档计费功能,1、不支持分档计费功能 | 0 |
9 | 0、不支持烟感报警器,1、支持烟感报警器 | 0 |
8 | 00:不支持远程升级,01:支持远程升级方法一(Xmodeom-1k),10:支持远程升级方法二(暂时不支持) | 0 |
7 | 0 | |
6 | 0、支持剩余时间获取,1、不支持剩余时间获取(不支持剩余时间获取,上报的所有命令中剩余时间的值均无效) | 0 |
5 | 0、DCA命令可用,1、DCA命令不可用(不可用服务端应不查询DCA,同时界面上有关DCA的数据将无效) | 0 |
4 | 0表示5档电量计费比例按照10%计算,1表示5当电量计费比例按1%计算 | 0 |
3 | 0表示不支持音量调节,1表示支持音量调节 | 0 |
2 | 获取整机信息命令:000、不支持整机信息获取,001:支持固定10路电流获取(电川专用),010:24路电流数据获取,011:汽车单多路充电桩信息获取(包括电力部分信息,5路以内) | 0 |
1 | 0 | |
0 | 0 |
扩展掩码1,如果主板不支持任何扩展掩码的功能,则掩码只需要普通掩码,如果需要支持扩展掩码的功能,则上报掩码为普通掩码+扩展掩码1,一共40位,服务端会根据掩码计算业务类型
bit位 | 定义 | 默认值 |
7 | 0表示不支持时间单位设置,1表示支持时间单位设置,当此掩码为1,普通掩码18位设置无效,而是时间单位以设置值为准 | 0 |
6 | 0表示不支持断电存储功能设置,1表示支持断电存储功能设置 | 0 |
5 | 0表示浮充功率以0.1W为单位,1表示浮充功率以W为单位 | 0 |
4 | 0表示浮充时间以秒为单位,1表示浮充时间以分钟为单位 | 0 |
3 | 预留 | 0 |
2 | 预留 | 0 |
1 | 预留 | 0 |
0 | 预留 | 0 |
请求功能掩码
发送方 | 服务器 |
说明 | 请求功能掩码 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,GYM |
会话ID | 6byte,服务器下发 |
分隔符 | 1byte,“/” |
参数 | |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 016 GYM 123456 / 0x0D 0x0A
上报功能掩码
发送方 | 通信模块 |
说明 | 设备主动上报功能掩码或响应服务器请求的掩码 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RP |
命令 | 3byte,GYM |
会话ID | 6byte,A80015 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 0X00000000(以十六进制字符串的形式表示功能掩码的值) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RP GYM A80015 010 0X00000000 0x0D 0x0A
主板远程升级
下发远程升级指令
发送方 | 服务器 |
说明 | 下发远程升级指令 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,AYC |
会话ID | 6byte,服务器下发 |
分隔符 | 1byte,“/” |
参数 | 远程升级的HTTP地址(50byte以内,只能包含ASCII字符) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 016 GYC 123456 / http://www.poseidong.org/update/473892745327548327 0x0D 0x0A
接收到远程升级指令
发送方 | 通信模块 |
说明 | 接收到服务器下发的远程升级的回应 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,AYC |
会话ID | 6byte,服务端下发 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | S-成功,F-失败 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RS GYC 123456 001 0 0x0D 0x0A
接收到远程升级指令
发送方 | 通信模块 |
说明 | 接收到服务器下发的远程升级的回应 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RP |
命令 | 3byte,ASJ |
会话ID | 6byte,A00004 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 1 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RP ASJ 123456 001 1 0x0D 0x0A
设置免费充电模式、音量调节
下发免费充电模式、音量调节
发送方 | 服务器 |
说明 | 下发免费充电模式、音量调节码 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,GKY |
会话ID | 6byte,服务器下发 |
分隔符 | 1byte,“/” |
参数 | 免费充电模式(1byte)
音量等级(1byte) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
免费充电模式:0-免费模式关闭;1-免费充电模式打开
喇叭音量:喇叭音量调整 范围值1-8
示例:
_ 019 GKY 123456 / 0 8 0x0D 0x0A
免费充电模式、音量调节
发送方 | 通信模块 |
说明 | 接收到服务器下发的远程升级的回应 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,GKY |
会话ID | 6byte,服务端下发 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | S-成功,F-失败 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RS GKY 123456 001 S 0x0D 0x0A
设置最低浮充功率、浮充时间
下发最低浮充功率、浮充时间
发送方 | 服务器 |
说明 | 下发最低浮充功率、浮充时间 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,GKA |
会话ID | 6byte,服务器下发 |
分隔符 | 1byte,“/” |
参数 | 浮充功率(5byte)
浮充时间(5byte) 充电器移除时间(5byte) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
浮充功率:最低的浮充功率,单位依据功能掩码,没有功能掩码则0x0001=0.1W
浮充时间:到达最低浮充功率进行检测的时间:120秒-999秒, 0x0001=1秒
充电器移除时间:检测充电器未连接到关闭端口输出的时间:5秒-999秒 0x0001=1秒
示例:
_ 027 GKA 123456 / 2 #/# 8 #/# 120 0x0D 0x0A
响应最低浮充功率、浮充时间
发送方 | 通信模块 |
说明 | 接收到服务器下发的远程升级的回应 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,GKA |
会话ID | 6byte,服务端下发 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | S-成功,F-失败 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RS GKA 123456 001 S 0x0D 0x0A
设置刷卡充电时间
下发刷卡充电时间
发送方 | 服务器 |
说明 | 下发刷卡充电时间 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,GKB |
会话ID | 6byte,服务器下发 |
分隔符 | 1byte,“/” |
参数 | 第一次刷卡的充电时间/电量(5byte)
第二次刷卡的充电时间/电量(5byte) 第二次刷卡的充电时间/电量(5byte) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
第一次刷卡的充电时间/电量:第一次刷卡的充电时间或电量设置,单位按照功能掩码中充电时间和电量的单位,不存在功能掩码则时间为分钟,电量为0.01度
第二次刷卡的充电时间/电量:第二次刷卡的充电时间或电量设置,单位按照功能掩码中充电时间和电量的单位,不存在功能掩码则时间为分钟,电量为0.01度
第三次刷卡的充电时间/电量:第三次及以上刷卡的充电时间或电量设置,单位按照功能掩码中充电时间和电量的单位,不存在功能掩码则时间为分钟,电量为0.01度
示例:
_ 028 GKB 123456 / 00020 00040 00080 0x0D 0x0A
响应刷卡充电时间
发送方 | 通信模块 |
说明 | 接收到服务器下发的远程升级的回应 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,GKB |
会话ID | 6byte,服务端下发 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | S-成功,F-失败 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RS GKB 123456 001 S 0x0D 0x0A
读取设备刷卡充电时间、充电模式、语音音量、浮充功率、浮充时间
下发读取读取设备刷卡充电时间、充电模式、语音音量、浮充功率、浮充时间请求
发送方 | 服务器 |
说明 | 下发读取读取设备刷卡充电时间、充电模式、语音音量、浮充功率、浮充时间请求 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,GKC |
会话ID | 6byte,服务器下发 |
分隔符 | 1byte,“/” |
参数 | 固定值0 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 017 GKB 123456 / 0 0x0D 0x0A
响应读取读取设备刷卡充电时间、充电模式、语音音量、浮充功率、浮充时间请求
发送方 | 通信模块 |
说明 | 接收到服务器下发的远程升级的回应 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,GKC |
会话ID | 6byte,服务端下发 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 第一次刷卡的时间/电量(#/#分割)
第二次刷卡的时间/电量(#/#分割) 第三次刷卡的时间/电量(#/#分割) 免费充电模式(#/#分割) 语音音量(#/#分割) 浮充功率(#/#分割) 浮充时间 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RS GKC 123456 028 20 #/# 40 #/# 80 #/# 0 #/# 8 #/# 2 #/# 8 0x0D 0x0A
在线卡刷卡消费
刷卡上报卡号金额信息
发送方 | 通信模块 |
说明 | 在线卡刷卡步骤1,用户刷卡,主板上报卡信息给服务端 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RP |
命令 | 3byte,SKA |
会话ID | 6byte,A80018 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 卡号(#/#分割)
刷卡金额(#/#分割) 卡类型(#/#分割) 预留 预留字段使用说明: 当功能掩码为使用久恒主板设置时(掩码38bit为1) -> "FE"表示扣费,"FF"表示退费,"EE"表示查余额(此时金额字段为0) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RP SKA A80018 028 5827364923 #/# 10 #/# 43571 #/# 0 0x0D 0x0A
下发服务端卡信息
发送方 | 服务器 |
说明 | 服务器下发在线卡鉴权结果 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,SKB |
会话ID | 6byte,服务器下发 |
分隔符 | 1byte,“/” |
参数 | 卡号:10byte
卡余额:5byte 卡类型:5byte 状态:1byte,1-刷卡成功,2-刷卡失败 余额不足,3-此卡为无效卡,4-此卡已挂失,5-退费成功, 6-查询余额 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 037 SKB 123456 / 5827364923 00100 43571 1 0x0D 0x0A
上报刷卡结果
发送方 | 通信模块 |
说明 | 上报刷卡结果 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,SKB |
会话ID | 6byte,服务器生成 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | S-成功,F-失败 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RS SKB 123456 001 S <0x0D> <0x0A>
注意:
之后,用户按键启动充电,设备会上报0x11指令,COI上报的卡类型如果是在线卡,卡号用于生成的订单和刷卡信息对应
时间单位设置
下发时间单位设置
发送方 | 服务器 |
说明 | 下发时间单位设置 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,SKG |
会话ID | 6byte,服务器下发 |
分隔符 | 1byte,“/” |
参数 | 1-分钟,2-秒 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 017 SKG 123456 / 1 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,“_” |
响应类型 | 2byte,RP |
命令 | 3byte,MFZ |
会话ID | 6byte,A80024 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 固定值0 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
下发时间单位存储设置设置
发送方 | 服务器 |
说明 | 下发主动请求的时间单位存储设置设置 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,MFB |
会话ID | 6byte,服务器下发 |
分隔符 | 1byte,“/” |
参数 | 时间单位设置(1-分钟,2-秒)
存储设置(1-保存,2-不保存) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
响应下发的主动请求的时间单位存储设置
发送方 | 通信模块 |
说明 | 响应下发的主动请求的时间单位存储设置 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,MFB |
会话ID | 6byte,服务器生成 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 执行结果(1-成功并停止之前的订单状态,2-成功维持之前的订单状态,3-失败) |
结束标志 | 2byte,\r\n(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,“_” |
响应类型 | 2byte,RP |
命令 | 3byte,NYG |
会话ID | 6byte,A80023 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 报警内容:1 - 主烟感报警(#/#分割)
重传序号 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RP NYG A80023 005 0 #/# 1<0x0D> <0x0A>
查询烟感温度
发送方 | 服务器 |
说明 | 服务器请求设备烟感温度 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,SYG |
会话ID | 6byte,服务器下发 |
分隔符 | 1byte,“/” |
参数 | 0 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 017 SYG 123456 / 0 0x0D 0x0A
查询烟感温度响应
发送方 | 通信模块 |
说明 | 查询烟感温度响应 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,SYG |
会话ID | 6byte,服务器生成 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 温度 #/#分割
烟雾报警状态(0-无报警,1-报警)#/#分割 设备电压 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ RS SYG 123456 001 25 #/# 0 #/# 220 <0x0D> <0x0A>
读取设备所有设置数据
服务端请求设备的所有设置数据
发送方 | 服务器 |
说明 | 读取设备的所有设置数据 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,DSJ |
会话ID | 6byte,服务器下发 |
分隔符 | 1byte,“/” |
参数 | 0 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
示例:
_ 017 DSJ 123456 / 0 0x0D 0x0A
设备响应所有的设置数据
发送方 | 通信模块 |
说明 | 响应服务端所有的配置数据 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,DSJ |
会话ID | 6byte,服务器生成 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 第一个币的时间/电量(#/#分割)
第二个币的时间/电量(#/#分割) 第三个币的时间/电量(#/#分割) 第一次刷卡的时间/电量(#/#分割) 第二次刷卡的时间/电量(#/#分割) 第三次刷卡的时间/电量(#/#分割) 刷卡扣费金额(#/#分割) 刷卡退费使能(0-关闭,1-开启,#/#分割) 设置第一档功率范围(0-第一档功率,#/#分割) 设置第一档功率的时间比例(#/#分割) 设置第二档功率范围(第一档功率-第二档功率,#/#分割) 设置第二档功率的时间比例(#/#分割) 设置第三档功率范围(第二档功率-第三档功率,#/#分割) 设置第三档功率的时间比例(废弃,#/#分割) 充满自停使能(0-关闭,1-开启,#/#分割) 浮充功率(最低的浮充功率,低于这个值关闭输出,范围0-99.9,0x0001=0.1W,#/#分割) 浮充时间(到达最低浮充功率进行检测的时间:120秒-999秒 0x0001=1秒,#/#分割) 充电器移除时间(检测充电器未连接到关闭端口输出的时间:5秒-999秒 0x0001=1秒,#/#分割) 免费充电使能(0-关闭,1-开启,#/#分割) 音量(1-8,#/#分割) 消费流程(0-先消费后按键,1-先按键后消费,#/#分割) 计费方式(0-按功率分档计费,1-按电量计费) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
查询整机所有端口状态
服务端主动查询整机的所有端口状态,注意该指令数据较长,不应该大量频繁获取以免影响业务处理,该字段包含电量,电量统计可直接从该命令获取,PCB- DC_Crg_10L_C4.0及以上版本支持
服务端请求整机所有端口状态
发送方 | 服务器 |
说明 | 查询整机所有端口状态 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,CQB |
会话ID | 6byte,服务器下发 |
分隔符 | 1byte,“/” |
参数 | 0 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
响应查询整机所有端口状态(响应方式A)
发送方 | 通信模块 |
说明 | 响应服务端所有的配置数据 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,CQB |
会话ID | 6byte,服务器生成 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 响应类型,固定值A(#/#分割)
第一路端口状态(0x00:端口状态中,0x01:端口无输出,0x02:端口粘连,#/#分割) 第二路端口状态(0x00:端口状态中,0x01:端口无输出,0x02:端口粘连,#/#分割) 第三路端口状态(0x00:端口状态中,0x01:端口无输出,0x02:端口粘连,#/#分割) 第四路端口状态(0x00:端口状态中,0x01:端口无输出,0x02:端口粘连,#/#分割) 第五路端口状态(0x00:端口状态中,0x01:端口无输出,0x02:端口粘连,#/#分割) 第六路端口状态(0x00:端口状态中,0x01:端口无输出,0x02:端口粘连,#/#分割) 第七路端口状态(0x00:端口状态中,0x01:端口无输出,0x02:端口粘连,#/#分割) 第八路端口状态(0x00:端口状态中,0x01:端口无输出,0x02:端口粘连,#/#分割) 第九路端口状态(0x00:端口状态中,0x01:端口无输出,0x02:端口粘连,#/#分割) 第十路端口状态(0x00:端口状态中,0x01:端口无输出,0x02:端口粘连,#/#分割) 第一路剩余时间(#/#分割) 第二路剩余时间(#/#分割) 第三路剩余时间(#/#分割) 第四路剩余时间(#/#分割) 第五路剩余时间(#/#分割) 第六路剩余时间(#/#分割) 第七路剩余时间(#/#分割) 第八路剩余时间(#/#分割) 第九路剩余时间(#/#分割) 第十路剩余时间(#/#分割) 第一路当前功率(这一路当前充电的瞬时功率,单位为0.1W。如0x0001表示0.1W,#/#分割) 第二路当前功率(这一路当前充电的瞬时功率,单位为0.1W。如0x0001表示0.1W,#/#分割) 第三路当前功率(这一路当前充电的瞬时功率,单位为0.1W。如0x0001表示0.1W,#/#分割) 第四路当前功率(这一路当前充电的瞬时功率,单位为0.1W。如0x0001表示0.1W,#/#分割) 第五路当前功率(这一路当前充电的瞬时功率,单位为0.1W。如0x0001表示0.1W,#/#分割) 第六路当前功率(这一路当前充电的瞬时功率,单位为0.1W。如0x0001表示0.1W,#/#分割) 第七路当前功率(这一路当前充电的瞬时功率,单位为0.1W。如0x0001表示0.1W,#/#分割) 第八路当前功率(这一路当前充电的瞬时功率,单位为0.1W。如0x0001表示0.1W,#/#分割) 第九路当前功率(这一路当前充电的瞬时功率,单位为0.1W。如0x0001表示0.1W,#/#分割) 第十路当前功率(这一路当前充电的瞬时功率,单位为0.1W。如0x0001表示0.1W,#/#分割) 第一路电量(这一路当前用电量,单位为0.01kw·h。如0x0001表示0.01kw·h,#/#分割) 第二路电量(这一路当前用电量,单位为0.01kw·h。如0x0001表示0.01kw·h,#/#分割) 第三路电量(这一路当前用电量,单位为0.01kw·h。如0x0001表示0.01kw·h,#/#分割) 第四路电量(这一路当前用电量,单位为0.01kw·h。如0x0001表示0.01kw·h,#/#分割) 第五路电量(这一路当前用电量,单位为0.01kw·h。如0x0001表示0.01kw·h,#/#分割) 第六路电量(这一路当前用电量,单位为0.01kw·h。如0x0001表示0.01kw·h,#/#分割) 第七路电量(这一路当前用电量,单位为0.01kw·h。如0x0001表示0.01kw·h,#/#分割) 第八路电量(这一路当前用电量,单位为0.01kw·h。如0x0001表示0.01kw·h,#/#分割) 第九路电量(这一路当前用电量,单位为0.01kw·h。如0x0001表示0.01kw·h,#/#分割) 第十路电量(这一路当前用电量,单位为0.01kw·h。如0x0001表示0.01kw·h,#/#分割) 第一路充电电流(这一路当前充电电流,单位为0.1A。如0x01表示0.1A,#/#分割) 第二路充电电流(这一路当前充电电流,单位为0.1A。如0x01表示0.1A,#/#分割) 第三路充电电流(这一路当前充电电流,单位为0.1A。如0x01表示0.1A,#/#分割) 第四路充电电流(这一路当前充电电流,单位为0.1A。如0x01表示0.1A,#/#分割) 第五路充电电流(这一路当前充电电流,单位为0.1A。如0x01表示0.1A,#/#分割) 第六路充电电流(这一路当前充电电流,单位为0.1A。如0x01表示0.1A,#/#分割) 第七路充电电流(这一路当前充电电流,单位为0.1A。如0x01表示0.1A,#/#分割) 第八路充电电流(这一路当前充电电流,单位为0.1A。如0x01表示0.1A,#/#分割) 第九路充电电流(这一路当前充电电流,单位为0.1A。如0x01表示0.1A,#/#分割) 第十路充电电流(这一路当前充电电流,单位为0.1A。如0x01表示0.1A,#/#分割) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
响应查询整机所有端口状态(响应方式B)
发送方 | 通信模块 |
说明 | 响应服务端所有的配置数据 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,DSJ |
会话ID | 6byte,服务器生成 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 响应类型,固定值B(#/#分割)
第一路端口状态(0x00:端口状态中,0x01:端口无输出,0x02:端口粘连,#/#分割) 第二路端口状态(0x00:端口状态中,0x01:端口无输出,0x02:端口粘连,#/#分割) 第三路端口状态(0x00:端口状态中,0x01:端口无输出,0x02:端口粘连,#/#分割) 第四路端口状态(0x00:端口状态中,0x01:端口无输出,0x02:端口粘连,#/#分割) 第五路端口状态(0x00:端口状态中,0x01:端口无输出,0x02:端口粘连,#/#分割) 第六路端口状态(0x00:端口状态中,0x01:端口无输出,0x02:端口粘连,#/#分割) 第七路端口状态(0x00:端口状态中,0x01:端口无输出,0x02:端口粘连,#/#分割) 第八路端口状态(0x00:端口状态中,0x01:端口无输出,0x02:端口粘连,#/#分割) 第九路端口状态(0x00:端口状态中,0x01:端口无输出,0x02:端口粘连,#/#分割) 第十路端口状态(0x00:端口状态中,0x01:端口无输出,0x02:端口粘连,#/#分割) 第一路剩余电量(#/#分割) 第二路剩余电量(#/#分割) 第三路剩余电量(#/#分割) 第四路剩余电量(#/#分割) 第五路剩余电量(#/#分割) 第六路剩余电量(#/#分割) 第七路剩余电量(#/#分割) 第八路剩余电量(#/#分割) 第九路剩余电量(#/#分割) 第十路剩余电量(#/#分割) 第一路当前功率(这一路当前充电的瞬时功率,单位为0.1W。如0x0001表示0.1W,#/#分割) 第二路当前功率(这一路当前充电的瞬时功率,单位为0.1W。如0x0001表示0.1W,#/#分割) 第三路当前功率(这一路当前充电的瞬时功率,单位为0.1W。如0x0001表示0.1W,#/#分割) 第四路当前功率(这一路当前充电的瞬时功率,单位为0.1W。如0x0001表示0.1W,#/#分割) 第五路当前功率(这一路当前充电的瞬时功率,单位为0.1W。如0x0001表示0.1W,#/#分割) 第六路当前功率(这一路当前充电的瞬时功率,单位为0.1W。如0x0001表示0.1W,#/#分割) 第七路当前功率(这一路当前充电的瞬时功率,单位为0.1W。如0x0001表示0.1W,#/#分割) 第八路当前功率(这一路当前充电的瞬时功率,单位为0.1W。如0x0001表示0.1W,#/#分割) 第九路当前功率(这一路当前充电的瞬时功率,单位为0.1W。如0x0001表示0.1W,#/#分割) 第十路当前功率(这一路当前充电的瞬时功率,单位为0.1W。如0x0001表示0.1W,#/#分割) 第一路充电电流(这一路当前充电电流,单位为0.1A。如0x01表示0.1A,#/#分割) 第二路充电电流(这一路当前充电电流,单位为0.1A。如0x01表示0.1A,#/#分割) 第三路充电电流(这一路当前充电电流,单位为0.1A。如0x01表示0.1A,#/#分割) 第四路充电电流(这一路当前充电电流,单位为0.1A。如0x01表示0.1A,#/#分割) 第五路充电电流(这一路当前充电电流,单位为0.1A。如0x01表示0.1A,#/#分割) 第六路充电电流(这一路当前充电电流,单位为0.1A。如0x01表示0.1A,#/#分割) 第七路充电电流(这一路当前充电电流,单位为0.1A。如0x01表示0.1A,#/#分割) 第八路充电电流(这一路当前充电电流,单位为0.1A。如0x01表示0.1A,#/#分割) 第九路充电电流(这一路当前充电电流,单位为0.1A。如0x01表示0.1A,#/#分割) 第十路充电电流(这一路当前充电电流,单位为0.1A。如0x01表示0.1A,#/#分割) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
设置消费流程、计费方式
服务器设置消费流程、计费方式
发送方 | 服务器 |
说明 | 设置消费流程、计费方式 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,CSF |
会话ID | 6byte,服务器下发 |
分隔符 | 1byte,“/” |
参数 | 消费流程(0-先消费后按键,1-先按键后消费)
计费方式(0-按功率分档计费,1-按电量计费) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
响应设置消费流程、计费方式
发送方 | 通信模块 |
说明 | 响应服务端所有的配置数据 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,CSF |
会话ID | 6byte,服务器生成 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | S-成功,F-失败 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
获取字符串版本号
PCB- DC_Crg_10L_C4.0及以上版本
发送方 | 服务器 |
说明 | 获取字符串版本号 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,CBJ |
会话ID | 6byte,服务器下发 |
分隔符 | 1byte,“/” |
参数 | 0 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
响应字符串版本号
发送方 | 通信模块 |
说明 | 响应字符串版本号 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,CBJ |
会话ID | 6byte,服务器生成 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 字符串版本号 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
重启主板
服务端请求重启主板
发送方 | 服务器 |
说明 | 重启主板 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,KCQ |
会话ID | 6byte,服务器下发 |
分隔符 | 1byte,“/” |
参数 | 0 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
响应重启主板
发送方 | 通信模块 |
说明 | 响应重启主板 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,KCQ |
会话ID | 6byte,服务器生成 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 1-重启成功,0-重启失败 |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
下发广告页面变更
服务端下发广告页面变更
发送方 | 服务器 |
说明 | 下发广告压面变更 |
开始标志 | 1byte,“_” |
报文长度 | 3byte,表示整个报文的总长度,ASCII数字表示 |
命令 | 3byte,BGG |
会话ID | 6byte,服务器下发 |
分隔符 | 1byte,“/” |
参数 | 页面编号(0-255, #/#分割)
参数一(0-255,#/#分割) 参数二(0-255,#/#分割) |
结束标志 | 2byte,\r\n(0x0D 0x0A) |
响应广告页面变更
发送方 | 通信模块 |
说明 | 响应主板的广告页面变更 |
开始标志 | 1byte,“_” |
响应类型 | 2byte,RS |
命令 | 3byte,BGG |
会话ID | 6byte,服务器生成 |
内容长度 | 3byte,表示内容长度,ASCII数字表示 |
内容 | 变更结果(1-变更成功,2-变更失败,3-无此页面,4-参数不支持) |
结束标志 | 2byte,\r\n(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秒钟之内回复心跳,建立连接以后模块会每个一定的时间发送心跳给服务器用来保持长连接和通讯确认。
打
印
新
页
打
印
新
页
打
印
新
页
打
印
新
页
打
印
新
页