From a1a81473ab7c7c73016b1b3b79fae0beac571704 Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: Sat, 02 Nov 2024 14:33:21 +0800
Subject: [PATCH] 优化

---
 ard-work/pom.xml                                                                                  |   32 ----------
 ard-work/src/main/java/com/ard/tianyu/netty/handler/MessageProtocolDecoder.java                   |   16 ++++-
 ard-work/src/main/java/com/ard/tianyu/netty/command/real/UavStateCmd.java                         |   14 ++--
 ard-work/src/main/java/com/ard/tianyu/model/dto/converter/realdata/UavTelemetryDataConverter.java |    3 
 ard-work/src/main/java/com/ard/tianyu/service/impl/TyServiceImpl.java                             |   28 +++-----
 ard-work/src/main/java/com/ard/tianyu/netty/command/real/UavTelemetryDataCmd.java                 |   13 ++--
 ard-work/src/main/java/com/ard/tianyu/model/dto/converter/realdata/UavSignalInfoConverter.java    |    2 
 ard-work/src/main/java/com/ard/tianyu/model/dto/converter/realdata/UavStateConverter.java         |    2 
 ard-work/src/main/java/com/ard/tianyu/netty/command/real/SignalInfoCmd.java                       |    6 +
 ard-work/src/main/java/com/ard/tianyu/config/TyConfiguration.java                                 |    9 +--
 10 files changed, 46 insertions(+), 79 deletions(-)

diff --git a/ard-work/pom.xml b/ard-work/pom.xml
index 2214e30..8506719 100644
--- a/ard-work/pom.xml
+++ b/ard-work/pom.xml
@@ -46,7 +46,7 @@
         <dependency>
             <groupId>org.projectlombok</groupId>
             <artifactId>lombok</artifactId>
-            <scope>provided</scope>
+            <version>1.18.28</version>
         </dependency>
 
         <!--protobuf的依赖-->
@@ -61,35 +61,5 @@
             <artifactId>spring-boot-starter-websocket</artifactId>
         </dependency>
     </dependencies>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-maven-plugin</artifactId>
-                <version>2.5.15</version>
-                <configuration>
-                    <fork>true</fork> <!-- 如果没有该配置,devtools不会生效 -->
-                </configuration>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>repackage</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>   
-                <groupId>org.apache.maven.plugins</groupId>   
-                <artifactId>maven-war-plugin</artifactId>   
-                <version>3.1.0</version>   
-                <configuration>
-                    <failOnMissingWebXml>false</failOnMissingWebXml>
-                    <warName>${project.artifactId}</warName>
-                </configuration>   
-           </plugin>   
-        </plugins>
-        <finalName>${project.artifactId}</finalName>
-    </build>
 
 </project>
\ No newline at end of file
diff --git a/ard-work/src/main/java/com/ard/tianyu/config/TyConfiguration.java b/ard-work/src/main/java/com/ard/tianyu/config/TyConfiguration.java
index ebb706a..5d97f9c 100644
--- a/ard-work/src/main/java/com/ard/tianyu/config/TyConfiguration.java
+++ b/ard-work/src/main/java/com/ard/tianyu/config/TyConfiguration.java
@@ -9,7 +9,6 @@
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import org.springframework.context.annotation.Configuration;
 import org.springframework.util.DigestUtils;
-
 import javax.annotation.Resource;
 import java.util.Date;
 
@@ -45,11 +44,9 @@
     private String encryptstr;
 
     public String getEncryptStr() {
-        String sb = new StringBuilder()
-                .append(accesskeyid)
-                .append(accesskeysecret)
-                .append(getTimeStamp())
-                .toString();
+        String sb = accesskeyid +
+                accesskeysecret +
+                getTimeStamp();
         encryptstr = DigestUtils.md5DigestAsHex(sb.getBytes());
         return encryptstr;
     }
diff --git a/ard-work/src/main/java/com/ard/tianyu/model/dto/converter/UavSignalInfoConverter.java b/ard-work/src/main/java/com/ard/tianyu/model/dto/converter/realdata/UavSignalInfoConverter.java
similarity index 90%
rename from ard-work/src/main/java/com/ard/tianyu/model/dto/converter/UavSignalInfoConverter.java
rename to ard-work/src/main/java/com/ard/tianyu/model/dto/converter/realdata/UavSignalInfoConverter.java
index 41f1ec5..241e93c 100644
--- a/ard-work/src/main/java/com/ard/tianyu/model/dto/converter/UavSignalInfoConverter.java
+++ b/ard-work/src/main/java/com/ard/tianyu/model/dto/converter/realdata/UavSignalInfoConverter.java
@@ -1,4 +1,4 @@
-package com.ard.tianyu.model.dto.converter;
+package com.ard.tianyu.model.dto.converter.realdata;
 
 import com.ard.tianyu.model.dto.signal.SignalInfo;
 import com.ard.tianyu.netty.protobuf.TelemetryDataPB;
diff --git a/ard-work/src/main/java/com/ard/tianyu/model/dto/converter/UavStateConverter.java b/ard-work/src/main/java/com/ard/tianyu/model/dto/converter/realdata/UavStateConverter.java
similarity index 98%
rename from ard-work/src/main/java/com/ard/tianyu/model/dto/converter/UavStateConverter.java
rename to ard-work/src/main/java/com/ard/tianyu/model/dto/converter/realdata/UavStateConverter.java
index 08175e0..4b4e9cb 100644
--- a/ard-work/src/main/java/com/ard/tianyu/model/dto/converter/UavStateConverter.java
+++ b/ard-work/src/main/java/com/ard/tianyu/model/dto/converter/realdata/UavStateConverter.java
@@ -1,4 +1,4 @@
-package com.ard.tianyu.model.dto.converter;
+package com.ard.tianyu.model.dto.converter.realdata;
 
 import com.ard.tianyu.model.dto.state.*;
 import com.ard.tianyu.netty.protobuf.TelemetryDataPB;
diff --git a/ard-work/src/main/java/com/ard/tianyu/model/dto/converter/UavTelemetryDataConverter.java b/ard-work/src/main/java/com/ard/tianyu/model/dto/converter/realdata/UavTelemetryDataConverter.java
similarity index 85%
rename from ard-work/src/main/java/com/ard/tianyu/model/dto/converter/UavTelemetryDataConverter.java
rename to ard-work/src/main/java/com/ard/tianyu/model/dto/converter/realdata/UavTelemetryDataConverter.java
index 4e3d342..3eb2379 100644
--- a/ard-work/src/main/java/com/ard/tianyu/model/dto/converter/UavTelemetryDataConverter.java
+++ b/ard-work/src/main/java/com/ard/tianyu/model/dto/converter/realdata/UavTelemetryDataConverter.java
@@ -1,6 +1,5 @@
-package com.ard.tianyu.model.dto.converter;
+package com.ard.tianyu.model.dto.converter.realdata;
 
-import com.ard.tianyu.model.dto.state.UavState;
 import com.ard.tianyu.model.dto.telemetry.TelemetryData;
 import com.ard.tianyu.netty.protobuf.TelemetryDataPB;
 import org.springframework.beans.BeanUtils;
diff --git a/ard-work/src/main/java/com/ard/tianyu/netty/command/real/SignalInfoCmd.java b/ard-work/src/main/java/com/ard/tianyu/netty/command/real/SignalInfoCmd.java
index ed767cf..57e76ce 100644
--- a/ard-work/src/main/java/com/ard/tianyu/netty/command/real/SignalInfoCmd.java
+++ b/ard-work/src/main/java/com/ard/tianyu/netty/command/real/SignalInfoCmd.java
@@ -1,5 +1,6 @@
 package com.ard.tianyu.netty.command.real;
 
+import com.ard.tianyu.model.dto.signal.SignalInfo;
 import com.ard.tianyu.netty.command.BaseCmd;
 import com.ard.tianyu.netty.protobuf.TelemetryDataPB;
 import io.netty.buffer.ByteBuf;
@@ -8,12 +9,13 @@
 @Data
 public class SignalInfoCmd extends BaseCmd {
     private int delayTime;
-    private TelemetryDataPB.SignalInfo signalInfo;
+    private SignalInfo signalInfo;
 
     // 构造函数
-    public SignalInfoCmd(TelemetryDataPB.SignalInfo signalInfo) {
+    public SignalInfoCmd(SignalInfo signalInfo) {
         setDataHeader((short) 0x6A77); // 设置帧头
        // setDataLength((short) (1 + uavState.toByteArray().length)); // 数据长度
+        setBoxSn(signalInfo.getBoxSn().getBytes());
         setCmdCode((byte) 0x0C); // 设置命令编号
         this.signalInfo = signalInfo;
     }
diff --git a/ard-work/src/main/java/com/ard/tianyu/netty/command/real/UavStateCmd.java b/ard-work/src/main/java/com/ard/tianyu/netty/command/real/UavStateCmd.java
index ae78dbe..8cabfc5 100644
--- a/ard-work/src/main/java/com/ard/tianyu/netty/command/real/UavStateCmd.java
+++ b/ard-work/src/main/java/com/ard/tianyu/netty/command/real/UavStateCmd.java
@@ -1,25 +1,23 @@
 package com.ard.tianyu.netty.command.real;
 
+import com.ard.tianyu.model.dto.state.UavState;
 import com.ard.tianyu.netty.command.BaseCmd;
 import com.ard.tianyu.netty.protobuf.TelemetryDataPB;
 import io.netty.buffer.ByteBuf;
+import lombok.Data;
 
+@Data
 public class UavStateCmd extends BaseCmd {
-    private TelemetryDataPB.UavState uavState;  // ProtoBuf 数据类
+    private UavState uavState;  // ProtoBuf 数据类
 
     // 构造函数
-    public UavStateCmd(TelemetryDataPB.UavState uavState) {
+    public UavStateCmd(UavState uavState) {
         setDataHeader((short) 0x6A77); // 设置帧头
+        setBoxSn(uavState.getBoxSn().getBytes()); // 设置云盒编号
        // setDataLength((short) (1 + uavState.toByteArray().length)); // 数据长度
         setCmdCode((byte) 0xA8); // 设置命令编号
         this.uavState = uavState;
     }
-
-    // 获取无人机状态数据
-    public TelemetryDataPB.UavState getUavState() {
-        return uavState;
-    }
-
     // 实现 encode 方法,如果需要
     @Override
     public void encode(ByteBuf out) {
diff --git a/ard-work/src/main/java/com/ard/tianyu/netty/command/real/UavTelemetryDataCmd.java b/ard-work/src/main/java/com/ard/tianyu/netty/command/real/UavTelemetryDataCmd.java
index e2a8189..5834849 100644
--- a/ard-work/src/main/java/com/ard/tianyu/netty/command/real/UavTelemetryDataCmd.java
+++ b/ard-work/src/main/java/com/ard/tianyu/netty/command/real/UavTelemetryDataCmd.java
@@ -1,8 +1,10 @@
 package com.ard.tianyu.netty.command.real;
 
+import com.ard.tianyu.model.dto.telemetry.TelemetryData;
 import com.ard.tianyu.netty.command.BaseCmd;
 import com.ard.tianyu.netty.protobuf.TelemetryDataPB;
 import io.netty.buffer.ByteBuf;
+import lombok.Data;
 
 /**
  * UavDataCommand
@@ -10,19 +12,16 @@
  * @author liusuyi
  * @date 2024年10月23日9:33
  **/
+@Data
 public class UavTelemetryDataCmd extends BaseCmd {
-    private TelemetryDataPB.TelemetryData telemetryData;
+    private TelemetryData telemetryData;
     // 构造函数
-    public UavTelemetryDataCmd(TelemetryDataPB.TelemetryData telemetryData) {
+    public UavTelemetryDataCmd(TelemetryData telemetryData) {
         setDataHeader((short) 0x6A77); // 设置帧头
         // setDataLength((short) (1 + uavState.toByteArray().length)); // 数据长度
+        setBoxSn(telemetryData.getBoxSn().getBytes());
         setCmdCode((byte) 0xA9); // 设置命令编号
         this.telemetryData = telemetryData;
-    }
-
-    // 获取无人机状态数据
-    public TelemetryDataPB.TelemetryData getTelemetryData() {
-        return telemetryData;
     }
 
     // 实现 encode 方法,如果需要
diff --git a/ard-work/src/main/java/com/ard/tianyu/netty/handler/MessageProtocolDecoder.java b/ard-work/src/main/java/com/ard/tianyu/netty/handler/MessageProtocolDecoder.java
index d14dbd5..3417645 100644
--- a/ard-work/src/main/java/com/ard/tianyu/netty/handler/MessageProtocolDecoder.java
+++ b/ard-work/src/main/java/com/ard/tianyu/netty/handler/MessageProtocolDecoder.java
@@ -1,6 +1,12 @@
 package com.ard.tianyu.netty.handler;// MessageProtocolDecoder.java
 
 import com.ard.common.utils.ByteUtils;
+import com.ard.tianyu.model.dto.converter.realdata.UavSignalInfoConverter;
+import com.ard.tianyu.model.dto.converter.realdata.UavStateConverter;
+import com.ard.tianyu.model.dto.converter.realdata.UavTelemetryDataConverter;
+import com.ard.tianyu.model.dto.signal.SignalInfo;
+import com.ard.tianyu.model.dto.state.UavState;
+import com.ard.tianyu.model.dto.telemetry.TelemetryData;
 import com.ard.tianyu.netty.command.BaseCmd;
 import com.ard.tianyu.netty.command.camera.CameraModeReplyCmd;
 import com.ard.tianyu.netty.command.camera.CapturePicReplyCmd;
@@ -70,15 +76,16 @@
             case (byte) 0xA8:
                 byte[] uavStatus = new byte[dataLength - 1];
                 in.readBytes(uavStatus);  // 读取 ProtoBuf 数据
-
-                TelemetryDataPB.UavState uavState = TelemetryDataPB.UavState.parseFrom(uavStatus);
+                TelemetryDataPB.UavState uavStatePB = TelemetryDataPB.UavState.parseFrom(uavStatus);
+                UavState uavState = UavStateConverter.convertProtoToEntity(uavStatePB);
                 baseCmd = new UavStateCmd(uavState);
                 log.debug("无人机状态数据: {}", uavState.getBoxSn());
                 break;
             case (byte) 0xA9:
                 byte[] telemetryDataBytes = new byte[dataLength - 1];
                 in.readBytes(telemetryDataBytes);
-                TelemetryDataPB.TelemetryData telemetryData = TelemetryDataPB.TelemetryData.parseFrom(telemetryDataBytes);
+                TelemetryDataPB.TelemetryData telemetryDataPB = TelemetryDataPB.TelemetryData.parseFrom(telemetryDataBytes);
+                TelemetryData telemetryData = UavTelemetryDataConverter.convertProtoToEntity(telemetryDataPB);
                 baseCmd = new UavTelemetryDataCmd(telemetryData);
                 log.debug("遥测数据: {}", telemetryData.getBoxSn());
                 break;
@@ -88,7 +95,8 @@
                 in.readBytes(signalInfoBytes);
                 signalInfoBytes = new byte[dataLength - 20];
                 in.readBytes(signalInfoBytes);
-                TelemetryDataPB.SignalInfo signalInfo = TelemetryDataPB.SignalInfo.parseFrom(signalInfoBytes);
+                TelemetryDataPB.SignalInfo signalInfoPB = TelemetryDataPB.SignalInfo.parseFrom(signalInfoBytes);
+                SignalInfo signalInfo =UavSignalInfoConverter.convertProtoToEntity(signalInfoPB);
                 baseCmd = new SignalInfoCmd(signalInfo);
                 log.debug("信道质量数据: {}", delayTime);
                 break;
diff --git a/ard-work/src/main/java/com/ard/tianyu/service/impl/TyServiceImpl.java b/ard-work/src/main/java/com/ard/tianyu/service/impl/TyServiceImpl.java
index b0ef261..6f6cdb6 100644
--- a/ard-work/src/main/java/com/ard/tianyu/service/impl/TyServiceImpl.java
+++ b/ard-work/src/main/java/com/ard/tianyu/service/impl/TyServiceImpl.java
@@ -14,9 +14,9 @@
 import com.ard.tianyu.model.dto.control.AbsAngleControlDTO;
 import com.ard.tianyu.model.dto.control.AngleControlDTO;
 import com.ard.tianyu.model.dto.control.SpeedControlDTO;
-import com.ard.tianyu.model.dto.converter.UavSignalInfoConverter;
-import com.ard.tianyu.model.dto.converter.UavStateConverter;
-import com.ard.tianyu.model.dto.converter.UavTelemetryDataConverter;
+import com.ard.tianyu.model.dto.converter.realdata.UavSignalInfoConverter;
+import com.ard.tianyu.model.dto.converter.realdata.UavStateConverter;
+import com.ard.tianyu.model.dto.converter.realdata.UavTelemetryDataConverter;
 import com.ard.tianyu.model.dto.converter.wayline.PlanLineDataConverter;
 import com.ard.tianyu.model.dto.manual.*;
 import com.ard.tianyu.model.dto.settings.ReturnHeightSettingDTO;
@@ -58,10 +58,7 @@
 import javax.annotation.Resource;
 import java.net.InetSocketAddress;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.List;
-import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
 
 /**
  * TyServiceImpl
@@ -599,26 +596,23 @@
             case (byte) 0xA8:
                 // 处理无人机状态消息
                 UavStateCmd uavStateCmd = (UavStateCmd) tyCommand;
-                UavState uavState = UavStateConverter.convertProtoToEntity(uavStateCmd.getUavState());
-                UavStateCache.putUavState(uavState);
-                logPrint("无人机状态", uavState.getBoxSn());
-               // WebSocketUtil.sendMessageAll(uavState);
+                UavStateCache.putUavState(uavStateCmd.getUavState());
+                logPrint("无人机状态", uavStateCmd.getUavState().getBoxSn());
+                WebSocketUtil.sendMessageAll(uavStateCmd.getUavState());
                 break;
             case (byte) 0xA9:
                 // 处理无人机遥测消息
                 UavTelemetryDataCmd uavTelemetryDataCmd = (UavTelemetryDataCmd) tyCommand;
-                TelemetryData telemetryData = UavTelemetryDataConverter.convertProtoToEntity(uavTelemetryDataCmd.getTelemetryData());
-                UavTelemetryDataCache.putUavTelemetryData(telemetryData);
-                logPrint("无人机遥测", telemetryData.getBoxSn());
-                WebSocketUtil.sendMessageAll(telemetryData);
+                UavTelemetryDataCache.putUavTelemetryData(uavTelemetryDataCmd.getTelemetryData());
+                logPrint("无人机遥测", uavTelemetryDataCmd.getTelemetryData().getBoxSn());
+                WebSocketUtil.sendMessageAll(uavTelemetryDataCmd.getTelemetryData());
                 break;
 
             case (byte) 0x0C:
                 // 处理无人机信道质量数据
                 SignalInfoCmd signalInfoCmd = (SignalInfoCmd) tyCommand;
-                SignalInfo signalInfo = UavSignalInfoConverter.convertProtoToEntity(signalInfoCmd.getSignalInfo());
-                UavSignalInfoCache.putUavSignalInfoCache(signalInfo);
-                logPrint("无人机信道质量", signalInfo.getBoxSn());
+                UavSignalInfoCache.putUavSignalInfoCache(signalInfoCmd.getSignalInfo());
+                logPrint("无人机信道质量", signalInfoCmd.getSignalInfo().getBoxSn());
                 break;
             case (byte) 0xD1:
                 // 处理无人机

--
Gitblit v1.9.3