1
0

5 کامیت‌ها 6d24ece732 ... b09e61f5b9

نویسنده SHA1 پیام تاریخ
  allen b09e61f5b9 fix bugs 3 هفته پیش
  allen 02747e755d remove some log 1 ماه پیش
  allen dfaaabf2a2 fix bug 1 ماه پیش
  allen c105e92964 Merge branch 'dev-rmd' 1 ماه پیش
  allen 04abd0d14a add log 1 ماه پیش

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1228 - 0
sql/uav_ps20250603.sql


+ 1 - 1
uavps-admin/src/main/resources/application.yml

@@ -7,7 +7,7 @@ ruoyi:
   # 版权年份
   copyrightYear: 2024
   # 文件路径 示例( Windows配置D:/ruoyi/uploadPath,Linux配置 /home/ruoyi/uploadPath)
-  profile: D:/UavPs/uploadPath
+  profile: D:/uavps/uploadPath
   # 获取ip地址开关
   addressEnabled: false
   # 验证码类型 math 数字计算 char 字符验证

+ 10 - 0
uavps-framework/src/main/java/com/uavps/framework/udp/TaskInfo.java

@@ -25,6 +25,8 @@ public enum TaskInfo {
     private double latitude;
     private Long bizId;
     private String filePath;
+
+    private Long initMilli = 0L;
     private Long lastTime = 0L;
 
     private FileWriterThread writerThread;
@@ -178,6 +180,14 @@ public enum TaskInfo {
         return initCenterPixel;
     }
 
+    public Long getInitMilli() {
+        return initMilli;
+    }
+
+    public void setInitMilli(Long initMilli) {
+        this.initMilli = initMilli;
+    }
+
     public Long getLastTime() {
         return lastTime;
     }

+ 1 - 1
uavps-framework/src/main/java/com/uavps/framework/udp/UdpClientService.java

@@ -31,7 +31,7 @@ public class UdpClientService {
         try {
             DatagramSocket socket = new DatagramSocket();
             InetAddress address = InetAddress.getByName("localhost");
-
+            logger.info("Sent message: {},", message);
             byte[] messageBytes = message.getBytes(StandardCharsets.UTF_8);
             int totalBytes = messageBytes.length;
             int totalChunks = (int) Math.ceil((double) totalBytes / DATA_SIZE);

+ 9 - 6
uavps-framework/src/main/java/com/uavps/framework/udp/UdpServerService.java

@@ -50,31 +50,34 @@ public class UdpServerService {
         try {
             //创建一个服务端对象,注册端口
             //创建一个数据包对象,用于接收数据
-            byte[] data = new byte[1024];
+            byte[] data = new byte[4096];
             DatagramPacket packet = new DatagramPacket(data, data.length);
 
             String uavData = "";
-            long initMilli = Instant.now().toEpochMilli();
 
-            while (true) {
+            long initMilli = 0;
+            long epochMilli = 0;
 
+            while (true) {
+                epochMilli = Instant.now().toEpochMilli();
                 //使用数据包接收客户端发送的数据
                 INSTANCE.receive(packet);
                 // 设置初始时间,用于计算每个数据的时间差
                 if(TaskInfo.INSTANCE.getInitFlag()){
-                    initMilli = Instant.now().toEpochMilli();
+                    initMilli = epochMilli;
+                    TaskInfo.INSTANCE.setInitMilli(initMilli);
                     log.info("任务Id:{},任务开始,开始时间是:{}", TaskInfo.INSTANCE.getBizId(), initMilli);
                 }
                 uavData = new String(data, 0, packet.getLength());
                 byte[] remoteData = UdpDataUtils.hexStringToBytes(uavData);
                 // 将日志条目放入队列
-                long lastTime = Instant.now().toEpochMilli() - initMilli;
+                long lastTime = epochMilli - initMilli;
                 String jsonResult = UdpUtils.getJson(remoteData, lastTime);
                 if(StringUtils.isEmpty(jsonResult)){ // 如果解析完数据为null 则跳过
                     continue;
                 }
                 TaskInfo.INSTANCE.getLogQueue().add(new TaskInfo.LogEntry(jsonResult, lastTime));
-                TaskInfo.INSTANCE.setLastTime(lastTime);
+                TaskInfo.INSTANCE.setLastTime(epochMilli);
                 session.getBasicRemote().sendText(jsonResult);
             }
         } catch (IOException e) {

+ 3 - 3
uavps-framework/src/main/java/com/uavps/framework/udp/utils/UdpDataUtils.java

@@ -97,7 +97,7 @@ public class UdpDataUtils {
             udpData.setPlatformAircraft(platformAircraft);
             return udpData;
         } else {
-            logger.warn("parseFrame warn, frame: {}", frame);
+            logger.warn("parseFrame warn, frame: {}, head: {}", frame,start_1+" " + start_2);
             return null;
         }
 
@@ -112,7 +112,7 @@ public class UdpDataUtils {
         List<Aircraft> aircrafts = new ArrayList<>();
         Aircraft aircraft = null;
         // 目标 2~30 的引导数据
-        for (int i = 0; i < 31; i++) {
+        for (int i = 0; i < (data.length/len); i++) {
             byte[] subData = BitUtils.copyFrom(data, start + len * i, len);
             //System.out.println(BitUtils.toHexString(subData));
             aircraft = parseTargetSubData(subData);
@@ -133,7 +133,7 @@ public class UdpDataUtils {
         List<Aircraft> aircrafts = new ArrayList<>();
         Aircraft aircraft = null;
         // 目标 2~30 的引导数据
-        for (int i = 0; i < 31; i++) {
+        for (int i = 0; i < (data.length/len); i++) {
             byte[] subData = BitUtils.copyFrom(data, start + len * i, len);
             aircraft = parseNoiseSubData(subData);
             if (aircraft == null) {

+ 6 - 2
uavps-framework/src/main/java/com/uavps/framework/websocket/WebSocketServer.java

@@ -24,6 +24,8 @@ import java.io.IOException;
 import java.time.Instant;
 import java.util.Date;
 import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
 
 /**
@@ -54,10 +56,11 @@ public class WebSocketServer {
     @OnOpen
     public void onOpen(Session session) throws Exception {
         log.info("\nWebSocket建立连接 - {}", session);
+        ExecutorService singleThreadExecutor = Executors.newSingleThreadExecutor();
         //启动服务,接收算法返回的数据
         CompletableFuture.runAsync(() -> {
             udpServerService.receive(session);
-        });
+        },singleThreadExecutor);
 
         //发送初始化参数给算法
         //String str = "BB 14 03 01 00 01 01 00 D2 57 05 08 B4 18 6D 2F 64 00 0A 00 14 00 0A 00 15 CD 5B 07 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 44 1B";
@@ -214,7 +217,8 @@ public class WebSocketServer {
                     assert json != null;
                     udpClientService.send(json);
                     uavpsTask = uavpsTaskService.selectUavpsTaskByBizId(bizId);
-                    uavpsTask.setEndTime(new Date());
+                    uavpsTask.setEndTime(new Date(TaskInfo.INSTANCE.getLastTime()));
+                    uavpsTask.setStartTime(new Date(TaskInfo.INSTANCE.getInitMilli()));
                     uavpsTask.setStatus(UavpsTask.COMPLETED);
                     uavpsTaskService.updateUavpsTask(uavpsTask);
                 } else {

+ 1 - 1
uavps-system/src/main/java/com/uavps/system/domain/UavpsTask.java

@@ -59,7 +59,7 @@ public class UavpsTask extends BaseEntity
     private String multiTarget;
 
     /** 是否智能算法,1是,0不是 */
-    private String smartAlgorithm;
+    private String smartAlgorithm = "0";
 
     /** 噪声类型 */
     private String noiseType;

برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است