| | |
| | | import com.sandu.common.service.impl.BaseServiceImpl; |
| | | import com.sandu.ximon.admin.manager.iot.frame.A1Frame; |
| | | 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.request.A1TernaryCodeReqInnerFrame; |
| | | import com.sandu.ximon.admin.manager.iot.frame.inner.request.A5LightResetReqInnerFrame; |
| | | import com.sandu.ximon.admin.manager.iot.frame.inner.request.EmptyRequestInnerFrame; |
| | | import com.sandu.ximon.admin.manager.iot.frame.inner.response.A1DeviceMacRespInnerFrame; |
| | | import com.sandu.ximon.admin.manager.iot.frame.inner.response.A1TernaryCodeRespInnerFrame; |
| | |
| | | import com.sandu.ximon.admin.manager.iot.rrpc.dto.WrapResponseCommonFrame; |
| | | import com.sandu.ximon.admin.manager.iot.rrpc.enums.A1OrderEnum; |
| | | import com.sandu.ximon.admin.manager.iot.rrpc.enums.A2OrderEnum; |
| | | import com.sandu.ximon.admin.manager.iot.rrpc.enums.A5OrderEnum; |
| | | import com.sandu.ximon.admin.manager.iot.rrpc.mainboard.MainBoardInvokeSyncService; |
| | | import com.sandu.ximon.admin.param.LampPostParam; |
| | | import com.sandu.ximon.admin.security.CountSet; |
| | | import com.sandu.ximon.admin.security.SecurityUtils; |
| | | import com.sandu.ximon.dao.domain.LampCount; |
| | | import com.sandu.ximon.dao.domain.LampPost; |
| | | import com.sandu.ximon.dao.enums.AdministratorEnums; |
| | | import com.sandu.ximon.dao.enums.LampPostTypeEnums; |
| | | import com.sandu.ximon.dao.mapper.ClientMapper; |
| | | import com.sandu.ximon.dao.mapper.LampPostMapper; |
| | | import lombok.AllArgsConstructor; |
| | |
| | | LampPost lampPost = new LampPost(); |
| | | // lampPost.setId(snowflake.nextId()); |
| | | Long userId = SecurityUtils.getUserId(); |
| | | lampPost.setUserId(userId); |
| | | if(AdministratorEnums.CUSTOMER.getCode().equals(SecurityUtils.getClientId())){ |
| | | lampPost.setUserId(userId); |
| | | } |
| | | boolean save=true; |
| | | lampPost.setLampId(countSet.aVoid()); |
| | | lampPost.setName(lampPostParam.getName()); |
| | | lampPost.setAddress(lampPostParam.getAddress()); |
| | |
| | | } else { |
| | | lampPost.setMacCode(lampPostParam.getMacCode()); |
| | | }*/ |
| | | String baseMac = "baseDevice"; |
| | | A1Frame a1Frame = new A1Frame(A1OrderEnum.REQUEST_READ_DEVICE_UNIQUE_MAC.getCode(), new EmptyRequestInnerFrame()); |
| | | CommonFrame commonFrame = MainBoardInvokeSyncService.getInstance() |
| | | .sendRRPC(baseMac, a1Frame); |
| | | if(commonFrame == null){ |
| | | throw new BusinessException("读å设å¤å¯ä¸ID失败"); |
| | | } |
| | | A1DeviceMacRespInnerFrame a1DeviceMacRespInnerFrame = new A1DeviceMacRespInnerFrame().transformFrame(commonFrame.getPayload()); |
| | | log.info(commonFrame.toString()); |
| | | String uniqueMac = a1DeviceMacRespInnerFrame.getMac(); |
| | | uniqueMac = uniqueMac.toLowerCase(); |
| | | log.info("å¯ä¸ç {}",uniqueMac); |
| | | |
| | | // 2 ä»é¿é注å |
| | | MainBoardInvokeSyncService.getInstance().registerDevice(uniqueMac); |
| | | if(LampPostTypeEnums.ENTITY_LIGHT_POLE.getCode().equals(lampPostParam.getDeviceType())){ |
| | | String baseMac = "baseDevice"; |
| | | A1Frame a1Frame = new A1Frame(A1OrderEnum.REQUEST_READ_DEVICE_UNIQUE_MAC.getCode(), new EmptyRequestInnerFrame()); |
| | | CommonFrame commonFrame = MainBoardInvokeSyncService.getInstance() |
| | | .sendRRPC(baseMac, a1Frame); |
| | | if(commonFrame == null){ |
| | | throw new BusinessException("读å设å¤å¯ä¸ID失败"); |
| | | } |
| | | A1DeviceMacRespInnerFrame a1DeviceMacRespInnerFrame = new A1DeviceMacRespInnerFrame().transformFrame(commonFrame.getPayload()); |
| | | log.info(commonFrame.toString()); |
| | | String uniqueMac = a1DeviceMacRespInnerFrame.getMac(); |
| | | uniqueMac = uniqueMac.toLowerCase(); |
| | | log.info("å¯ä¸ç {}",uniqueMac); |
| | | |
| | | // 3 è·å设å¤è¯¦æ
|
| | | QueryDeviceDetailResponse.Data deviceDetail = MainBoardInvokeSyncService.getInstance().queryDeviceDetail(uniqueMac, null); |
| | | if(deviceDetail == null){ |
| | | throw new BusinessException("注å失败"); |
| | | } |
| | | log.info(deviceDetail.toString()); |
| | | // 2 ä»é¿é注å |
| | | MainBoardInvokeSyncService.getInstance().registerDevice(uniqueMac); |
| | | |
| | | // 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(); |
| | | if(!MainBoardInvokeSyncService.getInstance().getProductKey().equals(responseInnerFrame.getTernaryCode())){ |
| | | throw new BusinessException("设å¤é
置ProductKey失败"); |
| | | } |
| | | // 3 è·å设å¤è¯¦æ
|
| | | QueryDeviceDetailResponse.Data deviceDetail = MainBoardInvokeSyncService.getInstance().queryDeviceDetail(uniqueMac, null); |
| | | if(deviceDetail == null){ |
| | | throw new BusinessException("注å失败"); |
| | | } |
| | | log.info(deviceDetail.toString()); |
| | | |
| | | // 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())){ |
| | | throw new BusinessException("设å¤é
ç½®å失败"); |
| | | } |
| | | // 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(); |
| | | if(!MainBoardInvokeSyncService.getInstance().getProductKey().equals(responseInnerFrame.getTernaryCode())){ |
| | | throw new BusinessException("设å¤é
置ProductKey失败"); |
| | | } |
| | | |
| | | // 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(); |
| | | if (!deviceDetail.getDeviceSecret().equals(deviceSecretFrame.getTernaryCode())) { |
| | | throw new BusinessException("设å¤å¯é¥å¤±è´¥"); |
| | | } |
| | | // 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())){ |
| | | throw new BusinessException("设å¤é
ç½®å失败"); |
| | | } |
| | | |
| | | boolean save=true; |
| | | // 7 éå¯è®¾å¤ å¹¶ä½¿ç¨æ°çMac |
| | | CommonFrame rebootFrame = MainBoardInvokeSyncService.getInstance() |
| | | .sendRRPC(baseMac, |
| | | FrameBuilder.builderA2().innerFrame(new EmptyRequestInnerFrame()) |
| | | .orderType(A2OrderEnum.REQUEST_MAIN_BOARD_RESET.getCode()).build()); |
| | | if (rebootFrame.getPayload().equals("00")) { |
| | | lampPost.setMacCode(uniqueMac); |
| | | save= save(lampPost); |
| | | // 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(); |
| | | if (!deviceDetail.getDeviceSecret().equals(deviceSecretFrame.getTernaryCode())) { |
| | | throw new BusinessException("设å¤å¯é¥å¤±è´¥"); |
| | | } |
| | | |
| | | System.out.println("é坿å"); |
| | | } |
| | | |
| | | // 7 éå¯è®¾å¤ å¹¶ä½¿ç¨æ°çMac |
| | | CommonFrame rebootFrame = MainBoardInvokeSyncService.getInstance() |
| | | .sendRRPC(baseMac, |
| | | FrameBuilder.builderA2().innerFrame(new EmptyRequestInnerFrame()) |
| | | .orderType(A2OrderEnum.REQUEST_MAIN_BOARD_RESET.getCode()).build()); |
| | | if ("00".equals(rebootFrame.getPayload())) { |
| | | lampPost.setMacCode(uniqueMac); |
| | | save= save(lampPost); |
| | | |
| | | System.out.println("é坿å"); |
| | | } |
| | | }/*else if(LampPostTypeEnums.VIRTUAL_LIGHT_POLE.getCode().equals(lampPostParam.getDeviceType())){lampPost.setMacCode(uniqueMac); |
| | | |
| | | }*/ |
| | | |
| | | save= save(lampPost); |
| | | |
| | | |
| | | //boolean save = save(lampPost); |
| | |
| | | lampPost.setMacCode(lampPostParam.getMacCode()); |
| | | }*/ |
| | | return updateById(lampPost); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * å é¤ç¯æ |
| | | * @param id |
| | | * @return |
| | | */ |
| | | public boolean deleteLampPost(Long id){ |
| | | LampPost byId = getById(id); |
| | | if (byId == null) { |
| | | throw new BusinessException("æªæ¾å°è¯¥ç¯æ"); |
| | | } |
| | | return removeById(id); |
| | | } |
| | | |
| | | |
| | |
| | | return list; |
| | | } |
| | | |
| | | public boolean LightReset(Long id){ |
| | | LampPost byId = getById(id); |
| | | String deviceName = byId.getMacCode(); |
| | | if (byId == null) { |
| | | throw new BusinessException("æªæ¾å°è¯¥ç¯æ"); |
| | | } |
| | | if(byId.getMacCode().isEmpty()){ |
| | | throw new BusinessException("è¯¥ç¯æMca为空"); |
| | | } |
| | | IRequestFrame build = FrameBuilder.builderA5() |
| | | .orderType(A5OrderEnum.REQUEST_LIGHT_DATA.getCode()) |
| | | .innerFrame(new A5LightResetReqInnerFrame()) |
| | | .build(); |
| | | CommonFrame commonFrame = MainBoardInvokeSyncService.getInstance() |
| | | .sendRRPC(deviceName, build); |
| | | System.out.println(commonFrame.toString()); |
| | | CommonFrame rebootFrame = MainBoardInvokeSyncService.getInstance() |
| | | .sendRRPC(deviceName, |
| | | FrameBuilder.builderA2().innerFrame(new EmptyRequestInnerFrame()) |
| | | .orderType(A2OrderEnum.REQUEST_MAIN_BOARD_RESET.getCode()).build()); |
| | | if ("00".equals(rebootFrame.getPayload())) { |
| | | System.out.println("é坿å"); |
| | | } |
| | | |
| | | CommonFrame result = MainBoardInvokeSyncService.getInstance() |
| | | .sendRRPC(deviceName, |
| | | FrameBuilder.builderA2().innerFrame(new EmptyRequestInnerFrame()) |
| | | .orderType(A2OrderEnum.REQUEST_MAIN_BOARD_RESET.getCode()).build()); |
| | | |
| | | boolean b=false; |
| | | if ("00".equals(result.getPayload())) { |
| | | byId.setMacCode(null); |
| | | b = updateById(byId); |
| | | System.out.println("é坿å"); |
| | | } |
| | | return b; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | } |