소스 검색

心跳id2改为5,雷达侦察检测循环修改。

jie 3 달 전
부모
커밋
4a2b012788

+ 2 - 0
src/main/java/com/example/backend/dds/DataReaderListenerImpl.java

@@ -110,6 +110,7 @@ public class DataReaderListenerImpl extends DDS._DataReaderListenerLocalBase {
                     String[] countList = messageList[0].split(" ");
                     int count = Integer.parseInt(countList[0]);
                     int radarCount = Integer.parseInt(countList[1]);
+                    //侦察
                     for(int i=1;i<=count;i++){
                         String[] s = messageList[i].split(" ");
                         Position p = new Position();
@@ -121,6 +122,7 @@ public class DataReaderListenerImpl extends DDS._DataReaderListenerLocalBase {
                         p.z = Double.parseDouble(s[6]);
                         positionMap.put(s[0],p);
                     }
+                    //雷达
                     for(int i=count+1;i<=radarCount+count;i++){
                         String[] s = messageList[i].split(" ");
                         Position p = new Position();

+ 44 - 7
src/main/java/com/example/backend/service/RadarStatusService.java

@@ -48,7 +48,7 @@ public class RadarStatusService {
         if (subscriber != null && subscriber.listener != null) {
             try {//发送心跳信息
                 publisher.publishMessage(
-                        "2",
+                        "5",
                         "8",
                         "这是心跳信息"
                 );
@@ -70,7 +70,7 @@ public class RadarStatusService {
                         subscriber.listener.isRecall=0;
 
                         publisher.publishMessage(
-                                "2",
+                                "5",
                                 "11",
                                 "这是初始化应答"
                         );
@@ -88,7 +88,7 @@ public class RadarStatusService {
                     //未初始化,发送初始化请求
                     try {
                         publisher.publishMessage(
-                                "2",
+                                "5",
                                 "12",
                                 "这是初始化请求"
                         );
@@ -101,7 +101,7 @@ public class RadarStatusService {
                     //未分组,发送网络分组请求
                     try {
                         publisher.publishMessage(
-                                "2",
+                                "5",
                                 "41",
                                 "这是网络分组请求"
                         );
@@ -489,13 +489,50 @@ public class RadarStatusService {
         }
         else return "7";
     }
-
+    //检查范围
+    //原版
+//    private void checkTargets(){
+//        platformTargetsMap.clear();
+//        for(String missile : subscriber.listener.positionMap.keySet()){
+//            Queue<RadarTarget> queue = new ConcurrentLinkedQueue<>();
+//            for(String radar : subscriber.listener.radarPositionMap.keySet()){
+//                Position thisMissile = subscriber.listener.positionMap.get(missile);
+//                Position thisRadar = subscriber.listener.radarPositionMap.get(radar);
+//                if(Math.sqrt((thisMissile.x-thisRadar.x)*(thisMissile.x-thisRadar.x)+(thisMissile.y-thisRadar.y)*(thisMissile.y-thisRadar.y)+(thisMissile.z-thisRadar.z)*(thisMissile.z-thisRadar.z))<=1000000){
+//                    //进入侦察范围
+//                    RadarTarget target = new RadarTarget();
+//                    double dx = thisMissile.x-thisRadar.x;
+//                    double dy = thisMissile.y-thisRadar.y;
+//                    double dz = thisMissile.z-thisRadar.z;
+//                    double azi,elv;
+//                    azi = dx==0&&dy==0 ? 0.0 : Math.toDegrees(Math.atan2(dx,dy));
+//                    azi = azi<0 ? azi+360 : azi;
+//                    elv = Math.toDegrees(Math.atan2(dz,Math.sqrt(dx*dx+dy*dy)));
+//                    target.setTargetId(Integer.valueOf(radar));
+//                    target.setEnemyPro("未知");
+//                    target.setFlightState("未知");
+//                    target.setLightQuality("未知");
+//                    target.setSimTime("未知");
+//                    target.setTargetDistance(Math.sqrt((thisMissile.x-thisRadar.x)*(thisMissile.x-thisRadar.x)+(thisMissile.y-thisRadar.y)*(thisMissile.y-thisRadar.y)+(thisMissile.z-thisRadar.z)*(thisMissile.z-thisRadar.z)));
+//                    target.setTargetAzi(azi);
+//                    target.setTargetEle(elv);
+//                    target.setTargetRSpeed(0);
+//                    queue.add(target);
+//                }
+//            }
+//            platformTargetsMap.put(missile,queue);
+//        }
+//    }
     private void checkTargets(){
         platformTargetsMap.clear();
-        for(String missile : subscriber.listener.positionMap.keySet()){
+        //雷达循环
+        for(String missile : subscriber.listener.radarPositionMap.keySet()){
             Queue<RadarTarget> queue = new ConcurrentLinkedQueue<>();
-            for(String radar : subscriber.listener.radarPositionMap.keySet()){
+            //侦察循环
+            for(String radar : subscriber.listener.positionMap.keySet()){
+                //侦察
                 Position thisMissile = subscriber.listener.positionMap.get(missile);
+                //雷达
                 Position thisRadar = subscriber.listener.radarPositionMap.get(radar);
                 if(Math.sqrt((thisMissile.x-thisRadar.x)*(thisMissile.x-thisRadar.x)+(thisMissile.y-thisRadar.y)*(thisMissile.y-thisRadar.y)+(thisMissile.z-thisRadar.z)*(thisMissile.z-thisRadar.z))<=1000000){
                     //进入侦察范围