update 预约充电update 预约充电

This commit is contained in:
Guoqs
2024-07-30 14:52:12 +08:00
parent 3308554a70
commit 3a11992904
9 changed files with 100 additions and 34 deletions

View File

@@ -7,7 +7,8 @@ import com.jsowell.common.util.YKCUtils;
/**
* 云快充 帧类型码
* FrameTypeCode
* frame
* 单数为 桩 -> 平台
* 双数为 平台 -> 桩
*/
public enum YKCFrameTypeCode {
@@ -71,8 +72,8 @@ public enum YKCFrameTypeCode {
BILLING_TEMPLATE_SETTING_CODE(0x58, "计费模型设置"),
BILLING_TEMPLATE_SETTING_ANSWER_CODE(0x57, "计费模型设置应答"),
RESERVATION_CHARGING_CODE(0x60, "预约充电设置"),
RESERVATION_CHARGING_ANSWER_CODE(0x59, "预约充电设置响应"), // RESERVATION
RESERVATION_CHARGING_SETUP_CODE(0x60, "预约充电设置"),
RESERVATION_CHARGING_SETUP_ANSWER_CODE(0x59, "预约充电设置响应"), // RESERVATION
RESERVATION_CHARGING_STARTUP_RESULT_ANSWER_CODE(0x64, "预约充电启动结果上传响应"), // 平台响应
RESERVATION_CHARGING_STARTUP_RESULT_CODE(0x65, "预约充电启动结果上传"), // 桩 -> 平台
@@ -150,31 +151,38 @@ public enum YKCFrameTypeCode {
}
/**
* 请求应答 帧类型关系
* 请求 - 平台应答 帧类型关系
* PlatformAnswersRelation
*/
public enum ResponseRelation {
public enum PlatformAnswersRelation {
// 登录
LOGIN(LOGIN_CODE.getCode(), LOGIN_ANSWER_CODE.getCode()),
// 心跳
HEART_BEAT(HEART_BEAT_CODE.getCode(), HEART_BEAT_ANSWER_CODE.getCode()),
// 计费模板验证
BILLING_TEMPLATE_VALIDATE(BILLING_TEMPLATE_VALIDATE_CODE.getCode(), BILLING_TEMPLATE_VALIDATE_ANSWER_CODE.getCode()),
// 计费模板请求
BILLING_TEMPLATE(BILLING_TEMPLATE_CODE.getCode(), BILLING_TEMPLATE_ANSWER_CODE.getCode()),
// 请求开始充电
START_CHARGING(REQUEST_START_CHARGING_CODE.getCode(), CONFIRM_START_CHARGING_CODE.getCode()),
// 远程请求充电
REMOTE_START_CHARGING(REMOTE_CONTROL_START_CODE.getCode(), REMOTE_START_CHARGING_ANSWER_CODE.getCode()),
// 远程停止充电
REMOTE_STOP_CHARGING(REMOTE_STOP_CHARGING_CODE.getCode(), REMOTE_STOP_CHARGING_ANSWER_CODE.getCode()),
// 交易记录
TRANSACTION_RECORDS(TRANSACTION_RECORDS_CODE.getCode(), TRANSACTION_RECORDS_CONFIRM_CODE.getCode()),
// 远程账户更新
REMOTE_ACCOUNT_BALANCE_UPDATE(REMOTE_ACCOUNT_BALANCE_UPDATE_CODE.getCode(), REMOTE_ACCOUNT_BALANCE_UPDATE_ANSWER_CODE.getCode()),
TRANSACTION_RECORDS_V13(TRANSACTION_RECORDS_OLD_VERSION_CODE.getCode(), TRANSACTION_RECORDS_CONFIRM_CODE.getCode()),
// 预约充电启动结果
RESERVATION_CHARGING_STARTUP_RESULT(RESERVATION_CHARGING_STARTUP_RESULT_CODE.getCode(), RESERVATION_CHARGING_STARTUP_RESULT_ANSWER_CODE.getCode()),
;
// 请求帧类型
private int requestFrameType;
@@ -198,16 +206,73 @@ public enum YKCFrameTypeCode {
this.responseFrameType = responseFrameType;
}
ResponseRelation(int requestFrameType, int responseFrameType) {
PlatformAnswersRelation(int requestFrameType, int responseFrameType) {
this.requestFrameType = requestFrameType;
this.responseFrameType = responseFrameType;
}
// 根据请求帧类型 获取应答帧类型 int类型
public static int getResponseFrameTypeByRequestFrameType(int requestFrameType) {
for (ResponseRelation responseRelation : ResponseRelation.values()) {
if (responseRelation.getRequestFrameType() == requestFrameType) {
return responseRelation.getResponseFrameType();
for (PlatformAnswersRelation relation : PlatformAnswersRelation.values()) {
if (relation.getRequestFrameType() == requestFrameType) {
return relation.getResponseFrameType();
}
}
return 0;
}
// 根据请求帧类型 获取应答帧类型 byte[]类型
public static byte[] getResponseFrameTypeBytes(byte[] requestFrameType) {
int frameType = BytesUtil.bytesToInt(requestFrameType);
return BytesUtil.intToBytes(getResponseFrameTypeByRequestFrameType(frameType), 1);
}
}
/**
* 平台请求 - 桩应答 帧类型关系
* PileAnswersRelation
*/
public enum PileAnswersRelation {
// 预约充电设置
RESERVATION_CHARGING_SETUP(RESERVATION_CHARGING_SETUP_CODE.getCode(), RESERVATION_CHARGING_SETUP_ANSWER_CODE.getCode()),
// 远程账户余额更新
REMOTE_ACCOUNT_BALANCE_UPDATE(REMOTE_ACCOUNT_BALANCE_UPDATE_CODE.getCode(), REMOTE_ACCOUNT_BALANCE_UPDATE_ANSWER_CODE.getCode()),
;
// 请求帧类型
private int requestFrameType;
// 响应帧类型
private int responseFrameType;
public int getRequestFrameType() {
return requestFrameType;
}
public void setRequestFrameType(int requestFrameType) {
this.requestFrameType = requestFrameType;
}
public int getResponseFrameType() {
return responseFrameType;
}
public void setResponseFrameType(int responseFrameType) {
this.responseFrameType = responseFrameType;
}
PileAnswersRelation(int requestFrameType, int responseFrameType) {
this.requestFrameType = requestFrameType;
this.responseFrameType = responseFrameType;
}
// 根据请求帧类型 获取应答帧类型 int类型
public static int getResponseFrameTypeByRequestFrameType(int requestFrameType) {
for (PileAnswersRelation relation : PileAnswersRelation.values()) {
if (relation.getRequestFrameType() == requestFrameType) {
return relation.getResponseFrameType();
}
}
return 0;