From e55c8b0a92eb9715edd90c31dfd4de51a47b588b Mon Sep 17 00:00:00 2001
From: liuhaonan <31457034@qq.com>
Date: 星期五, 04 十一月 2022 17:40:08 +0800
Subject: [PATCH] changes

---
 ximon-admin/src/main/java/com/sandu/ximon/admin/controller/MQTTTestController.java |   91 +++++++++++++++++++++++++++++++++++----------
 1 files changed, 70 insertions(+), 21 deletions(-)

diff --git a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/MQTTTestController.java b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/MQTTTestController.java
index cf19ad6..f55087d 100644
--- a/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/MQTTTestController.java
+++ b/ximon-admin/src/main/java/com/sandu/ximon/admin/controller/MQTTTestController.java
@@ -1,24 +1,35 @@
 package com.sandu.ximon.admin.controller;
 
-import com.baomidou.mybatisplus.core.toolkit.StringUtils;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import cn.hutool.core.util.HexUtil;
 import com.github.pagehelper.util.StringUtil;
-import com.sandu.common.domain.CommonPage;
 import com.sandu.common.domain.ResponseVO;
 import com.sandu.common.execption.BusinessException;
-import com.sandu.common.object.BaseConditionVO;
 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.MonitorParam;
+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;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.PostMapping;
+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娴嬭瘯
@@ -37,22 +48,19 @@
      *
      * @return
      */
-    @GetMapping("/sendRRPC")
-    public ResponseVO<Object> listMonitorByKeyword(@RequestParam(value = "poleId", required = false) Long poleId,
-                                                   @RequestParam(value = "frameStr", required = false) String frameStr) {
-        if (poleId == null) {
-            throw new BusinessException("鐏潌ID涓嶈兘涓虹┖锛�");
-        }
-
-        if (StringUtil.isEmpty(frameStr)) {
-            throw new BusinessException("璇锋眰甯ф暟鎹笉鑳戒负绌猴紒");
-        }
+    @PostMapping("/sendRRPC")
+    public ResponseVO<Object> sendRRPC(@RequestBody @Validated MQTTTestPrarm mqttTestPrarm) {
+        /**
+         * 娴嬭瘯鏁版嵁
+         * poleMac:32313243305005ff3867ffff
+         * frameStr:/qUBAAv+AQAD//8ARZcUd7bYwso=
+         */
         if (!permissionConfig.check(MenuEnum.MQTT_TEST.getCode())) {
             return ResponseUtil.fail("缂哄皯瀵瑰簲鐢ㄦ埛鏉冮檺");
         }
 
 
-        Pole pole = SpringContextHolder.getBean(PoleService.class).getById(poleId);
+        Pole pole = SpringContextHolder.getBean(PoleService.class).getById(mqttTestPrarm.getPoleId());
         if (pole == null) {
             throw new BusinessException("鐏潌涓嶅瓨鍦紒");
         }
@@ -63,11 +71,52 @@
 
         InvokeParam param = new InvokeParam();
         param.setOperate("1001");
-        param.setFrame(frameStr);
+        //瀛楃涓瞞qttTestPrarm.getFrameStr()杞琤ase64
+        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);
     }
 }

--
Gitblit v1.9.3