文章目录
- 一、基础通信协议框架
- 二、命令的定义
- 各数据单位定义:
- 三、设备上传
- 3.0.1、设备心跳包(01 指令)
- 3.0.2、设备注册包(20 指令)
- 3.0.3、设备获取服务器时间(22 指令)
- 3.1、设备心跳包(21 指令)
- 3.2、刷卡操作(02 指令)
- 3.3、结算消费信息上传(03 指令)
- 3.4.1、充电端口订单确认(04 指令)
- 3.4.2、端口充电时功率心跳包(06 指令)
- 3.4.3、分机测试模式专用(09 指令)(服务器无需处理,不会发送给服务器)
- 3.4.4、分机设置主机模块服务器地址(0A 指令)(服务器无需处理,不会发送给服务器)
- 四、服务器下发
- 4.1、查询设备联网状态(81 指令)
- 4.2、服务器开始、停止充电操作(82 指令)
- 4.2.1、服务器修改充电时长/电量(8a 指令)
- 4.3.1、设置运行参数 1.1( 83 指令)
- 4.3.2、设置运行参数 1.2( 84 指令)
- 4.4.1、设置最大充电时长 、最大充电功率(85 指令)
- 4.4.2、设置用户卡参数(86 指令)
- 4.4.3、复位重启设备(87 指令)
- 4.4.4、存储器清零(88 指令)
- 4.4.5、播放语音(89 指令)
- 4.4.6、设置设备的工作模式(8D 指令)
- 4.8.1、设备固件升级(E0 升级分机指令)(E1 升级电源板指令)(E2 主机统一升级)(参考 01 指令中的设备类型表)
- 4.8.2、设备固件升级(F8 指令)
- 4.9.1、服务器查询当前设备参数(90 、91 、92、93、94 指令)
- 4.9.2、服务器读取 EEPROM 的数据(8B 指令)
- 4.9.3、服务器写入 EEPROM 的数据(8C 指令)
- 4.9.4、服务器修改二维码地址(8E 指令)(最新固件才支持)
《一套免费开源充电桩物联网系统,是可以立马拿去商用的!》
一、基础通信协议框架
注 1 、 为了减少包头和数据内容重叠概率,采用 3 字节包头, 为 DNY
注 2 、 长度=物理 ID+消息 ID+命令+数据(n) +校验(2),每包最多 256 字节
注 3 、 为了保证每条命令传输的正确性,采用 2 字节无符号累加和校验,校验从包头到数据的内容
注 4 、 此协议无其它注释情况下,均默认采用“小端模式 ”
注 5 、 无特别注释下,均默认每条命令至多重新发送 1 次,故需加入无应答 、重发机制,应答超时为 15 秒
注 6 、 服务器和设备之间的通信,数据可能会被分包发送,所以服务器端要做粘包分包处理。
注 7 、 服务器发给同一台设备时,每条命令之间必须有 0.5 秒以上的延时
二、命令的定义
注 1 、 为了防止命令重复,加入消息 ID,每条命令的消息 ID 必须不同,但重发的命令的消息 ID 必须相同。
注 2 、 为了防止命令错误,应答时的消息 ID,必须和发送方的消息 ID 保持一致
注 3 、 为了区分各个功能,加入命令,最大支持 255 条命令
注 4 、 设备物理 ID 和设备上的二维码中的一致,无重复,不丢失
各数据单位定义:
1 、 所有金额以“分 ”为单位;
2 、 所有日期以国际通用时间戳为准,例如 1519865912 则表示北京时间 2018/3/1 8:58:32;
3 、 所有时长(相对时间) 以“秒“ 为单位;
4 、 电压以 0.1V 为单位,例如 2212,则表示是 221.2V;
5 、 所有功率以“0.1W“ 为单位,例如数据是 2342, 则表示是 234.2W;
6 、 所有耗电量以“0.01 度“ 为单位,例如数据是 135, 则表示是 1.35 度;
7 、温度以 1 摄氏度为单位,温度数值需要减 65 才是准确数值,(0 是无温度传感器, 65 是 0 度)
三、设备上传
3.0.1、设备心跳包(01 指令)
这是老版本指令, 和 20 、21 相对应 。 上电后发送此指令,如服务器不应答,则 3 次后不再发送。
设备发送:
如:44 4E 59 1D 00 3B 37 AB 04 B9 00 01 7E 00 8C 08 02 00 03 00 00 E4 00 00 00 3B 02 29 07 02 20 00 6D 05
服务器应答:
如:44 4E 59 0A 00 3B 37 AB 04 B9 00 01 00 D0 02
注 1 、 应答=0 成功,其它值错误
注 2 、 固件版本:见 20 指令中的描述
注 3 、 电压:见 21 指令中的描述
注 4 、 端口数量:见 21 指令中的描述
注 5 、 各端口状态:见 21 指令中的描述
注 6 、 各端口峰值功率:开始充电后出现的峰值功率,和“端口数量 ”匹配,如端口数量是 16,则“各端口峰值功率 ”为 32 字节;
注 7 、 各端口当前功率:发送心跳包时当前采集到的功率;2 个字节表示此端口当前输出的功率,和“端口数量 ”匹配,如端口数量是 16,则“各端口当前功率 ”为 32 字节;
注 8 、 虚拟 ID:见 20 指令中的描述
注 9 、 信号强度:见 21 指令中的描述
注 10 、当前环境温度:见 21 指令中的描述
注 11 、工作模式:见 20 指令中的描述
注 12 、设备类型:
注 13 、此为心跳包, 间隔时间默认为 3 分钟,方便服务器管理 SocketIP
注 14 、设备如 2 次收不到服务器应答,则进入离线状态
注 12 、设备类型:
3.0.2、设备注册包(20 指令)
这是新版本指令, 和 01 相对应 。 上电后发送此指令,如服务器不应答,则 3 次后不再发送。
设备发送:
如:44 4E 59 13 00 3B 37 AB 04 B9 00 20 7E 00 02 14 21 00 00 00 E4 00 91 04
服务器应答:
如:44 4E 59 0A 00 3B 37 AB 04 B9 00 20 00 EF 02
注 1 、 此命令在设备每次上电后发送,如果服务器无应答则每隔状态心跳包时间(默认 3 分钟)发送一次,如服务器有应答则不再发送。
注 2 、 如以上信息任何一个字段有变动,设备必须重新执行发送流程
注 3 、 固件版本,如 100 则表示 V1.00 版本
注 4 、 端口数量:表示设备总共有多少个端口
注 5 、 虚拟 ID:需要内部组网的设备的本地地址,如 485 、 LORA 系列,如不需组网的设备,默认为 00
注 6 、 设备类型:见 01 指令中的设备类型表
注 7 、 工作模式:00=联网,01=刷卡,仅适用于 AP262 、AP360 机型
注 8 、 电源板版本号:电源板的固件版本号,如没有电源板的机型则为 0
3.0.3、设备获取服务器时间(22 指令)
设备发送:
如:44 4E 59 09 00 3B 37 AB 04 B9 00 22 F0 02
服务器应答:
如:44 4E 59 0D 00 3B 37 AB 04 B9 00 22 09 0E A9 5F 13 04
注 1 、 此命令设备每次上电后就会发送,直至服务器应答后就停止发送 。如服务器无应答,则每隔 3 分钟发送一次请求。
注 2 、 每 12 小时从服务器获取一次时间,如服务器不应答则每隔 3 分钟发送一次请求。
3.1、设备心跳包(21 指令)
这是新版本指令, 和 01 相对应 。 上电后发送此指令,如服务器不应答,则 3 次后不再发送。
设备发送:
如:44 4E 59 10 00 3B 37 AB 04 01 00 21 98 08 02 00 00 09 05 EE 02
服务器应答:
如:44 4E 59 0A 00 3B 37 AB 04 01 00 21 00 38 02
注 1 、 应答=0 成功,其它值错误
注 2 、 电压:设备的当前电压(心跳包期间的任意一个时间点的电压)
注 3 、 端口数量:表示设备总共有多少个端口,和后面的“端口状态 ”配套
注 4 、 各端口状态:一个字节表示一个端口,和“端口数量 ”匹配,如端口数量是 16,则“各端口状态 ”为 16 字节; 每个字节表示的意思,0=空闲,1=充电中,2=有充电器但未充电(用户未启动充电), 3=有充电器但未充电(已充满电), 4=该路无法计量,5=浮充,6=存储器损坏,7=插座弹片卡住故障,8=接触不良或保险丝烧断故障,9=短路,0x0A=霍尔开关损坏( 即插入检测传感器)。0x0B=( 预检-继电器坏或保险丝断), 0x0C=(预检-继电器粘连), 0x0D=(预检-负载短路)。
注 5 、 信号强度:仅适合能获取信号强度的机型 。00 则为有线组网或无信号强度功能。
注 6 、 当前环境温度:表示当前设备内的温度,可能和真正的当前环境温度有一定的误差,如 00 则表示无此功能
注 7 、 此为心跳包, 间隔时间默认为 3 分钟,方便服务器管理 SocketIP
注 8 、 设备如 2 次收不到服务器应答,则进入离线状态
3.2、刷卡操作(02 指令)
设备发送:
如:44 4E 59 11 00 3B 37 AB 04 01 00 02 7A 8D 05 DD 00 01 00 00 0A 04
服务器应答:
如:44 4E 59 14 00 3B 37 AB 04 01 00 02 7A 8D 05 DD 00 00 10 27 00 00 01 44 04
注 1 、 新/旧卡: =0(旧卡), =1(新卡),通知服务器此卡为全新卡片 。设备先使用用户卡密码读卡,如果读取成功,则为旧卡;失败则尝试使用新卡密码读取,如果读取成功,则为新卡;如果都错误,则无任何反应;=2(余额卡), 说明此卡为刷卡设备使用的余额卡,此功能为把原来的刷卡设备转为联网设备使用
注 2 、 余额/有效期:分为 2 种,其一金额,其二时间戳 。卡片“余额/有效期“ 的具体使用情况,需看设备处于哪种费率模式(计时计量计次为余额,包月为有效期)
注 3 、 账户状态:=00 正常(无语音), =01 未注册(语音“未注册卡”),=02 请绑卡(语音“请再次刷卡”),=03 请解卡(语音“请再次刷卡”), =04 包月用户重复刷卡(语音“请勿重复充电”),=05 包月用户已超限制次数(语音“超出限额次数”),=06 余额不足(语音“余额不足”), =07 包月用户已过有效期(语音“ 已过有效期”) , =08 端口故障(语音“端口故障”), =09 清除余额卡内金额且把联网卡扇区密码改为用 户卡(语音“请再次刷卡”), =0A 包月用户已超限制时长(语音“超出限额时长”) ,=0B 请勿跨公众号(语音“请勿跨公众号使用”), =0C 此设备未注册(语音“此设备未注册”) ,=0D 请购买包月(语音“请购买包月”) ,=0E 跨区充电,余额不足(语音“跨区充电,余额不足”) , =0F 包月设备,无法使用(语音“包月设备,无法使用”) ,=10 包月设备,跨区无法使用(语音“包月设备,跨区无法使用”) ,=11 临时设备,无法使用(语音“ 临时设备,无法使用”) ,=12 临时设备,跨区无法使用(语音“ 临时设备,跨区无法使用”);涂黄部分仅适用于 AP262 、AP360 机型
注 4 、 费率模式:=0 计时模式,=1 包月模式,=2 计量,=3 计次 。用于指示设备如何理解“余额/有效期 ”中的数据
注 5 、 端口号:=0xFF 则表示仅查询余额,服务器应答时应和设备发送的保持一致 。不是 0xFF 则为刷卡充电请求。
注 6 、 设备业务流程:先判断“账户状态”,如正常则判断“端口号”,如是查询余额则根据费率模式报出余额或有效期,如“端口号”是充电命令则不做任何动作,等待服务器下一条的充电操作请求。
注 7 、 服务器端一般遵循如下原则:新卡+未绑定用户=1(未注册卡), 新卡+ 已绑定用户=2(请绑卡), 旧卡+未绑定用户=3(请解卡), 旧卡+ 已绑定用户=0(正常)。如不考虑离线刷卡充电,则不要使用“请绑卡和请解卡”。
3.3、结算消费信息上传(03 指令)
设备发送:
如:44 4E 59 28 00 3B 37 AB 04 01 00 03 10 0E E8 03 30 00 01 01 00 00 00 00 01 20 19 09 01 18 00 00 13 00 30 38 01 02 03 04 05 E8 03 44 05
服务器应答:
如:44 4E 59 0A 00 3B 37 AB 04 01 00 03 00 1A 02
注 1 、 充电时长:整个充电过程的时长
注 2 、 最大功率:整个充电过程中出现的最大功率
注 3 、 耗电量:整个充电过程消耗的电量
注 4 、 在线/离线启动:=0 表示离线刷卡启动充电 ;=1 表示在线服务器指令启动;3=验证码启动(仅支持带按键和屏幕的机型)。
备注:
1 、主机都带有 RTC 功能,上电时默认为 1970 年 1 月 1 日 08:00:00(北京时间),每隔 12 小时从服务器校准一次时间
2 、年月日时分秒为 10 进制,卡号为 16 进制,验证码为 10 进制,设备号为 10 进制,端口号为 10 进制
3 、该订单编号规则仅适用于 AP262 、AP360 及将来的新款机型。
注 5 、 卡号/验证码:在线启动时则卡片 ID 为全 0,离线启动时根据“在线/离线启动”中的标志,内容不同,验证码功能仅适用于 AP350 和 AP360系列机型。
注 6 、 停止原因:1(充满自停) 2(达到最大充电时间) 3(达到预设时间) 4(达到预设电量)5(用户拔出) 6(负载过大),7(服务器控制停止) 8 (动态过载) 9(功率过小) 0A(环境温度过高) 0B(端口温度过高) 0C(过流)0D(用户拔出 -1 ,可能是插座弹片卡住)0E
(无功率停止,可能是接触不良或保险丝烧断故障),0F(预检 -继电器坏或保险丝断),注 :0A 仅适用于 AP262 、AP360; 0B 仅适用于 AP262.
注 7 、 第二最大功率:开始充电 5 分钟内出现的最大功率
注 8 、 验证码:物理 ID 、 当前时间戳(规整到分钟)、端口号进行 CRC32 校验,取 10 进制最后 6 位,有效时间正负 2 分钟。
typedef __packed struct
{
uint32_t phyid;//物理 ID
uint32_t tt;//RTC 时间戳
uint8_t num;//端口号
}calc_code_ch_t;//验证码充电结构体
check_code = CRC32Calculate(&set, sizeof(set));
check_code = check_code%1000000;//取 10 进制低 6 位
tt = tt-(tt%60);
注 9 、 此命令存到 EEPROM 中,必须要收到服务器应答才能删除,断电 2 秒后发送一次 。如没收到服务器应答则每隔 30 分钟发送一次给服务
器,有应答后下一条则为 1 分钟后发送。
3.4.1、充电端口订单确认(04 指令)
这是老版本指令, 和 06 相对应,有 06 指令时无此命令(2019 年 6 月份后生产的机型已无此指令)
设备发送:
服务器应答:
注 1 、 此命令在开始充电后发送,如果服务器无应答则每隔心跳包时间发送一次,直至充电结束,如服务器有应答则不再发送。如果中间出现停电,重新来电后会再次发送。
注 2 、 此命令有可能在 82 命令的应答前发出,所以服务器端应做好相应处理。
注 3 、 在线/离线启动:参考 03 命令中的解释。
注 4 、 卡片 ID:参考 03 命令中的解释
注 5 、 充电时长:到当前为止, 已经充电多长时间
注 6 、 订单编号:参考 03 命令中的解释 。不同点:离线启动时,结束时间为当前时间戳(需主机带 RTC 功能)
3.4.2、端口充电时功率心跳包(06 指令)
这是新版本指令, 和 04 相对应,有 04 指令时无此命令
设备发送:
如:44 4E 59 32 00 3B 37 AB 04 0A 00 06 01 01 10 0E 30 00 01 E8 03 B0 04 20 03 E8 03 20 19 09 01 18 00 00 13 00 30 38 01 02 03 04 05 01 00 E8 03 98 08 C7 01 55 00 DA
08
服务器应答:无须应答
注 1 、 此命令设备开始充电后(82 命令应答后)每隔设 5 分钟发送 1 次(无重发机制), 充电结束后即停止发送;
注 2 、 端口号:当前充电的端口号 。注 :00 表示 1 号端口,01 表示 2 号端口
注 3 、 各端口状态:1=充电中, 5=浮充
注 4 、 充电时长:开始充电到当前为止, 已经充电多长时间
注 5 、 累计电量:开始充电到当前为止, 已经消耗的电量
注 6 、 在线/离线启动:=0 表示启动时,处于离线状态 ;=1 表示启动时,处于在线状态;3=验证码启动(仅支持带按键和屏幕的机型)
注 7 、 实时功率:心跳包发送时的当前功率
注 8 、 心跳包期间最大功率:心跳包期间出现过的最大功率
注 9 、 心跳包期间最小功率:心跳包期间出现过的最大功率
注 10 、心跳包期间平均功率:心跳包期间的平均功率
注 11 、订单编号:参考 03 命令中的解释。
注 12 、该时间段内消耗电量:此数据需除以 4800 后才是真实的电量。
注 13 、峰值功率:整个充电过程中出现过的最大功率,有些版本无此字段
注 14、 电压:设备的当前电压
注 15、 电流:设备的当前电流,可以计量芯片采集也可以通过计算得出,0.001A 为单位,1000 表示 1A 电流。
注 16、 环境温度:设备的当前环境温度,仅针对有此功能的机型
注 17、 端口温度:设备的当前充电端口的温度,仅针对有此功能的机型
3.4.3、分机测试模式专用(09 指令)(服务器无需处理,不会发送给服务器)
设备发送:
3.4.4、分机设置主机模块服务器地址(0A 指令)(服务器无需处理,不会发送给服务器)
设备发送:
四、服务器下发
4.1、查询设备联网状态(81 指令)
服务器发送:
如:44 4E 59 09 00 3B 37 AB 04 01 00 81 97 02
设备应答:无须应答
注 1、 此命令应用于注册网络后,通信过程中,服务器主动查询设备状态
注 2、 此命令会触发设备立即发送“注册包”20、“设备心跳包”01 和 21 指令
4.2、服务器开始、停止充电操作(82 指令)
服务器发送:
如:44 4E 59 26 00 3B 37 AB 04 02 00 82 00 64 01 00 00 01 01 00 00 12 34 56 78 12 34 56 78 12 34 56 78 12 34 56 78 80 70 88 13 F8 08
设备应答:
如:44 4E 59 1D 00 3B 37 AB 04 02 00 82 00 12 34 56 78 12 34 56 78 12 34 56 78 12 34 56 78 01 00 00 FE 06
注 1 、 费率模式:=0 计时,=1 包月,=2 计量,=3 计次 。包月 、计次默认充满自停,计时 、计量可手动设置时长和电量。
注 2 、 余额/有效期:当费率模式为计时 、计量 、计次时,数据为余额;当费率模式为包月时,数据为有效期(时间戳)
注 3 、 充电命令=0(停止充电),=1(开始充电)设备充电与否依据此字段
注 4 、 端口号:如 0 -15 则代表第 1 路-第 16 路,FF=设备智能选择端口(服务器下发);
注 5 、 充电时长 :告知设备的充电时长 。如是 0x0000 则说明是充满自停;其他数值则按照时长充电,且充满不会自停,并且不受设置的“最大充电时间 ”限制。
注 6 、 充电电量:告知设备的充电电量 。如是 0x0000 则说明是充满自停;其他数值则按照电量充电,且充满不会自停,但受设置的“最大充电时间 ”限制。
注 7 、 订单编号设备会保存, 当充电结束时通过结算消费信息返回给服务器,服务器端自行判断是否使用。
注 8 、 最大充电时长 、最大充电功率 :动态设置此参数,如果参数为 0 表示不修改 。作为 85 指令的补充,85 指令设置完后是保存在设备存储器中,上电的时候读入到内存中 。82 指令下发的是直接修改内存中参数。
注 9 、 二维码灯:0=打开,1=关闭 。此设置是针对下一次插头插入时是否点亮二维码背光灯,保存在内存中,断电重启后就会失效。
注 10 、应答:执行开始充电命令,=0 执行成功(启动或停止充电),=1 端口未插充电器(不执行),=2 端口状态和充电命令相同(不执行),=3 端口故障(执行),=4 无此端口号(不执行),=5 有多个待充端口(响应 FF 充电命令,不执行),=6 多路设备功率超标(不执行),7=存储器损坏,8=(预检-继电器坏或保险丝断),9=(预检-继电器粘连)(执行给充电),0x0A=(预检-负载短路)。
注 11 、待充端口:当应答=5 的时候,此数据才是有效的 。按照 bit 定义各待充端口状态,0=非待充,1=待充。
注 12 、设备业务流程:充电命令=1 如执行充电则报出余额/有效期 。充电命令=0 则停止充电,此时除了端口号会忽略其他数据,如执行停止充电命令,应答完毕后会一定时间内跟一条结算消费信息。
4.2.1、服务器修改充电时长/电量(8a 指令)
服务器发送:
如:44 4E 59 0D 00 3B 37 AB 04 02 00 8A 00 01 80 70 96 03
设备应答:
如:44 4E 59 0A 00 3B 37 AB 04 02 00 8A 00 A2 02
注 1 、 原充电模式不管是何种充电模式,收到此命令后将立即转为定时/定量充电
注 2 、 费率模式:=0 定时无充满自停,=1 定时带充满自停,=2 计量带充满自停。
注 3 、 充电时长/电量:根据费率模式中的数据判断是时长还是电量 。如该值小于设备已经运行的数值,设备将立即断电,03 结算指令中断电原因为 03(达到预设时间)或 04(达到预设电量)。另:费率模式=1 时如已经过了设备判断充满自停的时间,则充满自停会失效。
注 4 、 应答:0=成功,1=此端口未在充电,2=设置值小于现运行值,3=无此费率模式/无此端口号
4.3.1、设置运行参数 1.1( 83 指令)
服务器发送:
设备应答:
注 1 、 应答:0=成功,1=参数错误
注 2 、 用于设置设备的运行参数,跟业务逻辑无关
注 3 、 浮充百分比为 1 -100,如 15 代表”充电功率“ 的 15%
4.3.2、设置运行参数 1.2( 84 指令)
服务器发送:
设备应答:
注 1 、 应答:0=成功,1=参数错误
注 2 、 用于设置设备的运行参数,跟业务逻辑无关
注 3 、 动态过载应使用智能模糊判断,具体算法见另外文件说明, 因为某些充电器功率会突然增大,导致误断电,在 2021 年 6 月份之后, 已经关闭断电功能。
注 4 、 拔出干扰功率及时间:在单位时间内功率小于拔出干扰功率,则认为用户已经拔出了充电器,断电。
注 5 、 浮充识别第二次时间点:在此时长之前则用 83 指令中的浮充参数,之后则使用浮充第二次识别时间 。如:开始充电 10800 秒之内,则需要 1800 秒判断是否进入浮充;充电 10800 秒之后,则需要 300 秒判断是否进入浮充。
注 6 、 “ 判断最小功率时间点 ”内,峰值功率一直小于“最小功率”,则断电
注 7 、 第二最大功率时间点:设置记录第二最大功率的时长,会影响 03 指令中的“第二最大功率 ”
注 8 、 环境报警温度/端口报警温度:达到此温度则直接断电,需要 30 秒的判断时间 。从 2021 年 6 月份之后, 因为误断电的原因, 已经关闭断电功能。
注 9 、 打开/关闭判断用户拔出(光耦):此功能仅适用于带插入检测功能的 10/16 路设备,相当于 AP350 的 14561456 功能
注 10 、二维码灯:0=打开,1=关闭 。此设置成功后将会一直保存,断电重启后依然有效。
4.4.1、设置最大充电时长 、最大充电功率(85 指令)
服务器发送:
如:44 4E 59 0D 00 3B 37 AB 04 02 00 85 A0 8C 20 4E 3A 04
设备应答:
如:44 4E 59 0A 00 3B 37 AB 04 02 00 85 00 9D 02
注 1 、 应答:0=成功,1=设置参数超过设备极限值 。(双路 、 多路=2000W,大功率=3500W)
注 2 、 最大充电时间:充满自停和离线启动时,均受其约束 。如服务器下发充电时长,则不受其约束。
4.4.2、设置用户卡参数(86 指令)
服务器发送:
如:44 4E 59 16 00 3B 37 AB 04 02 00 86 00 18 53 71 25 01 70 FF FF FF FF FF FF 80 0A
设备应答:
如:44 4E 59 0A 00 3B 37 AB 04 02 00 86 00 9E 02
注 1 、 用户卡密码和新卡密码,均为 16 进制
注 2 、 应答:0=成功,1=参数错误
4.4.3、复位重启设备(87 指令)
服务器发送:
如:44 4E 59 09 00 3B 37 AB 04 01 00 87 9D 02
设备应答:
如:44 4E 59 0A 00 3B 37 AB 04 01 00 87 00 9E 02
注 1 、 此命令应用于服务器复位重启设备
注 2 、 设备会尽力应答服务器,但服务器仍有可能收不到
注 3 、 应答=0 ,收到复位命令
4.4.4、存储器清零(88 指令)
服务器发送:
如:44 4E 59 09 00 3B 37 AB 04 01 00 88 9E 02
设备应答:
如:44 4E 59 0A 00 3B 37 AB 04 01 00 88 00 9F 02
注 1 、 此命令应用于设备把存储器清零—— 除了物理 ID 、虚拟 ID 、升级指令不用清零,其他的数据全部清零。
注 2 、 应答=0 ,执行成功
4.4.5、播放语音(89 指令)
此命令为保留指令, 暂时不可用
服务器发送:
设备应答:
注 1 、 是否打断:0 表示不打断正在播放的语音,1 表示打断正在播放的语音,并马上播放本次语音。
注 2 、 语音长度:即后面语音组合的段数。
注 3 、 语音组合:即播放的语音组合。
注 4 、 应答:0 表示成功,1 表示失败。
4.4.6、设置设备的工作模式(8D 指令)
注: 由此功能的机型才会支持
如:44 4E 59 0A 00 3B 37 AB 04 01 00 8D 00 A4 02
设备应答:
如:44 4E 59 0A 00 3B 37 AB 04 01 00 8D 00 A4 02
注 1 、 工作模式:00=联网,01=刷卡
注 2 、 应答:0=执行成功,1=设备不支持切换,其他=失败
4.8.1、设备固件升级(E0 升级分机指令)(E1 升级电源板指令)(E2 主机统一升级)(参考 01 指令中的设备类型表)
服务器发送:
设备应答:
注 1 、 服务器直接发送第 1 包启动升级。
注 2 、 总包数,如一个固件为 640 字节,则总包数为 640/ 200 = 3.2 = 4
注 3 、 当前包,从 1 开始,为第一包 , 当前包等于总包数时, 固件发送完毕
注 4 、 应答:0=成功,可以发送下一包;其他=错误,重新发送设备请求的当前包
注 5 、 当前包:当前成功收到的数据包
服务器注意事项:鉴于我们的经验,服务器应做重发机制,如 30 秒未收到设备的应答,应重发当前包,可做 3 次重发。
4.8.2、设备固件升级(F8 指令)
这是老版本设备使用的升级指令
服务器发送:
设备应答:
注 1 、 总包数,如一个固件为 640 字节,则总包数为 640/ 256 = 2.5 = 3
注 2 、 当前包,从 1 开始,为第一包 , 当前包等于总包数时, 固件发送完毕
注 3 、 应答=0 成功,可以发送下一包;=1 错误,重新发送当前包
注 4 、 当前包:当前成功收到的数据包
注 5 、 如果 2 次重传,依然不成功,则需重新升级
注 6 、 当设备发 05 指令时,需要从第一包开始重发
4.9.1、服务器查询当前设备参数(90 、91 、92、93、94 指令)
服务器发送:
设备应答:
服务器发送:
设备应答:
服务器发送:
设备应答:
服务器发送:
设备应答:
服务器发送:
设备应答:
4.9.2、服务器读取 EEPROM 的数据(8B 指令)
服务器发送:
设备应答:
注 1 、 数据长度最大为 32
注 2 、 是否成功:0=成功,其他=失败
4.9.3、服务器写入 EEPROM 的数据(8C 指令)
服务器发送:
设备应答:
注 1 、 数据长度最大为 32,需要和 EEPROM 数据内容对应
注 2 、 是否成功:0=成功,其他=失败
4.9.4、服务器修改二维码地址(8E 指令)(最新固件才支持)
服务器发送:
设备应答:
注 1 、 主界面类型:0=主界面为端口状态显示,1=主界面为二维码显示。
注 2 、 保留:暂时没有用到的字节。
注 3 、 二维码数据:固定为 72 字节的 buff,实际二维码数据最大为 71 个字符,最后一个字节必需为 0x00,如二维码数据不足 71 字节必需使用 0x00 填充。
注 4 、 是否成功:0=成功,其他=失败
《分享一套免费开源充电桩物联网系统,是可以立马拿去商用的!》