慢充设备通讯文档-硬件接口(老版,2018-6以前)
目录
- 1 描述
- 2 名词定义
- 3 通讯数据格式
- 4 业务接口
- 4.1 读取设备每个端口的状态
- 4.2 用户付款成功,通知主设备(选择端口)
- 4.3 投币上报
- 4.4 刷卡上报(线下充值卡上报方式)
- 4.5 提交充电结束状态
- 4.6 查询端口当前的充电状态 (只有升级板有)
- 4.7 查询消费总额数据
- 4.8 IC卡、投币、最大功率设置
- 4.9 设置IC卡、投币器是否可用
- 4.10 锁定、解锁某一个端口 (只有保险丝板有)
- 4.11 远程停止某个端口的充电
- 4.12 读取设备IC卡、投币、最大功率设置
- 4.13 上传设备故障
- 4.14 关闭或者打开充电站充电
- 4.15 刷卡向模块发送卡号和扣费金额
- 4.16 充值指令:给卡充值+发送卡余额给后台数据同步
- 4.17 设置充电站充满自停、刷卡是否退费
- 4.18 设置充电站3档计费功率、比例
- 4.19 读取设备3档计费功率、比例
描述
杭州东骏科技有限公司的通讯模块主板之间串口通讯的定义。
名词定义
- 模块 指我们提供的通信模块。
- 设备 指调用“模块”的主机设备,一般指充电站、游戏机等自助设备。
通讯数据格式
模块采用UART串口协议与主机进行问答式串行通讯,波特率为9600,8位数据位,1位停止位,无校验位。
命令格式
SOP | LEN | CMD | SESSION_ID | DATA | SUM |
SOP:单字节字头。命令为EE,应答为66 。
LEN:单字节。从CMD到SUM的字节数(含CMD和SUM)
CMD:单字节,命令字节。
SESSION_ID:服务端回话编号,6个字节,用户服务端识别通讯会话。如果服务端发起的会话设备应答服务端需要带上服务端下发的会话ID。如果设备发起会话则会话ID为“000000”
DATA:数据字节,不定长。
SUM:单字节,LEN、CMD、SESSION_ID、DATA的异或值
业务接口
读取设备每个端口的状态
描述:服务器读取设备每个端口当前的状态。
数据方向:设备→模块
命令:0x01
服务器请求命令帧:
查询参数 |
---|
1byte |
查询参数:固定值0x00
设备响应命令帧:
PORT_NUM | PORT1_STATUS | PORT2_STATUS |
---|---|---|
1byte | 1byte | 1byte |
PORT_NUM:端口数量
PORTx_STATUS:端口状态(0x01-端口空闲;0x02-端口正在使用;0x03-端口禁用;0x04-端口故障)
用户付款成功,通知主设备(选择端口)
描述:当用户付款以后,通知主设付款的信息。
数据方向:模块→设备
命令:0x02
服务器请求命令帧:
PORT | 功率档位、电量选择 | TIME/POWER |
---|---|---|
1byte | 2byte | 2byte |
PORT:用户选择的充电端口号,0x02表示2号端口。
功率档位、电量选择:用户支付的选择的功率档位:0x00,表示不选择,充电站自动判断,0x01=时间计费第一档功率0x02=时间计费第二档功率,0x03=时间计费第三档功率,0x11
TIME/POWER:表示发送给机器当前端口要充电时间或者充电电量:1.如果是充电时间则以分钟为单位,如 0x0064表示100分钟。2.如果是充电电量则以0.01度(千瓦时)为单位,如0x0064表示100个单位=1度电量
设备响应命令帧:
PORT | RESULT |
---|---|
1byte | 1byte |
PORT: 用户选择的充电端口号,0x02表示2号端口。
RESULT: 0x01-成功,0x02-充电站故障,0x03-端口已经被使用
注意:当RESULT=0x02或0x03 的时候,系统会执行退款操作。
投币上报
描述:使用投币器方式充电后,设备上报投币相关的信息。
数据方向:设备→模块
命令:0x03
服务器请求命令帧:
投币次数 | 充电端口 |
---|---|
1byte | 1byte |
投币次数:单次充电投币的次数
充电端口:充电的端口
设备响应命令帧:
RESULT |
---|
1byte |
RESULT:0x01-表示服务端接收成功
刷卡上报(线下充值卡上报方式)
描述:使用刷卡方式充电后,设备上报刷卡相关信息。
数据方向:设备→模块
命令:0x04
服务器请求命令帧:
money |
---|
1byte |
money:刷卡金额,最小单位为角
设备响应命令帧:
RESULT |
---|
1byte |
RESULT:0x01表示服务端接收成功
提交充电结束状态
描述:当某个端口的电动车已经充电结束(不管是已经充满自动停止,或是用户手动拔掉电源),调用该接口通知服务器。注意:调用该接口以后,系统会在后台根据用户的充电实际情况(比如本来可以充电100分钟,用户只用了50分钟)做相应的退款(管理员可以设置到底是退款还是不退款)。调用了该接口,该次交易即已经结束,用户再插上线路,肯定是不能再充电的。
数据方向:设备→模块
命令:0x05
服务器请求命令帧:
PORT | TIME/POWER | REASON |
---|---|---|
1byte | 2byte | 1byte |
PORT:充电端口号,0x02表示2号端口。
TIME/POWER:用户剩余的充电时间或者剩余电量:1.如果是充电时间则以分钟为单位,如 0x0064表示100分钟。2.如果是充电电量则以0.01度(千瓦时)为单位,如0x0064表示100个单位=1度电量,以分钟0.01度。当该值为0xFFFF的时候,系统会全额退款,表示该次交易不成功(一般为设备损坏,或是用户无法正常充电)。
REASON:停止的原因:0x00-购买的充电时间、电量用完了,0x01-用户手动停止(拔插头,或是按了停止按钮),
0x02-充电满了,自动停止,0x03-设备或是端口出现问题,被迫停止,0x04-因充电器功率超过充电站的单路最大输出功率,切断输出,0x05-刷卡退费结束
设备响应命令帧:
RESULT |
---|
1byte |
RESULT:0x01表示服务器接收成功
查询端口当前的充电状态 (只有升级板有)
描述:服务器会主动查询当前充电端口的充电状态。
数据方向:模块→设备
命令:0x06
服务器请求命令帧:
PORT |
---|
1byte |
PORT:充电端口号,0x02表示2号端口。
设备响应命令帧:
PORT | TIME\POWE | INSTANT POWER |
---|---|---|
1byte | 2byte | 2byte |
PORT:端口号,0x03表示端口3
TIME\POWE:表示这一路充电端口的剩余充电时间或者充电电量:1.如果是充电时间则以分钟为单位,如 0x0064表示100分钟。2.如果是充电电量则以0.01度(千瓦时)为单位,如0x0064表示100个单位=1度电量,以分钟0.01度,0x00表示不在充电(包括空闲、故障)
INSTANT POWER:这一路当前充电的瞬时功率,单位为W。如0x0001表示1W。若没有该数据,请填写0xFFFF
查询消费总额数据
描述:服务器会去查询投币、刷卡的消费总额数据。
数据方向:模块→设备
命令:0x07
服务器请求命令帧:
参数 |
---|
1byte |
参数:固定值0x00
设备响应命令帧:
CARD_MONEY | COIN_MONEY |
---|---|
2byte | 2byte |
CARD_MONEY:机器消费刷卡总金额(以角为单位),0x0001表示0.1元
COIN_MONEY:机器消费投币总金额(以元为单位),0x0001表示1元
IC卡、投币、最大功率设置
描述:用户在服务的设置IC卡一次刷卡的金额,不同投币金额的充电时长、充电电量,机器输出最大功率值,并发送给设备端。
数据方向:模块→设备
命令:0x08
服务器请求命令帧:
MAX_POWER | IC_MONEY | TIME1/POWER1 | TIME2/POWER2 | TIME3/POWER3 |
---|---|---|---|---|
2byte | 1byte | 2byte | 2byte | 2byte |
MAX_POWER:最大输出功率,以W(瓦)为单位。若该值为0xFFFF,表示不设置这个值
IC_MONEY:用户每次刷IC卡需要消耗的金额,单位为角。如0x01表示0.1元
TIME1/PWOER1:第一个币的充电时间(0-999分钟)或者充电电量(0-9.99度)
TIME2/POWER2:第二个币的充电时间(0-999分钟)或者充电电量(0-9.99度)
TIME3/POWER3:第三个币的充电时间(0-999分钟)或者充电电量(0-9.99度)
设备响应命令帧:
NULL |
---|
1byte |
NULL:固定为0x01,表示成功
设置IC卡、投币器是否可用
描述:在服务端设置IC卡、投币器是否可用。
数据方向:模块→设备
命令:0x09
服务器请求命令帧:
COIN | IC |
---|---|
1byte | 1byte |
COIN :投币器设置,0x00-不可用;0x01-可用。
IC:刷卡器设置,0x00-不可用;0x01-可用。
设备响应命令帧:
NULL |
---|
1byte |
NULL :固定为0x01
锁定、解锁某一个端口 (只有保险丝板有)
描述:当某一个端口外接插座损坏,可以通过后台锁定这个充电端口,不让客户使用。
数据方向:模块→设备
命令:0x0A
服务器请求命令帧:
PORT | STATUS |
---|---|
1byte | 1byte |
PORT :端口号,如0x01
STATUS:表示指令,0x01-解锁(可用),0x00-锁定(不可用)
设备响应命令帧:
null |
---|
1byte |
null:0x01设置成功
远程停止某个端口的充电
描述:服务器可以远程停止某个端口的充电。
数据方向:模块→设备
命令:0x0B
服务器请求命令帧:
PORT |
---|
1byte |
PORT :端口号,如0x01,
设备响应命令帧:
PORT | TIME/POWER |
---|---|
1byte | 2byte |
PORT :充电端口号,0x02表示2号端口。
TIME/POWER :用户剩余的充电时间或者充电电量,单位参考第4
读取设备IC卡、投币、最大功率设置
描述:服务器读取设备的IC卡一次刷卡的金额,不同投币金额的充电时长、充电电量,机器输出最大功率值等设置值。
数据方向:设备→模块
命令:0x0C
服务器请求命令帧:
NULL |
---|
1byte |
查询参数:固定值0x00
设备响应命令帧:
MAX_POWER | IC_MONEY | TIME1/POWER1 | TIME2/POWER2 | TIME3/POWER3 |
---|---|---|---|---|
2byte | 1byte | 2byte | 2byte | 2byte |
MAX_POWER:最大输出功率,以W(瓦)为单位。
IC_MONEY:用户每次刷IC卡需要消耗的金额,单位为角。如0x01表示0.1元
TIME1/POWER1:第一个币的充电时间(0-999分钟)或者充电电量(0-9.99度)
TIME2/POWER2:第二个币的充电时间(0-999分钟)或者充电电量(0-9.99度)
TIME3/POWER3:第三个币的充电时间(0-999分钟)或者充电电量(0-9.99度)
上传设备故障
描述:设备上传机器故障码给服务器。
数据方向:设备→模块
命令:0x0D
服务器请求命令帧:
PORT | ERROR_CODE |
---|---|
1byte | 1byte |
PORT:充电端口号,0x02表示2号端口。若错误的地方不包括端口号,则填写0xFF。0xff代表整机
ERROR_CODE:错误码,0x01-端口输出故障,0x02-机器整体充电功率过大,0x03-电源故障
设备响应命令帧:
NULL |
---|
1byte |
NULL :固定为0x01
关闭或者打开充电站充电
描述:模块向设备发送打开或者关闭充电指令。
数据方向:模块→设备
命令:0x0E
服务器请求命令帧:
null |
---|
1byte |
null :0x01代表关闭充电,0x00代表打开充电
设备响应命令帧:
NULL |
---|
1byte |
NULL :固定为0x01
刷卡向模块发送卡号和扣费金额
描述:设备向模块发送IC卡号和扣费金额。
数据方向:设备→模块
命令:0x11
服务器请求命令帧:
卡号 | 扣费金额 | 卡余额 | 卡类型 | 端口 | 状态 |
---|---|---|---|---|---|
4byte | 1byte | 2byte | 2byte | 1byte | 1byte |
卡号 :如0x01 0x02 0x03 00x04
扣费金额:0x01,表示0.1元 ,0x00表示不扣费
卡里余额:2个字节,高位在前,最小单位0.1元,余额是未扣费或者退费之前的
卡类型:2个字节,高位在前
端口:1个字节,表示充电的端口
状态:0x01 扣款成功,0x02 扣款失败 余额不足,0x03 退费
充值指令:给卡充值+发送卡余额给后台数据同步
描述:设备向模块发送IC卡号、余额、充值指令。
数据方向:设备→模块
命令:0x12
服务器请求命令帧:
卡号 | 卡里余额 | 卡类型 |
---|---|---|
4byte | 2byte | 2byte |
卡号 :如0x01 0x02 0x03 0x04
卡里余额:0x0001,表示0.1元
卡类型:2个字节,高位在前
设备响应命令帧:
卡号 | 充值金额 | 卡类型 |
---|---|---|
4byte | 2byte | 2byte |
卡号 :如0x01 0x02 0x03 0x04
充值金额:2个字节,高位在前,最小单位0.1元,如没有充值,发送0x0000,充值金额不是卡里余额
卡类型:2个字节,高位在前
设备再回复数据:
命令:0x16,此应答需要可靠上报
卡号 | 充值完成余额 | 卡类型 | 充值结果 |
---|---|---|---|
4byte | 2byte | 2byte | 1byte |
卡号:如0x01 0x02 0x03 0x04
充值完成余额:2个字节,高位在前,最小单位0.1元
卡类型:2个字节,高位在前
充值结果:0x01 充值成功 0x02 不成功
设置充电站充满自停、刷卡是否退费
描述:在服务端设置充电站是否充满自停、是否刷卡退费。
数据方向:模块→设备
命令:0x13
服务器请求命令帧:
充满自停 | 刷卡退费 |
---|---|
1byte | 1byte |
充满自停:充满自停设置,0x00-充满不自停;0x01-充满自停。
刷卡退费:0x00-刷卡不退费,0x01-刷卡退费
设备响应命令帧:
NULL |
---|
1byte |
NULL :固定为0x00
设置充电站3档计费功率、比例
描述:服务器设置充电站5档计费的充电电量功率和相应的比例
数据方向:设备→模块
命令:0x14
服务器请求命令帧:
第一档功率 | 对应比例 | 第二档功率 | 对应比例 | 第三档功率 | 对应比例 | 第四档功率 | 对应比例 | 第五档功率 | 对应比例 |
---|---|---|---|---|---|---|---|---|---|
2byte | 1byte | 2byte | 1byte | 2byte | 1byte | 2byte | 1byte | 2byte | 1byte |
第一档功率:设置第一档的功率范围0-第一档功率
对应比例:电动车在此功率范围内充电时间对应机器设置时间的百分比,充电时间=设置时间*对应比例%
第二档功率:设置第二档的功率范围:第一档功率—第二档功率
对应比例:电动车在此功率范围内充电时间对应机器设置时间的百分比,充电时间=设置时间*对应比例%
第三档的功率:设置第三档的功率范围:第二档功率—第三档功率
电动车在此功率范围内充电时间对应机器设置时间的百分比, 充电时间=设置时间*对应比例%
...
设备响应命令帧:
设置结果 |
---|
1byte |
设置结果 :0x01-成功,0x00-失败(与主板要求的不符,比如功率超出了主板的最大功率,功率大小限制与主板要求不符等)
读取设备3档计费功率、比例
描述:服务器读取设备每个端口当前的状态。
数据方向:设备→模块
命令:0x15
服务器请求命令帧:
NULL |
---|
1byte |
NULL:固定值0x00
设备响应命令帧:
第一档功率 | 对应比例 | 第二档功率 | 对应比例 | 第三档功率 | 对应比例 | 第四档功率 | 对应比例 | 第五档功率 | 对应比例 |
---|---|---|---|---|---|---|---|---|---|
1byte | 1byte | 1byte | 1byte | 1byte | 1byte | 1byte | 1byte | 1byte | 1byte |
第一档功率:设置第一档的功率范围0-第一档功率
对应比例:电动车在此功率范围内充电时间对应机器设置时间的百分比,充电时间=设置时间*对应比例%
第二档功率:设置第二档的功率范围:第一档功率—第二档功率
对应比例:电动车在此功率范围内充电时间对应机器设置时间的百分比,充电时间=设置时间*对应比例%
第三档的功率:设置第三档的功率范围:第二档功率—第三档功率
电动车在此功率范围内充电时间对应机器设置时间的百分比, 充电时间=设置时间*对应比例%
...