2021与蓝度共同重构项目,服务端
fix
zhanzhiqin
2022-05-18 da602743da69e28a23601b1890bc43917fcd019a
ximon-admin/src/main/java/com/sandu/ximon/admin/service/PoleService.java
@@ -16,6 +16,7 @@
import com.sandu.ximon.admin.dto.DeviceStatus;
import com.sandu.ximon.admin.dto.WaterQualityDataDto;
import com.sandu.ximon.admin.manager.iot.frame.A1Frame;
import com.sandu.ximon.admin.manager.iot.frame.A5Frame;
import com.sandu.ximon.admin.manager.iot.frame.FrameBuilder;
import com.sandu.ximon.admin.manager.iot.frame.IRequestFrame;
import com.sandu.ximon.admin.manager.iot.frame.inner.report.A5AtmosphereHeartbeatReportInnerFrame;
@@ -542,11 +543,12 @@
        }
        IRequestFrame build = FrameBuilder.builderA5().orderType(A5OrderEnum.REQUEST_LIGHT_DATA.getCode()).innerFrame(new A5LightResetReqInnerFrame()).build();
        CommonFrame commonFrame = MainBoardInvokeSyncService.getInstance().sendRRPC(deviceName, build);
        StoreOperationRecordsUtils.storeInnerFrameData(deviceName, "灯杆恢复出厂设置", build, commonFrame);
        System.out.println(commonFrame.toString());
        CommonFrame rebootFrame = MainBoardInvokeSyncService.getInstance().sendRRPC(deviceName, FrameBuilder.builderA2().innerFrame(new EmptyRequestInnerFrame()).orderType(A2OrderEnum.REQUEST_MAIN_BOARD_RESET.getCode()).build());
        IRequestFrame iRequestFrame = FrameBuilder.builderA2().innerFrame(new EmptyRequestInnerFrame()).orderType(A2OrderEnum.REQUEST_MAIN_BOARD_RESET.getCode()).build();
        CommonFrame rebootFrame = MainBoardInvokeSyncService.getInstance().sendRRPC(deviceName, iRequestFrame);
        StoreOperationRecordsUtils.storeInnerFrameData(deviceName, "灯杆重启", iRequestFrame, commonFrame);
        boolean b = false;
        if ("00".equals(rebootFrame.getPayload())) {
@@ -570,16 +572,12 @@
     * 给灯杆注册三元码
     */
    public boolean setMac(String baseMac) {
        // public boolean setMac() {
        //Pole pole = getById(poleId);
       /* if (pole == null) {
            throw new BusinessException("未找到该灯杆");
        }*/
        boolean setMac = false;
        //String baseMac = "baseDevice";
        A1Frame a1Frame = new A1Frame(A1OrderEnum.REQUEST_READ_DEVICE_UNIQUE_MAC.getCode(), new EmptyRequestInnerFrame());
        CommonFrame commonFrame = MainBoardInvokeSyncService.getInstance().sendRRPC(baseMac, a1Frame);
        //存储振记录
        StoreOperationRecordsUtils.storeInnerFrameData(baseMac, "注册三元码", a1Frame, commonFrame);
        if (commonFrame == null) {
            throw new BusinessException("读取设备唯一ID失败");
        }
@@ -604,29 +602,46 @@
        log.info(deviceDetail.toString());
        // 4   配置Mac①
        WrapResponseCommonFrame<A1TernaryCodeRespInnerFrame> productKeyResp = MainBoardInvokeSyncService.getInstance().sendRRPC(baseMac, FrameBuilder.builderA1().innerFrame(new A1TernaryCodeReqInnerFrame(MainBoardInvokeSyncService.getInstance().getProductKey())).orderType(A1OrderEnum.REQUEST_SET_PRODUCT_KEY.getCode()).build(), A1TernaryCodeRespInnerFrame.class);
        A1TernaryCodeRespInnerFrame responseInnerFrame = productKeyResp.getResponseInnerFrame();
        IRequestFrame build1 = FrameBuilder.builderA1().innerFrame(new A1TernaryCodeReqInnerFrame(MainBoardInvokeSyncService.getInstance().getProductKey())).orderType(A1OrderEnum.REQUEST_SET_PRODUCT_KEY.getCode()).build();
        CommonFrame commonFrame1 = MainBoardInvokeSyncService.getInstance().sendRRPC(baseMac, build1);
        //存储振记录
        StoreOperationRecordsUtils.storeInnerFrameData(baseMac, "设备配置ProductKey", build1, commonFrame1);
        A1TernaryCodeRespInnerFrame responseInnerFrame = new A1TernaryCodeRespInnerFrame().transformFrame(commonFrame1.getPayload());
        if (!MainBoardInvokeSyncService.getInstance().getProductKey().equals(responseInnerFrame.getTernaryCode())) {
            throw new BusinessException("设备配置ProductKey失败");
        }
        // 5   配置Mac②
        WrapResponseCommonFrame<A1TernaryCodeRespInnerFrame> responseCommonFrame = MainBoardInvokeSyncService.getInstance().sendRRPC(baseMac, FrameBuilder.builderA1().innerFrame(new A1TernaryCodeReqInnerFrame(uniqueMac)).orderType(A1OrderEnum.REQUEST_SET_DEVICE_NAME.getCode()).build(), A1TernaryCodeRespInnerFrame.class);
        A1TernaryCodeRespInnerFrame deviceNameFrame = responseCommonFrame.getResponseInnerFrame();
        if (!uniqueMac.equals(deviceNameFrame.getTernaryCode())) {
        IRequestFrame build2 = FrameBuilder.builderA1().innerFrame(new A1TernaryCodeReqInnerFrame(uniqueMac)).orderType(A1OrderEnum.REQUEST_SET_DEVICE_NAME.getCode()).build();
        CommonFrame commonFrame2 = MainBoardInvokeSyncService.getInstance().sendRRPC(baseMac, build2);
        //存储振记录
        StoreOperationRecordsUtils.storeInnerFrameData(baseMac, "设备配置名", build2, commonFrame2);
        A1TernaryCodeRespInnerFrame a1TernaryCodeRespInnerFrame = new A1TernaryCodeRespInnerFrame().transformFrame(commonFrame2.getPayload());
        if (!uniqueMac.equals(a1TernaryCodeRespInnerFrame.getTernaryCode())) {
            throw new BusinessException("设备配置名失败");
        }
        // 6  配置Mac③
        WrapResponseCommonFrame<A1TernaryCodeRespInnerFrame> wrapResponseCommonFrame = MainBoardInvokeSyncService.getInstance().sendRRPC(baseMac, FrameBuilder.builderA1().innerFrame(new A1TernaryCodeReqInnerFrame(deviceDetail.getDeviceSecret())).orderType(A1OrderEnum.REQUEST_SET_DEVICE_SECRET.getCode()).build(), A1TernaryCodeRespInnerFrame.class);
        A1TernaryCodeRespInnerFrame deviceSecretFrame = wrapResponseCommonFrame.getResponseInnerFrame();
        IRequestFrame build3 = FrameBuilder.builderA1().innerFrame(new A1TernaryCodeReqInnerFrame(deviceDetail.getDeviceSecret())).orderType(A1OrderEnum.REQUEST_SET_DEVICE_SECRET.getCode()).build();
        CommonFrame commonFrame3 = MainBoardInvokeSyncService.getInstance().sendRRPC(baseMac, build3);
        //存储振记录
        StoreOperationRecordsUtils.storeInnerFrameData(baseMac, "设备密钥", build3, commonFrame3);
        A1TernaryCodeRespInnerFrame deviceSecretFrame = new A1TernaryCodeRespInnerFrame().transformFrame(commonFrame3.getPayload());
        if (!deviceDetail.getDeviceSecret().equals(deviceSecretFrame.getTernaryCode())) {
            throw new BusinessException("设备密钥失败");
        }
        // 7  重启设备  并使用新的Mac
        CommonFrame rebootFrame = MainBoardInvokeSyncService.getInstance().sendRRPC(baseMac, FrameBuilder.builderA2().innerFrame(new EmptyRequestInnerFrame()).orderType(A2OrderEnum.REQUEST_MAIN_BOARD_RESET.getCode()).build());
        IRequestFrame build4 = FrameBuilder.builderA2().innerFrame(new EmptyRequestInnerFrame()).orderType(A2OrderEnum.REQUEST_MAIN_BOARD_RESET.getCode()).build();
        CommonFrame rebootFrame = MainBoardInvokeSyncService.getInstance().sendRRPC(baseMac, build4);
        //存储振记录
        StoreOperationRecordsUtils.storeInnerFrameData(baseMac, "重启设备", build4, rebootFrame);
        if ("00".equals(rebootFrame.getPayload())) {
            //  pole.setDeviceCode(uniqueMac);