2021与蓝度共同重构项目,服务端
Van333
2022-12-29 727a69f859060093e685582fa10e5de82dcc138a
ximon-admin/src/main/java/com/sandu/ximon/admin/controller/MQTTTestController.java
@@ -1,17 +1,22 @@
package com.sandu.ximon.admin.controller;
import cn.hutool.core.util.HexUtil;
import com.github.pagehelper.util.StringUtil;
import com.sandu.common.domain.ResponseVO;
import com.sandu.common.execption.BusinessException;
import com.sandu.common.security.annotation.AnonymousAccess;
import com.sandu.common.util.ResponseUtil;
import com.sandu.common.util.SpringContextHolder;
import com.sandu.ximon.admin.manager.iot.frame.A1Frame;
import com.sandu.ximon.admin.manager.iot.frame.inner.request.MainBoardDataTransparentReqInnerFrame;
import com.sandu.ximon.admin.manager.iot.rrpc.dto.CommonFrame;
import com.sandu.ximon.admin.manager.iot.rrpc.dto.CommonRequest;
import com.sandu.ximon.admin.manager.iot.rrpc.dto.InvokeParam;
import com.sandu.ximon.admin.manager.iot.rrpc.enums.A1OrderEnum;
import com.sandu.ximon.admin.manager.iot.rrpc.mainboard.MainBoardInvokeSyncService;
import com.sandu.ximon.admin.param.MQTTTestPrarm;
import com.sandu.ximon.admin.security.PermissionConfig;
import com.sandu.ximon.admin.service.PoleService;
import com.sandu.ximon.admin.utils.Base64Util;
import com.sandu.ximon.dao.domain.Pole;
import com.sandu.ximon.dao.enums.MenuEnum;
import lombok.AllArgsConstructor;
@@ -20,6 +25,11 @@
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.nio.charset.StandardCharsets;
import java.util.Base64;
import java.util.LinkedHashMap;
import java.util.Map;
/**
 * MQTT测试
@@ -38,7 +48,6 @@
     *
     * @return
     */
    @AnonymousAccess
    @PostMapping("/sendRRPC")
    public ResponseVO<Object> sendRRPC(@RequestBody @Validated MQTTTestPrarm mqttTestPrarm) {
        /**
@@ -62,11 +71,52 @@
        InvokeParam param = new InvokeParam();
        param.setOperate("1001");
        param.setFrame(mqttTestPrarm.getFrameStr());
        //字符串mqttTestPrarm.getFrameStr()转base64
        String frame = Base64Util.toBase64Frame(mqttTestPrarm.getFrameStr());;
        System.out.println("frame: "+frame);
        param.setFrame(frame);
        CommonFrame commonFrame = MainBoardInvokeSyncService.getInstance().sendRRPC(pole.getDeviceCode(), param);
        if (commonFrame == null) {
            throw new BusinessException("请求失败,请重新请求");
        if (commonFrame == null || !commonFrame.isValidate()) {
            throw new BusinessException("响应数据校验失败,请重新请求数据!");
        }
        return ResponseUtil.success(commonFrame);
        String value = commonFrame.getConnectType() + commonFrame.getFunctionCode()
                + commonFrame.getOrderType() + commonFrame.getPayloadLength()
                + commonFrame.getPayload() + commonFrame.getCrc32();
        Map map = new LinkedHashMap();
        map.put("frame", value);
        return ResponseUtil.success(map);
    }
    @PostMapping("/transparentFrame")
    public ResponseVO<Object> transparentFrame(@RequestBody @Validated CommonRequest commonRequest) {
        boolean isAscii = commonRequest.getAscii().equals(0) ? false : true;
        Pole pole = SpringContextHolder.getBean(PoleService.class).getById(commonRequest.getPoleID());
        if (pole == null) {
            throw new BusinessException("灯杆不存在!");
        }
        if (StringUtil.isEmpty(pole.getDeviceCode())) {
            throw new BusinessException("灯杆MAC不能为空!");
        }
        MainBoardDataTransparentReqInnerFrame mainBoardDataTransparentReqInnerFrame = new MainBoardDataTransparentReqInnerFrame(commonRequest.getFrame(), isAscii);
        A1Frame a1Frame = new A1Frame(A1OrderEnum.TRANSPARENT.getCode(), mainBoardDataTransparentReqInnerFrame);
        System.out.println("a1Frame:" + a1Frame.getEncodeFrame());
        CommonFrame commonFrame = MainBoardInvokeSyncService.getInstance().sendRRPC(pole.getDeviceCode(), a1Frame);
        if (null == commonFrame) {
            throw new BusinessException("主板无响应!");
        }
        if (commonFrame == null || !commonFrame.isValidate()) {
            throw new BusinessException("响应数据校验失败,请重新请求数据!");
        }
        String value = commonFrame.getConnectType() + commonFrame.getFunctionCode()
                + commonFrame.getOrderType() + commonFrame.getPayloadLength()
                + commonFrame.getPayload() + commonFrame.getCrc32();
        Map map = new LinkedHashMap();
        map.put("frame", value);
        map.put("data", HexUtil.decodeHexStr(commonFrame.getPayload()));
        System.out.println(HexUtil.decodeHexStr(commonFrame.getPayload()));
        return ResponseUtil.success(map);
    }
}