mirror of
https://codeup.aliyun.com/67c68d4e484ca2f0a13ac3c1/ydc/jsowell-charger-web.git
synced 2026-04-21 11:35:12 +08:00
update 电单车协议
This commit is contained in:
@@ -18,16 +18,6 @@ public class EBikeMessageCmd82 extends AbsEBikeMessage {
|
||||
|
||||
private SpecificData data;
|
||||
|
||||
// public EBikeMessageCmd82(String header, int length, int physicalId, int messageId, String command, Object payload, int checksum, SpecificData specificData) {
|
||||
// super(header, length, physicalId, messageId, command, payload, checksum);
|
||||
// this.specificData = specificData;
|
||||
// }
|
||||
|
||||
// public EBikeMessageCmd82(SpecificData specificData) {
|
||||
// super(header, length, physicalId, messageId, command, payload, checksum);
|
||||
// this.specificData = specificData;
|
||||
// }
|
||||
|
||||
@Override
|
||||
public void parsePayload(byte[] dataBytes) {
|
||||
this.data = new SpecificData(dataBytes);
|
||||
@@ -72,16 +62,33 @@ public class EBikeMessageCmd82 extends AbsEBikeMessage {
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
public static class SpecificData {
|
||||
// 费率模式:=0计时,=1包月,=2计量,=3计次。包月、计次默认充满自停,计时、计量可手动设置时长和电量
|
||||
private int rateMode; // 费率模式 (1字节)
|
||||
|
||||
// 余额/有效期:设备仅仅用于语音播报作用,当费率模式为计时、计量、计次时,数据为余额;当费率模式为包月时,数据为有效期(时间戳), 大于100000000这个值会当成时间报有效期
|
||||
private int balanceOrValidity; // 余额/有效期 (4字节)
|
||||
|
||||
// 端口号:指充电桩的插口号,端口号从0开始,如0x00-0x0F则代表第1路-第16路,0x00=第1路,0x09=第十路,0x0A=第十一路,FF=设备智能选择端口(服务器下发)
|
||||
private int portNumber; // 端口号 (指实际端口号, 发指令的时候自动转换为桩能识别的byte字节)
|
||||
|
||||
// 充电命令=0(停止充电)(远程停止充电需要下发对当前正在充电的订单号,如果订单号对不上则无法远程停止),=1(开始充电)设备充电与否依据此字段
|
||||
private int chargeCommand; // 充电命令 (1字节)
|
||||
|
||||
// 告知设备的充电时长/电量, 如是0x0000则说明是充满自停, 其他数值则按照时长/电量充电, 且充满不会自停,
|
||||
private int chargeDurationOrPower; // 充电时长/电量 (2字节)
|
||||
private String orderNumber; // 订单编号 (16字节)
|
||||
|
||||
// 最大充电时长、过载功率:(只对当前端口当前订单有效,不影响其他端口)动态设置此参数,如果参数为0表示不修改,会使用设备的设置值,默认10小时
|
||||
private int maxChargeDuration; // 最大充电时长 (2字节)
|
||||
private int overloadPower; // 过载功率 (2字节)
|
||||
|
||||
// 二维码灯:0=打开,1=关闭,针对部分有二维码灯的设备有效。此设置是针对下一次插头插入时是否点亮二维码背光灯,保存在内存中,断电重启后就会失效
|
||||
private int qrCodeLight; // 二维码灯 (1字节)
|
||||
|
||||
// 长充模式:(特殊需求,正常情况不需开启,传0 即可)
|
||||
private int longChargeMode; // 长充模式 (1字节)
|
||||
|
||||
// 额外浮充时间:(特殊需求,正常情况不需开启,传0 即可),即额外增加的浮充时间,单位秒,如果下发的是0xFFFF,则为取消浮充,且检测绿灯统一改为5分钟
|
||||
private int extraFloatChargeTime; // 额外浮充时间 (2字节)
|
||||
private int skipShortCircuitDetection; // 是否跳过短路检测 (1字节)
|
||||
private int noUserPullOutCheck; // 不判断用户拔出 (1字节)
|
||||
|
||||
@@ -30,32 +30,33 @@ public class EBikeSendCommandServiceImpl implements EBikeSendCommandService {
|
||||
|
||||
EBikeMessageCmd82.SpecificData data = new EBikeMessageCmd82.SpecificData();
|
||||
// 充电模式
|
||||
data.setRateMode("3");
|
||||
data.setRateMode(3);
|
||||
// 余额或有效期
|
||||
data.setBalanceOrValidity("356");
|
||||
data.setBalanceOrValidity(1234);
|
||||
// 端口号
|
||||
data.setPortNumber(connectorCode);
|
||||
data.setPortNumber(Integer.parseInt(connectorCode));
|
||||
// 充电命令
|
||||
data.setChargeCommand("01");
|
||||
data.setChargeCommand(1);
|
||||
// 充电时长/功率
|
||||
data.setChargeDurationOrPower("0");
|
||||
int chargeDurationOrPower = 0;
|
||||
data.setChargeDurationOrPower(chargeDurationOrPower);
|
||||
|
||||
// 订单编号
|
||||
String orderNumber = IdUtils.generateTransactionCode(pileSn, connectorCode);
|
||||
data.setOrderNumber(orderNumber);
|
||||
|
||||
// 最大充电时长
|
||||
data.setMaxChargeDuration("0");
|
||||
data.setMaxChargeDuration(0);
|
||||
// 过载功率
|
||||
data.setOverloadPower("5000");
|
||||
data.setQrCodeLight("0");
|
||||
data.setLongChargeMode("0");
|
||||
data.setExtraFloatChargeTime("0");
|
||||
data.setSkipShortCircuitDetection("0");
|
||||
data.setNoUserPullOutCheck("0");
|
||||
data.setForceAutoStopWhenFull("0");
|
||||
data.setFullChargePower("0");
|
||||
data.setMaxFullChargePowerCheckTime("0");
|
||||
data.setOverloadPower(5000);
|
||||
data.setQrCodeLight(0);
|
||||
data.setLongChargeMode(0);
|
||||
data.setExtraFloatChargeTime(0);
|
||||
data.setSkipShortCircuitDetection(0);
|
||||
data.setNoUserPullOutCheck(0);
|
||||
data.setForceAutoStopWhenFull(0);
|
||||
data.setFullChargePower(0);
|
||||
data.setMaxFullChargePowerCheckTime(0);
|
||||
message.setData(data);
|
||||
this.send(message);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user