2021与蓝度共同重构项目,服务端
zhanzhiqin
2022-03-22 c42bbac189958358b2c8ae4e163d55158d6750fc
C3充电桩
已修改3个文件
已添加4个文件
270 ■■■■■ 文件已修改
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/C3ChargingController.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/request/C3ClearedFaultCodeReqInnerFrame.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/request/C3RestoreFactoryValueReqInnerFrame.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/request/C3SetAddressReqInnerFrame.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/request/C3SetCalendarReqInnerFrame.java 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/param/C3ChargingParam.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3ChargingService.java 107 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/C3ChargingController.java
@@ -152,6 +152,42 @@
        return ResponseUtil.success(c3ChargingService.SetConstant(c3ChargingParam.getC3Mac(), c3ChargingParam.getConstant()));
    }
    /**
     * è®¾ç½®åœ°å€
     */
    @PostMapping("/SetAddress")
    public ResponseVO<Object> SetAddress(@RequestBody @Validated C3ChargingParam c3ChargingParam) {
        return ResponseUtil.success(c3ChargingService.SetAddress(c3ChargingParam.getC3Mac(), c3ChargingParam.getAddress()));
    }
    /**
     * è®¾ç½®æ—¥åŽ†ï¼ˆåŒå¿ƒè·³åŒ…ä¸­çš„6字节日期时间)
     */
    @PostMapping("/SetCalendar")
    public ResponseVO<Object> SetCalendar(@RequestBody @Validated C3ChargingParam c3ChargingParam) {
        return ResponseUtil.success(c3ChargingService.SetCalendar(c3ChargingParam.getC3Mac()
                , c3ChargingParam.getYear(), c3ChargingParam.getMonth(), c3ChargingParam.getDay(), c3ChargingParam.getHour(), c3ChargingParam.getMin(), c3ChargingParam.getSec()));
    }
    /**
     * æ•…障码上报清除
     */
    @PostMapping("/ClearedFaultCode")
    public ResponseVO<Object> ClearedFaultCode(@RequestBody @Validated C3ChargingParam c3ChargingParam) {
        return ResponseUtil.success(c3ChargingService.ClearedFaultCode(c3ChargingParam.getC3Mac()));
    }
    /**
     * æ¢å¤å‡ºåނ值
     */
    @PostMapping("/RestoreFactoryValue")
    public ResponseVO<Object> RestoreFactoryValue(@RequestBody @Validated C3ChargingParam c3ChargingParam) {
        return ResponseUtil.success(c3ChargingService.RestoreFactoryValue(c3ChargingParam.getC3Mac()));
    }
    /**
     * è½¯é‡å¯
ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/request/C3ClearedFaultCodeReqInnerFrame.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
package com.sandu.ximon.admin.manager.iot.frame.inner.request;
import com.sandu.ximon.admin.manager.iot.frame.inner.IRequestInnerFrame;
import com.sandu.ximon.admin.manager.iot.rrpc.enums.C3ChargingEnum;
import com.sandu.ximon.admin.manager.iot.rrpc.enums.MQTTConnectTypeEnum;
import com.sandu.ximon.admin.manager.iot.rrpc.util.CRC32Utils;
/**
 * @author ZZQ
 * @date 2022/3/3 16:43
 */
public class C3ClearedFaultCodeReqInnerFrame implements IRequestInnerFrame {
    private final String payload;
    public C3ClearedFaultCodeReqInnerFrame(String c3Mac) {
        payload = c3Mac;
    }
    @Override
    public String getEncodeFrame() {
        String functionCode = C3ChargingEnum.ClearedFaultCode.getCode();
        String payloadLength = "0004";
        String frame = functionCode + payloadLength + payload;
        return MQTTConnectTypeEnum.SYNCHRONIZATION.getCode() + frame.toUpperCase() + CRC32Utils.getCRC32(frame.toUpperCase());
    }
}
ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/request/C3RestoreFactoryValueReqInnerFrame.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
package com.sandu.ximon.admin.manager.iot.frame.inner.request;
import com.sandu.ximon.admin.manager.iot.frame.inner.IRequestInnerFrame;
import com.sandu.ximon.admin.manager.iot.rrpc.enums.C3ChargingEnum;
import com.sandu.ximon.admin.manager.iot.rrpc.enums.MQTTConnectTypeEnum;
import com.sandu.ximon.admin.manager.iot.rrpc.util.CRC32Utils;
/**
 * @author ZZQ
 * @date 2022/3/3 16:43
 */
public class C3RestoreFactoryValueReqInnerFrame implements IRequestInnerFrame {
    private final String payload;
    public C3RestoreFactoryValueReqInnerFrame(String c3Mac) {
        payload = c3Mac;
    }
    @Override
    public String getEncodeFrame() {
        String functionCode = C3ChargingEnum.RestoreFactoryValue.getCode();
        String payloadLength = "0004";
        String frame = functionCode + payloadLength + payload;
        return MQTTConnectTypeEnum.SYNCHRONIZATION.getCode() + frame.toUpperCase() + CRC32Utils.getCRC32(frame.toUpperCase());
    }
}
ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/request/C3SetAddressReqInnerFrame.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
package com.sandu.ximon.admin.manager.iot.frame.inner.request;
import com.sandu.ximon.admin.manager.iot.frame.inner.IRequestInnerFrame;
import com.sandu.ximon.admin.manager.iot.rrpc.enums.C3ChargingEnum;
import com.sandu.ximon.admin.manager.iot.rrpc.enums.MQTTConnectTypeEnum;
import com.sandu.ximon.admin.manager.iot.rrpc.util.CRC32Utils;
/**
 * @author ZZQ
 * @date 2022/3/3 16:43
 */
public class C3SetAddressReqInnerFrame implements IRequestInnerFrame {
    private final String payload;
    public C3SetAddressReqInnerFrame(String c3Mac, String address) {
        payload = c3Mac + address;
    }
    @Override
    public String getEncodeFrame() {
        String functionCode = C3ChargingEnum.SetAddress.getCode();
        String payloadLength = "0008";
        String frame = functionCode + payloadLength + payload;
        return MQTTConnectTypeEnum.SYNCHRONIZATION.getCode() + frame.toUpperCase() + CRC32Utils.getCRC32(frame.toUpperCase());
    }
}
ximon-admin/src/main/java/com/sandu/ximon/admin/manager/iot/frame/inner/request/C3SetCalendarReqInnerFrame.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
package com.sandu.ximon.admin.manager.iot.frame.inner.request;
import com.sandu.ximon.admin.manager.iot.frame.inner.IRequestInnerFrame;
import com.sandu.ximon.admin.manager.iot.rrpc.enums.C3ChargingEnum;
import com.sandu.ximon.admin.manager.iot.rrpc.enums.MQTTConnectTypeEnum;
import com.sandu.ximon.admin.manager.iot.rrpc.util.CRC32Utils;
/**
 * @author ZZQ
 * @date 2022/3/3 16:43
 */
public class C3SetCalendarReqInnerFrame implements IRequestInnerFrame {
    private final String payload;
    public C3SetCalendarReqInnerFrame(String c3Mac, int year, int month, int day, int hour, int min, int sec) {
        payload = c3Mac + hex10To16(year) + hex10To16(month) + hex10To16(day) + hex10To16(hour) + hex10To16(min) + hex10To16(sec);
    }
    @Override
    public String getEncodeFrame() {
        String functionCode = C3ChargingEnum.SetCalendar.getCode();
        String payloadLength = "000A";
        String frame = functionCode + payloadLength + payload;
        return MQTTConnectTypeEnum.SYNCHRONIZATION.getCode() + frame.toUpperCase() + CRC32Utils.getCRC32(frame.toUpperCase());
    }
    private String hex10To16(int value) {
        return String.format("%02X", value);
    }
}
ximon-admin/src/main/java/com/sandu/ximon/admin/param/C3ChargingParam.java
@@ -27,4 +27,20 @@
    //设置电压/电流常数(各一字节)(默认值0xBC64)
    private String constant = "BC64";
    //设置地址
    private String address;
    //å¹´
    private int year;
    //月
    private int month;
    //日
    private int day;
    //时
    private int hour;
    //分
    private int min;
    //秒
    private int sec;
}
ximon-admin/src/main/java/com/sandu/ximon/admin/service/C3ChargingService.java
@@ -349,6 +349,113 @@
    }
    /**
     * è®¾ç½®åœ°å€
     *
     * @param c3Mac
     * @param address
     * @return
     */
    public String SetAddress(String c3Mac, String address) {
        if (address == null || address.length() != 8) {
            throw new BusinessException("地址信息错误!");
        }
        C3SetAddressReqInnerFrame setAddressReqInnerFrame =
                new C3SetAddressReqInnerFrame(c3Mac, address);
        A5Frame a5Frame = new A5Frame(A5OrderEnum.REQUEST_C3_DATA.getCode(), setAddressReqInnerFrame);
        System.out.println(a5Frame + "            -----a5Frame");
        CommonFrame commonFrame = MainBoardInvokeSyncService.getInstance().sendRRPC("32313243305008ff0a04ffff", a5Frame);
        System.out.println(commonFrame + "            -----commonFrame");
        A5C3OperationReportInnerFrame operationReportInnerFrame = new A5C3OperationReportInnerFrame().transformFrame(commonFrame.getPayload());
        if (operationReportInnerFrame.isValidate()) {
            return operationReportInnerFrame.getState();
        } else {
            throw new BusinessException("数据校验错误,请重新请求");
        }
    }
    /**
     * è®¾ç½®æ—¥åŽ†ï¼ˆåŒå¿ƒè·³åŒ…ä¸­çš„6字节日期时间)
     *
     * @param c3Mac
     * @return
     */
    public String SetCalendar(String c3Mac, int year, int month, int day, int hour, int min, int sec) {
        C3SetCalendarReqInnerFrame setCalendarReqInnerFrame =
                new C3SetCalendarReqInnerFrame(c3Mac, year, month, day, hour, min, sec);
        A5Frame a5Frame = new A5Frame(A5OrderEnum.REQUEST_C3_DATA.getCode(), setCalendarReqInnerFrame);
        System.out.println(a5Frame + "            -----a5Frame");
        CommonFrame commonFrame = MainBoardInvokeSyncService.getInstance().sendRRPC("32313243305008ff0a04ffff", a5Frame);
        System.out.println(commonFrame + "            -----commonFrame");
        A5C3OperationReportInnerFrame operationReportInnerFrame = new A5C3OperationReportInnerFrame().transformFrame(commonFrame.getPayload());
        if (operationReportInnerFrame.isValidate()) {
            return operationReportInnerFrame.getState();
        } else {
            throw new BusinessException("数据校验错误,请重新请求");
        }
    }
    /**
     * æ•…障码上报清除
     *
     * @param c3Mac
     * @return
     */
    public String ClearedFaultCode(String c3Mac) {
        C3ClearedFaultCodeReqInnerFrame clearedFaultCodeReqInnerFrame =
                new C3ClearedFaultCodeReqInnerFrame(c3Mac);
        A5Frame a5Frame = new A5Frame(A5OrderEnum.REQUEST_C3_DATA.getCode(), clearedFaultCodeReqInnerFrame);
        System.out.println(a5Frame + "            -----a5Frame");
        CommonFrame commonFrame = MainBoardInvokeSyncService.getInstance().sendRRPC("32313243305008ff0a04ffff", a5Frame);
        System.out.println(commonFrame + "            -----commonFrame");
        A5C3OperationReportInnerFrame operationReportInnerFrame = new A5C3OperationReportInnerFrame().transformFrame(commonFrame.getPayload());
        if (operationReportInnerFrame.isValidate()) {
            return operationReportInnerFrame.getState();
        } else {
            throw new BusinessException("数据校验错误,请重新请求");
        }
    }
    /**
     * æ¢å¤å‡ºåނ值
     *
     * @param c3Mac
     * @return
     */
    public String RestoreFactoryValue(String c3Mac) {
        C3RestoreFactoryValueReqInnerFrame restoreFactoryValueReqInnerFrame =
                new C3RestoreFactoryValueReqInnerFrame(c3Mac);
        A5Frame a5Frame = new A5Frame(A5OrderEnum.REQUEST_C3_DATA.getCode(), restoreFactoryValueReqInnerFrame);
        System.out.println(a5Frame + "            -----a5Frame");
        CommonFrame commonFrame = MainBoardInvokeSyncService.getInstance().sendRRPC("32313243305008ff0a04ffff", a5Frame);
        System.out.println(commonFrame + "            -----commonFrame");
        A5C3OperationReportInnerFrame operationReportInnerFrame = new A5C3OperationReportInnerFrame().transformFrame(commonFrame.getPayload());
        if (operationReportInnerFrame.isValidate()) {
            return operationReportInnerFrame.getState();
        } else {
            throw new BusinessException("数据校验错误,请重新请求");
        }
    }
    /**
     * è½¯é‡å¯
     *
     * @param c3Mac