电单车TCP通讯协议对接phpworkerman

devtools/2024/9/24 20:22:01/

出厂参数:
心跳30秒(固定)上报一次
充电功率5分钟上报一次
单路最高功率1000w
启动充电自检时间10秒,自检功率小于10w(固定)
插头掉落时间10秒,插头掉落功率小于10w(固定)
充满自停功率30w浮充60分钟上报充满
刷卡禁用时间、刷卡网络超时时间均为自检时间
离线持续1800秒(固定)断开所有继电器
备注:
信号1~31
刷卡流程:

一.协议基本格式
发送方:
长度(Byte) 名称 描述
1 包头低位 0x55
1 包头高位 0xaa
1 长度低位 长度包含包头信息
1 长度高位
1 命令字 命令标识
n 命令内容 命令的长 度由具体的通讯命令而定
1 CRC 从包头到命令内容(包含命令内容)的所有数据的累加和取低字节
回复方:
长度(Byte) 名称 描述
1 包头低位 0x55
1 包头高位 0xaa
1 长度低位 长度包含包头信息
1 长度高位
1 回复命令标识 0x66
1 命令字
n 命令内容 命令的长 度由具体的通讯命令而定
1 CRC 从包头到命令内容(包含命令内容)的所有数据的累加和取低字节
0x06 主板程序远程升级
a. 命令字
0x06
b. 命令内容
1.发送方-(服务器)
长度(Byte) 内容 描述
11 终端设备ID 详见前言
1 软件程序版本号 如0x01表示V1.0(以升级包内版本号为主)
2 升级包总数 BIN(低位在前)
2 当前升级包数 从1开始(低位在前)
4 当前升级包的CRC校验 HEX(低位在前)
512 当前包的数据 HEX
2.回复方-(中继器)
长度(Byte) 内容 描述
1 命令字 回复的命令字 0x06
1 命令返回码 0,成功,非零代表通讯错误
11 终端设备ID 详见前言
1 软件程序版本号 如0x01表示V1.0(以升级包内版本号为主)
2 升级包总数 BIN(低位在前)
2 当前升级包数 从1开始
0x07 主板程序远程升级结果
a. 命令字
0x07
b. 命令内容
1.发送方-(中继器)
长度(Byte) 内容 描述
11 终端设备ID 详见前言
1 软件程序版本号 如0x01表示V1.0(以升级包内版本号为主)
1 升级结果 0成功1失败
2.回复方-(服务器)
长度(Byte) 内容 描述
1 命令字 回复的命令字 0x07
1 命令返回码 0,成功,非零代表通讯错误
1 软件程序版本号 如0x01表示V1.0(以升级包内版本号为主)
0x10 桩登录
a.命令字
0x10
b.命令内容
1.命令发送-中继器
长度(Byte) 内容 描述
11 终端设备ID 详见前言
1 中继器硬件版本 如0x01表示V1.0
1 中继器程序版本 如0x01表示V1.0
2.命令回复-服务器
长度(Byte) 内容 描述
1 命令字 回复的命令字 0x10
1 命令返回代码 命令返回代码,非零即被服务器断开连接
4 设备保持在线时间 0立即断线
0XFFFFFFFF永远在线,
其他服务器要求DTU在线时间,
0x15 桩心跳包
a. 命令字
0x15
b.命令内容
1.发送方-中继器
长度(Byte) 内容 描述
11 终端设备ID ASCII码
1 桩信号强度 BIN码
2.回复方-服务器
长度(Byte) 内容 描述
1 命令字 回复的命令字 0x15
1 命令返回码 0,成功,非零代表通讯错误
1 下次心跳包发送时间间隔 以秒为单位,超时周期为3,3次收不到,重新登录(废弃)
0x16 读取sim卡
a.命令字
0x16
b.命令内容
1.发送方-服务器
长度(Byte) 内容 描述
0 空
2.回复方-中继器
长度(Byte) 内容 描述
1 命令字 回复的命令字 0x16
1 命令返回码 0,成功,非零代表通讯错误
11 终端设备ID 详见前言
32 中继器状态信息:
集成电路卡识别码即SIM卡卡号ICCID 字符串,不足末尾补零
32 中继器状态信息:
国际移动设备识别码IMEI 字符串,不足末尾补零
1 备用 备用,为了兼容原来老协议
4 当月话费 以分为单位,
0xffff ffff代表未知 (未实现)
4 话费余额 以分为单位,
0xffff ffff代表未知 (未实现)
4 当月流量总量 字节 (未实现)
4 当月已使用流量 字节 (未实现)
2 当月总通话时间 分钟 (未实现)
2 当月已通话时间 分钟 (未实现)
2 当月总短信条数 (未实现)
2 当月已发送短信条数 (未实现)
3.命令返回码
代码 描述
0 命令正确
1 设备不合法
2 服务器不合法
3 协议不支持
4 设备应答超时
5 服务器应答超时
0xff 接收端不支持的命令
0x22 查询某个终端设备回路状态命令
a.命令字
0x22
b.命令内容

  1. 发送方-(服务器)
    长度(Byte) 内容 描述
    11 终端设备ID 详见前言
    2.回复方-(中继器)
    长度(Byte) 内容 描述
    1 命令字 回复的命令字 0x22
    1 命令返回码 0,成功,非零代表通讯错误
    11 终端设备ID 详见前言
    1 回路 HEX
    1 状态 0x00:粘连故障 0x01:空闲 0x02:充电 0x03:断开故障(如继电器坏了,闭合不了)0x04:设备急停(汽车桩) 0x05:枪车连接未充电 0x06:充电结束未拔枪
    注:急停后,微信刷卡不能充电

    1 回路n HEX
    1 状态 0x00:粘连故障 0x01:空闲 0x02:充电 0x03:断开故障(如继电器坏了,闭合不了)0x04:设备急停(汽车桩) 0x05:枪车连接未充电 0x06:充电结束未拔枪
    注:急停后,微信刷卡不能充电
    3.命令返回码
    代码 描述
    0 命令成功
    1 协议不支持
    2 设备不合法
    3 服务器不合法
    4 设备应答超时
    5 服务器应答超时
    0xff 接收端不支持的命令
    0x24 查询某个终端设备回路功率命令
    a.命令字
    0x24
    b.命令内容
  2. 发送方-(服务器)
    长度(Byte) 内容 描述
    11 终端设备ID 详见前言
    1 回路 HEX
    2.回复方-(中继器)
    长度(Byte) 内容 描述
    1 命令字 回复的命令字 0x24
    1 命令返回码 0,成功,非零代表通讯错误
    11 终端设备ID 详见前言
    1 回路 HEX
    2 功率 HEX,W(低位在前)
    3.命令返回码
    代码 描述
    0 命令成功
    1 协议不支持
    2 设备不合法
    3 服务器不合法
    4 设备应答超时
    5 服务器应答超时
    0xff 接收端不支持的命令
    0x31 远程下发充电
    a.命令字
    0x31
    b.命令内容
    1.发送方-(服务器)
    长度(Byte) 内容 描述
    11 终端设备ID 详见前言
    5 充电订单号 hex
    1 回路 hex
    2 充电最大时间 Hex 单位:分(低位在前)
    2 本次充电最大电度 Hex 单位:度(保留1位小数)(低位在前)电度传0,是充满自停
    1 强制充电选择 Hex, 0:不强制充电; 1:强制充电;
    强制充电,无论通道是否有功率,直接开启充电
    2.回复方-(中继器)
    长度(Byte) 内容 描述
    1 命令字 回复的命令字 0x31
    1 命令返回码 0,成功,非零代表通讯错误
    11 终端设备ID 详见前言
    5 充电订单号 hex
    1 回路 hex
    1 回路状态 0:开始充电,进入10S检测回路
    1:回路断开故障,充电失败(前台提示)
    2:回路粘连故障 (前台提示)
    3:回路异常(具体异常情况见收到的32命令)
    备注:汽车桩应用场景,无论何种无法满足充电的条件,都回复3;具体异常情况0x32中体现
    3.命令返回码
    代码 描述
    0 命令成功
    1 协议不支持
    2 设备不合法
    3 服务器不合法
    4 设备应答超时
    5 服务器应答超时
    0xff 接收端不支持的命令
    0x32 上报启动充电自检状态
    a.命令字
    0x32
    b.命令内容
    1.发送方-(中继器)
    长度(Byte) 内容 描述
    11 终端设备ID 详见前言
    5 充电订单号 hex
    1 回路 hex
    1 回路状态 Hex
    1:检测功率正常,开始充电
    2:检测功率为0
    3:检测功率超载
    4:断开故障
    5:粘连故障
    6:继电器打开失败
    7:预留
    8:预留
    9:预留
    10:刷卡网络超时
    2 回路功率 HEX 单位:W,低位在前,高位在后
    2.回复方-(服务器)(设备如果没有收到服务器的回复,会一直发送0x32命令)
    长度(Byte) 内容 描述
    1 命令字 回复的命令字 0x32
    1 命令返回码 0,成功,非零代表通讯错误
    11 终端设备ID 详见前言
    5 充电订单号 Hex
    1 回路 hex
    1 订单状态 Hex 1:回路充电成功,订单成功
    2:回路异常或订单号异常,订单结束或订单不存在(设备收到状态2,会结束本订单号的充电)
    3.命令返回码
    代码 描述
    0 命令成功
    1 协议不支持
    2 设备不合法
    3 服务器不合法
    4 设备应答超时
    5 服务器应答超时
    0xff 接收端不支持的命令

0x34 远程断开指定回路的充电
a.命令字
0x34
b.命令内容
1.发送方-(服务器)
长度(Byte) 内容 描述
11 终端设备ID 详见前言
5 充电订单号 hex
1 回路 hex
2.回复方-(中继器)
长度(Byte) 内容 描述
1 命令字 回复的命令字 0x34
1 命令返回码 0,成功,非零代表通讯错误
11 终端设备ID 详见前言
5 充电订单号 hex
1 回路 hex
1 状态 1:结束充电,APP远程停止 2:订单号不一致,断开失败 3:本回路没有在充电 4:继电器粘连,本路故障 5:功率偏低,远程中止充电(平台下发) 6:余额不足,远程中止充电(平台下发)
2 充电过程中的最大功率 Hex 单位:W (低位在前)
2 本次充电所用电量 Hex 单位:0.1kW/h(低位在前)
2 剩余充电时间 Hex 单位:分 (低位在前)
3.命令返回码
代码 描述
0 命令成功
1 协议不支持
2 设备不合法
3 服务器不合法
4 设备应答超时
5 服务器应答超时
0xff 接收端不支持的命令
说明:1,在在线情况下发送以上命令时,回复超时,则一直发本命令,直到收到回复;
2,在离线状态下:后台发送0x34命令时,提示不在线
前台发送0x34命令时,订单挂起,等到再次在线时,发本命令,直到回复
0xD4 (新,测试)远程断开指定回路的充电
a.命令字
0xD4
b.命令内容
1.发送方-(服务器)
长度(Byte) 内容 描述
11 终端设备ID 详见前言
5 充电订单号 hex
1 回路 hex
2.回复方-(中继器)
长度(Byte) 内容 描述
1 命令字 回复的命令字 0x34
1 命令返回码 0,成功,非零代表通讯错误
11 终端设备ID 详见前言
5 充电订单号 hex
1 回路 hex
1 状态 1:订单号正确,断开成功 2:订单号不一致,断开失败 3:本回路没有在充电 4:继电器粘连,本路故障
2 充电过程中的最大功率 Hex 单位:W (低位在前)
2 本次充电所用电量 Hex 单位:0.001kW/h(低位在前)最小分辨率0.001度
2 剩余充电时间 Hex 单位:分 (低位在前)
3.命令返回码
代码 描述
0 命令成功
1 协议不支持
2 设备不合法
3 服务器不合法
4 设备应答超时
5 服务器应答超时
0xff 接收端不支持的命令
说明:1,在在线情况下发送以上命令时,回复超时,则一直发本命令,直到收到回复;
2,在离线状态下:后台发送0x34命令时,提示不在线
前台发送0x34命令时,订单挂起,等到再次在线时,发本命令,直到回复

0x35 桩上传充电结束命令
a. 命令字
0x35
b.命令内容
1.发送方-中继器 314C4D3030303030303031 000D20512E 05 03 BE00 0000 4B00
长度(Byte) 内容 描述
11 终端设备ID 详见前言
5 充电订单号 hex
1 回路 hex
1 停止充电状态 1:充电时间满足设定条件
2:功率超载
3:拔掉充电器
4:充满
5:预留
6:充电电量满足设定条件
7:温度报警
8:烟雾报警
2 充电过程中最大功率 Hex 单位:W (低位在前)
2 本次充电所用电量 Hex 单位:0.1kW/h (低位在前)
2 剩余充电时间 Hex 单位:分钟(低位在前)
1 停止充电满足的条件 1:时间走完,2:可用电度走完
2.回复方-服务器 如果没有收到回复或收到订单结算失败,设备会一直发0X35命令
长度(Byte) 内容 描述
1 命令字 回复的命令字 0x35
1 命令返回码 0,成功,非零代表通讯错误
11 终端设备ID 详见前言
5 充电订单号 hex
1 回路 hex
1 状态 1:订单结算成功,如果本订单早已结算,也回复结算成功 2:订单结算失败,只有继续扣费状态表示结算失败
3.命令返回码
代码 描述
0 成功
1 协议不支持
2 设备不合法
3 服务器不合法
4 设备应答超时
5 服务器应答超时
0xff 接收端不支持的命令
0xD5 (新,测试)桩上传充电结束命令
a. 命令字
0xD5
b.命令内容
1.发送方-中继器 314C4D3030303030303031 000D20512E 05 03 BE00 0000 4B00
长度(Byte) 内容 描述
11 终端设备ID 详见前言
5 充电订单号 hex
1 回路 hex
1 停止充电状态 1:充电时间减为0(但不一定充满)
2:功率超载
3:拔掉充电器
4:充满
5:预留
6:余额不足,主要指电量用完
7:温度报警
8:烟雾报警
2 充电过程中最大功率 Hex 单位:W (低位在前)
2 本次充电所用电量 Hex 单位:0.001kW/h (低位在前)最小分辨率0.001度
2 剩余充电时间 Hex 单位:分钟(低位在前)
1 停止充电满足的条件 1:时间走完,2:可用电度走完
2.回复方-服务器 如果没有收到回复或收到订单结算失败,设备会一直发0X35命令
长度(Byte) 内容 描述
1 命令字 回复的命令字 0x35
1 命令返回码 0,成功,非零代表通讯错误
11 终端设备ID 详见前言
5 充电订单号 hex
1 回路 hex
1 状态 1:订单结算成功,如果本订单早已结算,也回复结算成功 2:订单结算失败,只有继续扣费状态表示结算失败
3.命令返回码
代码 描述
0 成功
1 协议不支持
2 设备不合法
3 服务器不合法
4 设备应答超时
5 服务器应答超时
0xff 接收端不支持的命令

0x36 刷卡充电
a. 命令字
0x36
b.命令内容
1.发送方-中继器(提示请选择充电回路)
长度(Byte) 内容 描述
11 终端设备ID 详见前言
4 卡号 HEX(低位在前)
2.回复方-服务器(设备收到回复后,会提示请选择充电回路,用户选择充电回路后,会发送0x41命令)
长度(Byte) 内容 描述
1 命令字 回复的命令字 0x36
1 命令返回码 0,成功,非零代表通讯错误
11 终端设备ID 详见前言
4 卡号 HEX(低位在前)
3 余额 HEX 单位:分(低位在前)
1 卡类型、是否可充电 前2位表示是否绑定
第3,4位表示是否可充电
后4位表示卡类型
如:收到0x01,则对应二进制为:
00000001
00:绑定 【00:已绑定;01:未绑定】
00:可充电 【00:可充电;01:余额不足】
0001:卡类型【0001:标准卡】
2 充电时间 Hex 单位:分钟(低位在前)
2 本次充电最大电度 Hex 单位:度(保留1位小数)(低位在前)
3.命令返回码
代码 描述
0 成功
1 协议不支持
2 设备不合法
3 服务器不合法
4 设备应答超时
5 服务器应答超时
0xff 接收端不支持的命令

0x38 设置充电参数一
a. 命令字
0x38
b. 命令内容
1.发送方-(服务器)
长度(Byte) 内容 描述
11 终端设备ID 详见前言
2 单路最大功率 Hex 单位:W(低位在前)
1 充满自停功率 Hex 单位:W
1 充满延时时间(浮充) Hex 单位:分钟
1 卡是否加密 1:加密 0:不加密
1 枪是否插入电平判断设定 Hex(0-255) 枪是否插入电平判断设定必须大于枪连接后S2是否闭合的电平判断设定
1 枪连接后S2是否闭合的电平判断设定 Hex(0-255)枪是否插入电平判断设定必须大于枪连接后S2是否闭合的电平判断设定
2.回复方-(中继器)
长度(Byte) 内容 描述
1 命令字 回复的命令字 0x38
1 命令返回码 0,成功,非零代表通讯错误
11 终端设备ID 详见前言
3.命令返回码
代码 描述
0 命令成功
1 协议不支持
2 设备不合法
3 服务器不合法
4 设备应答超时
5 服务器应答超时
6 设置失败
0xff 接收端不支持的命令

0x39 查询充电参数一
a.命令字
0x39
b.命令内容
1.发送方-(服务器)
长度(Byte) 内容 描述
11 终端设备ID 详见前言
2.回复方-(中继器)
长度(Byte) 内容 描述
1 命令字 回复的命令字 0x39
1 命令返回码 0,成功,非零代表通讯错误
11 终端设备ID 详见前言
2 单路最大功率 Hex 单位:W(低位在前)
1 充满自停功率 Hex 单位:W
1 充满延时时间(浮充) Hex 单位:分钟
1 卡是否加密 1:加密 0:不加密
1 枪是否插入电平判断设定 Hex(0-255) 仅支持汽车桩
1 枪连接后S2是否闭合的电平判断设定 Hex(0-255) 仅支持汽车桩
1 设备此刻检测到的电平 Hex(0-255) 仅支持汽车桩
3.命令返回码
代码 描述
0 命令成功
1 协议不支持
2 设备不合法
3 服务器不合法
4 设备应答超时
5 服务器应答超时
0xff 接收端不支持的命令
0x41 刷卡充电选择回路
a. 命令字
0x41
b.命令内容
1.发送方-中继器
长度(Byte) 内容 描述
11 终端设备ID 详见前言
4 卡号 HEX(低位在前)
1 充电回路 HEX
2 充电时间 充电时间,用户后台过一段时间才收到本命令可更新后台(低位在前)
2.回复方-服务器 (若电桩在10S内收不到回复,间隔3秒发送0x41,10S后会发送0x32)
长度(Byte) 内容 描述
1 命令字 回复的命令字 0x41
1 命令返回码 0,成功,非零代表通讯错误
11 终端设备ID 详见前言
5 充电订单号 hex
1 充电回路 hex
1 订单状态 Hex 1:正常 2:异常
3.命令返回码
代码 描述
0 成功
1 协议不支持
2 设备不合法
3 服务器不合法
4 设备应答超时
5 服务器应答超时
0xff 接收端不支持的命令
0x50 查询充电参数二
a.命令字
0x50
b.命令内容
1.发送方-(服务器)
长度(Byte) 内容 描述
11 终端设备ID 详见前言
2.回复方-(安卓)
长度(Byte) 内容 描述
1 命令字 回复的命令字 0x50
1 命令返回码 0,成功,非零代表通讯错误
11 终端设备ID 详见前言
1 无充电器断电延时时间(插头掉落时间) Hex 单位:秒
1 启动充电自检时间(自检时间) Hex 单位:秒
1 充电中上传功率时间间隔 Hex 单位:分
3.命令返回码
代码 描述
0 命令成功
1 协议不支持
2 设备不合法
3 服务器不合法
4 设备应答超时
5 服务器应答超时
0xff 接收端不支持的命令

0x51 设置充电参数二
a.命令字
0x51
b.命令内容
1.发送方-(服务器)
长度(Byte) 内容 描述
11 终端设备ID 详见前言
1 无充电器断电延时时间(插头掉落时间) Hex 单位:秒
1 启动充电自检时间(自检时间) Hex 单位:秒
1 充电中上传功率时间间隔 Hex 单位:分钟
2.回复方-(安卓)
长度(Byte) 内容 描述
1 命令字 回复的命令字 0x51
1 命令返回码 0,成功,非零代表通讯错误
11 终端设备ID 详见前言
3.命令返回码
代码 描述
0 命令成功
1 协议不支持
2 设备不合法
3 服务器不合法
4 设备应答超时
5 服务器应答超时
6 设置失败
0xff 接收端不支持的命令

0x63 设置ip地址端口(本地不保存)
a.命令字
0x63
b.命令内容
1.发送方-(服务器)
长度(Byte) 内容 描述
4 IP地址 Hex 如2f6364c9 表示47.99.100.201
2 端口 Hex 如2A7c表示10876(高位在前)
2.回复方-断网无回复
0x64 设置ip地址端口(本地保存)
a.命令字
0x64
b.命令内容
1.发送方-(服务器)
长度(Byte) 内容 描述
4 IP地址 Hex 如2f6364c9 表示47.99.100.201
2 端口 Hex 如2A7c表示10876(高位在前)
2.回复方-断网无回复
0x72 上报所有回路实时功率(主板定时上传)
a. 命令字
0x72
b.命令内容
1.发送方-中继器
长度(Byte) 内容 描述
11 终端设备ID 详见前言
1 回路
2 功率 Hex 单位:W (低位在前)


http://www.ppmy.cn/devtools/102511.html

相关文章

win10自带dll修复详细步骤解答,多个dll修复方法分享

dll文件在电脑中扮演者至关重要的角色,dll文件支持Windows操作系统和各种应用程序的正常运行。如果DLL文件损坏或丢失会导致软件崩溃和系统错误,所以很多用户会选择给dll文件进行修复,其实Win10系统中有自带的dll修复工具,下面小编…

(十二)Flink Table API

目录 Table API 案例 Table API 连接操作 Table API 是批处理和流处理的统一的关系型 API。Table API 的查询不需要修改代码就可以采用批输入或流输入来运行。Table API 是 SQL 语言的超集,并且是针对 Apache Flink 专门设计的。Table API 集成了 Scala,Java 和 Python 语言…

centos7安装Kafka单节点环境部署三-安装Logstash

1、下载Logstash wget https://artifacts.elastic.co/downloads/logstash/logstash-7.17.7-linux-x86_64.tar.gz 2、解压到/usr/local/ mkdir -p /usr/local/logstash7.17 tar -zxf logstash-7.17.7-linux-x86_64.tar.gz -C /usr/local/logstash7.17/ --strip-components1 #…

Oracle数据库巡检内容详解与运维团队参考

Oracle数据库的运维管理是保证数据库稳定高效运行的关键环节。定期的数据库巡检是确保数据库健康状态的重要手段。本文将基于监控易提供的巡检内容,详细解读每一部分的巡检要点,并为运维团队提供实用的参考建议。 自动巡检1. 检查基本状况 检查Oracle实…

【Leetcode 2006 】 差的绝对值为 K 的数对数目 —— 哈希表

给你一个整数数组 nums 和一个整数 k &#xff0c;请你返回数对 (i, j) 的数目&#xff0c;满足 i < j 且 |nums[i] - nums[j]| k 。 |x| 的值定义为&#xff1a; 如果 x > 0 &#xff0c;那么值为 x 。如果 x < 0 &#xff0c;那么值为 -x 。 示例 1&#xff1a;…

设计模式--适配器模式

适配器模式 适配器模式&#xff08;Adapter Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许一个接口&#xff08;通常是新的或现有的&#xff09;与另一个不兼容的接口一起工作。适配器模式主要用于解决接口不匹配的问题&#xff0c;让原本由于接口不兼容而不能一…

《数据结构(C语言版)第二版》第七章-查找(7.2-7.3.1)

7.2 线性表的查找&#xff08;适用于静态查找表&#xff09; 7.2.1 顺序查找 #include <stdio.h> #include <stdlib.h>#define MAXSIZE 100typedef int KeyType; typedef char InfoType;//数据元素类型定义 typedef struct {KeyType Key;InfoType otherinfo; }El…

MMsegmentation与MMdeploy简单使用

最近涉及到了图像分割的任务&#xff0c;于是拿来写下博客加深下使用。 MMsegmentation与MMdeploy的环境配置暂不做讲解&#xff0c;在官网和其他博客中有很多说明。 MMdeploy主要是把pt转为 onnx_int8的情况。 MMsegmentation环境配置可以参考 : 安装与配置MMSegmentation 目录…