Преглед изворни кода

Merge branch 'master' into dev-rmd

Rmengdi пре 2 дана
родитељ
комит
8a13e61135

+ 27 - 4
uavps-framework/src/main/java/com/uavps/framework/udp/TaskInfo.java

@@ -20,6 +20,9 @@ public enum TaskInfo {
     private boolean initFlag;
     private double conversionRate;
     private final int initCenterPixel = 500;
+
+    private double longitude;
+    private double latitude;
     private Long bizId;
     private String filePath;
     private Long lastTime = 0L;
@@ -43,7 +46,7 @@ public enum TaskInfo {
         this.x = 0f;
         this.y = 0f;
         this.initFlag = true;
-        this.conversionRate = 0.00018;
+        this.conversionRate = 10000;
         this.bizId = bizId;
         this.filePath = filePath;
         logQueue.clear();
@@ -147,9 +150,9 @@ public enum TaskInfo {
         return value * conversionRate;
     }
 
-    public double getConversionCenterPixel() {
-        return initCenterPixel * conversionRate;
-    }
+//    public double getConversionCenterPixel() {
+//        return initCenterPixel * conversionRate;
+//    }
 
     public Long getBizId() {
         return bizId;
@@ -195,6 +198,26 @@ public enum TaskInfo {
         this.writerThread = writerThread;
     }
 
+    public void setConversionRate(double conversionRate) {
+        this.conversionRate = conversionRate;
+    }
+
+    public double getLongitude() {
+        return longitude;
+    }
+
+    public void setLongitude(double longitude) {
+        this.longitude = longitude;
+    }
+
+    public double getLatitude() {
+        return latitude;
+    }
+
+    public void setLatitude(double latitude) {
+        this.latitude = latitude;
+    }
+
     // 显示坐标信息
     public void displayCoordinates() {
         System.out.printf("%s 坐标系 - X: %.2f, Y: %.2f (初始化标识: %s, 转化比率: %.6f)%n",

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

@@ -69,7 +69,7 @@ public class UdpServerService {
                 byte[] remoteData = UdpDataUtils.hexStringToBytes(uavData);
                 // 将日志条目放入队列
                 long lastTime = Instant.now().toEpochMilli() - initMilli;
-                String jsonResult = UdpUtils.getJson(remoteData);
+                String jsonResult = UdpUtils.getJson(remoteData, lastTime);
                 if(StringUtils.isEmpty(jsonResult)){ // 如果解析完数据为null 则跳过
                     continue;
                 }

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

@@ -107,28 +107,19 @@ public class UdpDataUtils {
         // 目标集群数据长度
         int len = 22;
         // 目标集群数据的起始位置
-        int start = 3;
+        int start = 2;
         byte[] mainData = BitUtils.copyFrom(data, start, len);
-        //System.out.println(BitUtils.toHexString(mainData));
         List<Aircraft> aircrafts = new ArrayList<>();
-        Aircraft aircraft = parseTargetSubData(mainData);
-        if (aircraft != null) {
-            aircraft.setAircraftNumber("1");
-            aircraft.setPiloted(true);
-            aircrafts.add(aircraft);
-        }
+        Aircraft aircraft = null;
         // 目标 2~30 的引导数据
-        Aircraft temp = null;
-        for (int i = 1; i < 31; i++) {
+        for (int i = 0; i < 31; i++) {
             byte[] subData = BitUtils.copyFrom(data, start + len * i, len);
             //System.out.println(BitUtils.toHexString(subData));
-            temp = parseTargetSubData(subData);
-            if (temp == null) {
+            aircraft = parseTargetSubData(subData);
+            if (aircraft == null) {
                 break;
             } else {
-                temp.setAircraftNumber(String.valueOf(i + 1));
-                temp.setPiloted(false);
-                aircrafts.add(temp);
+                aircrafts.add(aircraft);
             }
         }
         return aircrafts;
@@ -138,28 +129,17 @@ public class UdpDataUtils {
         // 噪声目标数据的长度
         int len = 32;
         // 噪声目标数据的起始位置
-        int start = 3;
-        byte[] mainData = BitUtils.copyFrom(data, start, len);
-        //System.out.println(BitUtils.toHexString(mainData));
+        int start = 2;
         List<Aircraft> aircrafts = new ArrayList<>();
-        Aircraft aircraft = parseNoiseSubData(mainData);
-        if (aircraft != null) {
-            aircraft.setAircraftNumber("1");
-            aircraft.setPiloted(true);
-            aircrafts.add(aircraft);
-        }
+        Aircraft aircraft = null;
         // 目标 2~30 的引导数据
-        Aircraft temp = null;
-        for (int i = 1; i < 31; i++) {
+        for (int i = 0; i < 31; i++) {
             byte[] subData = BitUtils.copyFrom(data, start + len * i, len);
-            //System.out.println(BitUtils.toHexString(subData));
-            temp = parseNoiseSubData(subData);
-            if (temp == null) {
+            aircraft = parseNoiseSubData(subData);
+            if (aircraft == null) {
                 break;
             } else {
-                temp.setAircraftNumber(String.valueOf(i + 1));
-                temp.setPiloted(false);
-                aircrafts.add(temp);
+                aircrafts.add(aircraft);
             }
         }
         return aircrafts;
@@ -220,70 +200,83 @@ public class UdpDataUtils {
 //        byte[] millisecondByte = BitUtils.copyFrom(data, 31, 1);
 //        int millisecond = BitUtils.toInt(millisecondByte);
 //        platformAircraft.setUtcTime(String.format("%04d/%02d/%02d %02d:%02d:%02d %03d", year, month, day, hour, min, second, millisecond));
+//        byte[] IdByte = BitUtils.copyFrom(data, 32, 4);
+//        Long id = BitUtils.toLong(IdByte);
+//        byte[] endByte = BitUtils.copyFrom(data, 37, 1);
+//        Integer end = BitUtils.toInt(endByte);
+        byte[] targetNumberByte = BitUtils.copyFrom(data, 38, 2);
+        short targetAircraftNumber = BitUtils.toShort(targetNumberByte);
+        if (targetAircraftNumber != 0){
+            platformAircraft.setTargetAircraftNumber(targetAircraftNumber + "");
+        }
+
         return platformAircraft;
     }
 
     public static Aircraft parseTargetSubData(byte[] data) {
-        byte[] idByte = BitUtils.copyFrom(data, 0, 2);
-        //System.out.println(BitUtils.toHexString(idByte));
+        byte[] afTypeByte = BitUtils.copyFrom(data, 0, 1);
+        String aircraftType = String.format("%01x", afTypeByte[0]);
+        byte[] idByte = BitUtils.copyFrom(data, 1, 2);
         short id = BitUtils.toShort(idByte);
         if (id == 0) return null;
         Aircraft af = new Aircraft();
+        af.setAircraftNumber(id+"");
         af.setType("R");
-        byte[] xByte = BitUtils.copyFrom(data, 2, 4);
+        af.setAircraftType(aircraftType);
+        byte[] xByte = BitUtils.copyFrom(data, 3, 4);
         //System.out.println(BitUtils.toHexString(xByte));
         double x = BitUtils.toInt(xByte) * 0.0000001;
         af.setLongitude(x);
-        byte[] yByte = BitUtils.copyFrom(data, 6, 4);
+        byte[] yByte = BitUtils.copyFrom(data, 7, 4);
         //System.out.println(BitUtils.toHexString(yByte));
         double y = BitUtils.toInt(yByte) * 0.0000001;
         double[] xy = WebMercator.lonLatToMeters(x, y);
         af.setCoordinateX(doubleToFloat(xy[0]));
         af.setCoordinateY(doubleToFloat(xy[1]));
         af.setLatitude(y);
-        byte[] hByte = BitUtils.copyFrom(data, 10, 2);
+        byte[] hByte = BitUtils.copyFrom(data, 11, 2);
         //System.out.println(BitUtils.toHexString(hByte));
         short h = BitUtils.toShort(hByte);
         af.setCoordinateZ(doubleToFloat(h));
         af.setAltitude(h);
-        byte[] dvByte = BitUtils.copyFrom(data, 12, 2);
+        byte[] dvByte = BitUtils.copyFrom(data, 13, 2);
         //System.out.println(BitUtils.toHexString(dvByte));
         double dv = BitUtils.toShort(dvByte) * 0.1;
         af.setVelocityX(doubleToFloat(dv));
         af.setEastSpeed(dv);
-        byte[] bvByte = BitUtils.copyFrom(data, 14, 2);
+        byte[] bvByte = BitUtils.copyFrom(data, 15, 2);
         //System.out.println(BitUtils.toHexString(bvByte));
         double bv = BitUtils.toShort(bvByte) * 0.1;
         af.setVelocityY(doubleToFloat(bv));
         af.setNorthSpeed(bv);
-        byte[] tvByte = BitUtils.copyFrom(data, 16, 2);
+        byte[] tvByte = BitUtils.copyFrom(data, 17, 2);
         //System.out.println(BitUtils.toHexString(tvByte));
         double tv = BitUtils.toShort(tvByte) * 0.1;
         af.setVelocityZ(doubleToFloat(tv));
         af.setSkySpeed(tv);
-        //byte[] timeByte = BitUtils.copyFrom(data, 18, 4);
-        //System.out.println(BitUtils.toHexString(timeByte));
-        //int time = BitUtils.toInt(timeByte);
-        //System.out.println("real>> " + id + " " + x + " " + y + " " + h + " " + dv + " " + bv + " " + tv + " ");
         return af;
     }
 
     public static Aircraft parseNoiseSubData(byte[] data) {
-        byte[] idByte = BitUtils.copyFrom(data, 0, 2);
+        byte[] afTypeByte = BitUtils.copyFrom(data, 0, 1);
+        String aircraftType = String.format("%01x", afTypeByte[0]);
+        byte[] idByte = BitUtils.copyFrom(data, 1, 2);
         //System.out.println(BitUtils.toHexString(idByte));
         short id = BitUtils.toShort(idByte);
         //System.out.println(id);
         if (id == 0) return null;
         Aircraft af = new Aircraft();
+        af.setAircraftNumber(id+"");
         af.setType("N");
-        byte[] xByte = BitUtils.copyFrom(data, 4, 4);
+        af.setAircraftType(aircraftType);
+        byte[] xByte = BitUtils.copyFrom(data, 5, 4);
         //System.out.println(BitUtils.toHexString(xByte));
         int ix = BitUtils.toInt(xByte);
         double x = ix * 0.0000001;
         //System.out.println(x);
         //af.setCoordinateX(doubleToFloat(x));
         af.setLongitude(x);
-        byte[] yByte = BitUtils.copyFrom(data, 8, 4);
+        byte[] yByte = BitUtils.copyFrom(data, 9, 4);
         //System.out.println(BitUtils.toHexString(yByte));
         int iy = BitUtils.toInt(yByte);
         double y = iy * 0.0000001;
@@ -293,25 +286,25 @@ public class UdpDataUtils {
         double[] xy = WebMercator.lonLatToMeters(x, y);
         af.setCoordinateX(doubleToFloat(xy[0]));
         af.setCoordinateY(doubleToFloat(xy[1]));
-        byte[] hByte = BitUtils.copyFrom(data, 12, 2);
+        byte[] hByte = BitUtils.copyFrom(data, 13, 2);
         //System.out.println(BitUtils.toHexString(hByte));
         short h = BitUtils.toShort(hByte);
         //System.out.println(h);
         af.setCoordinateZ(doubleToFloat(h));
         af.setAltitude(h);
-        byte[] dvByte = BitUtils.copyFrom(data, 22, 2);
+        byte[] dvByte = BitUtils.copyFrom(data, 23, 2);
         //System.out.println(BitUtils.toHexString(dvByte));
         double dv = BitUtils.toShort(dvByte) * 0.1;
         af.setVelocityX(doubleToFloat(dv));
         //System.out.println(dv);
         af.setEastSpeed(dv);
-        byte[] bvByte = BitUtils.copyFrom(data, 24, 2);
+        byte[] bvByte = BitUtils.copyFrom(data, 25, 2);
         //System.out.println(BitUtils.toHexString(bvByte));
         double bv = BitUtils.toShort(bvByte) * 0.1;
         af.setVelocityY(doubleToFloat(bv));
         af.setNorthSpeed(bv);
         //System.out.println(bv);
-        byte[] tvByte = BitUtils.copyFrom(data, 26, 2);
+        byte[] tvByte = BitUtils.copyFrom(data, 27, 2);
         //System.out.println(BitUtils.toHexString(tvByte));
         double tv = BitUtils.toShort(tvByte) * 0.1;
         af.setVelocityZ(doubleToFloat(tv));

+ 8 - 7
uavps-framework/src/main/java/com/uavps/framework/utils/UdpUtils.java

@@ -55,7 +55,7 @@ public class UdpUtils {
         System.out.printf(IdUtils.simpleUUID());
     }
 
-    public static String getJson(byte[] remoteData) throws JsonProcessingException {
+    public static String getJson(byte[] remoteData, long lastTime) throws JsonProcessingException {
 //        uavData = new String(data, 0, packet.getLength());
         //byte[] remoteData = packet.getData();
         String json = "";
@@ -63,12 +63,13 @@ public class UdpUtils {
             // 封装成对象
             UdpData udpData = UdpDataUtils.parseFrame(remoteData);
             if (udpData != null) {
+                udpData.setTime(lastTime);
                 PlatformAircraft platformAircraft = udpData.getPlatformAircraft();
                 // 第一次数据是平台无人机的数据,基于平台无人机数据进行初始化xy坐标为中心坐标
                 if (TaskInfo.INSTANCE.getInitFlag() && UdpData.PLANT_UAV.equals(udpData.getType()) && null != platformAircraft) {
                     // 初始化基坐标
-                    TaskInfo.INSTANCE.setX( (platformAircraft.getLongitude() - TaskInfo.INSTANCE.getConversionCenterPixel()));
-                    TaskInfo.INSTANCE.setY( (platformAircraft.getLatitude() - TaskInfo.INSTANCE.getConversionCenterPixel()));
+                    TaskInfo.INSTANCE.setLongitude(platformAircraft.getLongitude());
+                    TaskInfo.INSTANCE.setLatitude(platformAircraft.getLatitude());
                     TaskInfo.INSTANCE.setInitFlag(false);
                     getNewXYAircraftCoordinate(platformAircraft);
                 } else if (!TaskInfo.INSTANCE.getInitFlag() && UdpData.PLANT_UAV.equals(udpData.getType()) && null != platformAircraft) {
@@ -95,12 +96,12 @@ public class UdpUtils {
     }
 
     private static void getNewXYAircraftCoordinate(PlatformAircraft platformAircraft) {
-        platformAircraft.setCoordinateX(((platformAircraft.getLongitude() - TaskInfo.INSTANCE.getX())/ TaskInfo.INSTANCE.getConversionRate()));
-        platformAircraft.setCoordinateY(TaskInfo.INSTANCE.getConversionCenterPixel()-((platformAircraft.getLatitude() - TaskInfo.INSTANCE.getY())/ TaskInfo.INSTANCE.getConversionRate()));
+        platformAircraft.setCoordinateX(TaskInfo.INSTANCE.getInitCenterPixel() + TaskInfo.INSTANCE.getConversionRate() * (platformAircraft.getLongitude() - TaskInfo.INSTANCE.getLongitude()));
+        platformAircraft.setCoordinateY(TaskInfo.INSTANCE.getInitCenterPixel() - TaskInfo.INSTANCE.getConversionRate() * (platformAircraft.getLatitude() - TaskInfo.INSTANCE.getLatitude()));
     }
 
     private static void getNewXYAircraftCoordinate(Aircraft aircraft) {
-        aircraft.setCoordinateX((aircraft.getCoordinateX() - TaskInfo.INSTANCE.getX())/ TaskInfo.INSTANCE.getConversionRate());
-        aircraft.setCoordinateY(TaskInfo.INSTANCE.getConversionCenterPixel()-(aircraft.getCoordinateY() - TaskInfo.INSTANCE.getY())/ TaskInfo.INSTANCE.getConversionRate());
+        aircraft.setCoordinateX(TaskInfo.INSTANCE.getInitCenterPixel() + TaskInfo.INSTANCE.getConversionRate() * (aircraft.getLongitude() - TaskInfo.INSTANCE.getLongitude()));
+        aircraft.setCoordinateY(TaskInfo.INSTANCE.getInitCenterPixel() - TaskInfo.INSTANCE.getConversionRate() * (aircraft.getLongitude() - TaskInfo.INSTANCE.getLongitude()));
     }
 }

+ 0 - 5
uavps-framework/src/main/java/com/uavps/framework/websocket/WebSocketServer.java

@@ -8,7 +8,6 @@ import com.uavps.common.utils.uuid.Seq;
 import com.uavps.framework.udp.TaskInfo;
 import com.uavps.framework.udp.UdpClientService;
 import com.uavps.framework.udp.UdpServerService;
-import com.uavps.framework.udp.utils.UdpDataUtils;
 import com.uavps.system.domain.UavpsTask;
 import com.uavps.system.service.IUavpsAircraftService;
 import com.uavps.system.service.IUavpsAlgorithmParameterService;
@@ -22,9 +21,6 @@ import javax.websocket.server.ServerEndpoint;
 import java.io.BufferedReader;
 import java.io.FileReader;
 import java.io.IOException;
-import java.net.DatagramPacket;
-import java.net.DatagramSocket;
-import java.net.InetAddress;
 import java.time.Instant;
 import java.util.Date;
 import java.util.concurrent.CompletableFuture;
@@ -149,7 +145,6 @@ public class WebSocketServer {
 //                    UdpDataUtils.bizId = IdUtils.simpleUUID();
                 } else if (message.startsWith("TRANSFORMATION:")) {
 //                    closeUdpServer();
-
                     String bizId = message.substring(15);
                     UavpsTask uavpsTask = new UavpsTask();
                     uavpsTask.setBizId(Long.parseLong(bizId));

+ 50 - 3
uavps-system/src/main/java/com/uavps/system/udp/vo/Aircraft.java

@@ -1,5 +1,8 @@
 package com.uavps.system.udp.vo;
 
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+
 /**
  * @Author MBQ
  * @Date: 2025/1/15
@@ -8,6 +11,7 @@ package com.uavps.system.udp.vo;
  **/
 public class Aircraft {
     private String aircraftNumber;
+    private String aircraftType;
     private double coordinateX;
     private double coordinateY;
     private double coordinateZ;
@@ -36,7 +40,9 @@ public class Aircraft {
     }
 
     public double getCoordinateX() {
-        return coordinateX;
+        BigDecimal bd = new BigDecimal(Double.toString(coordinateX));
+        bd = bd.setScale(4, RoundingMode.HALF_UP);
+        return bd.doubleValue();
     }
 
     public void setCoordinateX(double coordinateX) {
@@ -44,7 +50,9 @@ public class Aircraft {
     }
 
     public double getCoordinateY() {
-        return coordinateY;
+        BigDecimal bd = new BigDecimal(Double.toString(coordinateY));
+        bd = bd.setScale(4, RoundingMode.HALF_UP);
+        return bd.doubleValue();
     }
 
     public void setCoordinateY(double coordinateY) {
@@ -52,7 +60,9 @@ public class Aircraft {
     }
 
     public double getCoordinateZ() {
-        return coordinateZ;
+        BigDecimal bd = new BigDecimal(Double.toString(coordinateZ));
+        bd = bd.setScale(4, RoundingMode.HALF_UP);
+        return bd.doubleValue();
     }
 
     public void setCoordinateZ(float coordinateZ) {
@@ -179,4 +189,41 @@ public class Aircraft {
         this.type = type;
     }
 
+    public String getAircraftType() {
+        return aircraftType;
+    }
+
+    public void setAircraftType(String aircraftType) {
+        this.aircraftType = aircraftType;
+    }
+
+    public void setCoordinateZ(double coordinateZ) {
+        this.coordinateZ = coordinateZ;
+    }
+
+    @Override
+    public String toString() {
+        return "Aircraft{" +
+                "aircraftNumber='" + aircraftNumber + '\'' +
+                ", aircraftType='" + aircraftType + '\'' +
+                ", coordinateX=" + coordinateX +
+                ", coordinateY=" + coordinateY +
+                ", coordinateZ=" + coordinateZ +
+                ", velocityX=" + velocityX +
+                ", velocityY=" + velocityY +
+                ", velocityZ=" + velocityZ +
+                ", velocity=" + velocity +
+                ", aircraftPoseX=" + aircraftPoseX +
+                ", aircraftPoseY=" + aircraftPoseY +
+                ", aircraftPoseZ=" + aircraftPoseZ +
+                ", piloted=" + piloted +
+                ", longitude=" + longitude +
+                ", latitude=" + latitude +
+                ", altitude=" + altitude +
+                ", eastSpeed=" + eastSpeed +
+                ", northSpeed=" + northSpeed +
+                ", skySpeed=" + skySpeed +
+                ", type='" + type + '\'' +
+                '}';
+    }
 }

+ 39 - 10
uavps-system/src/main/java/com/uavps/system/udp/vo/PlatformAircraft.java

@@ -1,6 +1,7 @@
 package com.uavps.system.udp.vo;
 
-import java.util.List;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
 
 /**
  * @Author MBQ
@@ -42,13 +43,17 @@ public class PlatformAircraft {
     private short trackAngle;
 
     private String utcTime;
+
+    private String targetAircraftNumber = "1";
 //    private String targetAircraftNumber;
 //
 //    private List<FlightPath> flightpath;
 
 
     public double getLongitude() {
-        return longitude;
+        BigDecimal bd = new BigDecimal(Double.toString(longitude));
+        bd = bd.setScale(7, RoundingMode.HALF_UP);
+        return bd.doubleValue();
     }
 
     public void setLongitude(double longitude) {
@@ -56,7 +61,9 @@ public class PlatformAircraft {
     }
 
     public double getLatitude() {
-        return latitude;
+        BigDecimal bd = new BigDecimal(Double.toString(latitude));
+        bd = bd.setScale(7, RoundingMode.HALF_UP);
+        return bd.doubleValue();
     }
 
     public void setLatitude(double latitude) {
@@ -64,7 +71,9 @@ public class PlatformAircraft {
     }
 
     public double getAltitude() {
-        return altitude;
+        BigDecimal bd = new BigDecimal(Double.toString(altitude));
+        bd = bd.setScale(7, RoundingMode.HALF_UP);
+        return bd.doubleValue();
     }
 
     public void setAltitude(double altitude) {
@@ -72,7 +81,9 @@ public class PlatformAircraft {
     }
 
     public double getEastSpeed() {
-        return eastSpeed;
+        BigDecimal bd = new BigDecimal(Double.toString(eastSpeed));
+        bd = bd.setScale(1, RoundingMode.HALF_UP);
+        return bd.doubleValue();
     }
 
     public void setEastSpeed(double eastSpeed) {
@@ -80,7 +91,9 @@ public class PlatformAircraft {
     }
 
     public double getNorthSpeed() {
-        return northSpeed;
+        BigDecimal bd = new BigDecimal(Double.toString(northSpeed));
+        bd = bd.setScale(1, RoundingMode.HALF_UP);
+        return bd.doubleValue();
     }
 
     public void setNorthSpeed(double northSpeed) {
@@ -88,7 +101,9 @@ public class PlatformAircraft {
     }
 
     public double getSkySpeed() {
-        return skySpeed;
+        BigDecimal bd = new BigDecimal(Double.toString(skySpeed));
+        bd = bd.setScale(1, RoundingMode.HALF_UP);
+        return bd.doubleValue();
     }
 
     public void setSkySpeed(double skySpeed) {
@@ -136,7 +151,9 @@ public class PlatformAircraft {
     }
 
     public double getCoordinateX() {
-        return coordinateX;
+        BigDecimal bd = new BigDecimal(Double.toString(coordinateX));
+        bd = bd.setScale(4, RoundingMode.HALF_UP);
+        return bd.doubleValue();
     }
 
     public void setCoordinateX(double coordinateX) {
@@ -144,7 +161,9 @@ public class PlatformAircraft {
     }
 
     public double getCoordinateY() {
-        return coordinateY;
+        BigDecimal bd = new BigDecimal(Double.toString(coordinateY));
+        bd = bd.setScale(4, RoundingMode.HALF_UP);
+        return bd.doubleValue();
     }
 
     public void setCoordinateY(double coordinateY) {
@@ -152,13 +171,23 @@ public class PlatformAircraft {
     }
 
     public double getCoordinateZ() {
-        return coordinateZ;
+        BigDecimal bd = new BigDecimal(Double.toString(coordinateZ));
+        bd = bd.setScale(4, RoundingMode.HALF_UP);
+        return bd.doubleValue();
     }
 
     public void setCoordinateZ(double coordinateZ) {
         this.coordinateZ = coordinateZ;
     }
 
+    public String getTargetAircraftNumber() {
+        return targetAircraftNumber;
+    }
+
+    public void setTargetAircraftNumber(String targetAircraftNumber) {
+        this.targetAircraftNumber = targetAircraftNumber;
+    }
+
     @Override
     public String toString() {
         return "PlatformAircraft{" +

+ 3 - 3
uavps-system/src/main/java/com/uavps/system/udp/vo/UdpData.java

@@ -22,7 +22,7 @@ public class UdpData {
     private String type;
 
     //时间单位ms,代表本次数据的时间
-    private float time;
+    private Long time;
 
     private List<AircraftFormation> targetAircraft;
 
@@ -44,11 +44,11 @@ public class UdpData {
         this.finished = finished;
     }
 
-    public float getTime() {
+    public Long getTime() {
         return time;
     }
 
-    public void setTime(float time) {
+    public void setTime(Long time) {
         this.time = time;
     }