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