浏览代码

[修改] 按照修改文档进行修改

zishang 2 月之前
父节点
当前提交
389e36f36e

+ 14 - 0
src/main/java/com/example/backend/controller/RadarStatusController.java

@@ -168,6 +168,19 @@ public class RadarStatusController {
             throw new ServiceException("获取通信状态失败");
         }
     }
+    //获取合作状态,合作条件 or 非合作条件
+    @GetMapping("/platform/{platformId}/getCooperationStatus")
+    public ResponseEntity<String> getCooperationStatus(
+            @PathVariable @NotBlank String platformId) {
+        logger.info("获取平台 {} 的合作状态信息", platformId);
+        try {
+            String s = radarStatusService.getCooperationStatus(platformId);
+            return ResponseEntity.ok(s);
+        } catch (Exception e) {
+            logger.error("获取合作状态信息失败", e);
+            throw new ServiceException("获取合作状态信息失败");
+        }
+    }
 
     //获取半实物信息
     @GetMapping("/platform/{platformId}/getIsReal")
@@ -188,6 +201,7 @@ public class RadarStatusController {
             @PathVariable @NotBlank String platformId,
             @RequestBody @Valid MessageStatus messageStatus) {
         logger.info("更新平台 {} 的通信状态", platformId);
+        logger.info(messageStatus.toString());
         try {
             radarStatusService.setMsgStatusById(platformId,messageStatus);
             return ResponseEntity.ok().build();

+ 13 - 6
src/main/java/com/example/backend/dds/DataReaderListenerImpl.java

@@ -125,9 +125,10 @@ public class DataReaderListenerImpl extends DDS._DataReaderListenerLocalBase {
                         p.jaming = s[2];
                         p.isReal = s[3];
                         if(s[3].equals("2"))realJamID = s[0];
-                        p.x = Double.parseDouble(s[4]);
-                        p.y = Double.parseDouble(s[5]);
-                        p.z = Double.parseDouble(s[6]);
+                        p.cooperationStatus = s[4];
+                        p.x = Double.parseDouble(s[5]);
+                        p.y = Double.parseDouble(s[6]);
+                        p.z = Double.parseDouble(s[7]);
                         positionMap.put(s[0],p);
                     }
                     for(int i=count+1;i<=radarCount+count;i++){
@@ -137,9 +138,10 @@ public class DataReaderListenerImpl extends DDS._DataReaderListenerLocalBase {
                         p.jaming = "未知";
                         p.isReal = "未知";
                         if(s[3].equals("2"))realRadarID = s[0];
-                        p.x = Double.parseDouble(s[4]);
-                        p.y = Double.parseDouble(s[5]);
-                        p.z = Double.parseDouble(s[6]);
+                        p.cooperationStatus = s[4];
+                        p.x = Double.parseDouble(s[5]);
+                        p.y = Double.parseDouble(s[6]);
+                        p.z = Double.parseDouble(s[7]);
                         radarPositionMap.put(s[0],p);
                     }
                     //回复初始化应答
@@ -159,6 +161,7 @@ public class DataReaderListenerImpl extends DDS._DataReaderListenerLocalBase {
                         p.coopID = positionMap.get(s[0]).coopID;
                         p.jaming = positionMap.get(s[0]).jaming;
                         p.isReal = positionMap.get(s[0]).isReal;
+                        p.cooperationStatus = positionMap.get(s[0]).cooperationStatus;
                         p.x = Double.parseDouble(s[1]);
                         p.y = Double.parseDouble(s[2]);
                         p.z = Double.parseDouble(s[3]);
@@ -225,6 +228,8 @@ public class DataReaderListenerImpl extends DDS._DataReaderListenerLocalBase {
                     m.startUp = s[1];
                     m.quite = s[2];
                     m.mode = s[3];
+                    m.groupID = s[4];
+                    m.teamID = s[5];
                     messageStatusMap.put(s[0],m);
                 }
                 if(mh.value.subject.equals("10")){
@@ -240,6 +245,8 @@ public class DataReaderListenerImpl extends DDS._DataReaderListenerLocalBase {
                         m.startUp = s[1];
                         m.quite = s[2];
                         m.mode = s[3];
+                        m.groupID = s[4];
+                        m.teamID = s[5];
                         messageStatusMap.put(platformID,m);
                     }
                 }

+ 1 - 1
src/main/java/com/example/backend/dds/TestPublisher.java

@@ -40,7 +40,7 @@ public class TestPublisher {
         s[0] = "-DCPSBit";
         s[1] = "0";
         s[2] = "-DCPSConfigFile";
-        s[3] = "D:/dds/open-dds_3.16/OpenDDS-3.16/OpenDDS-3.16/java/tests/messenger/tcp.ini";
+        s[3] = "C:/software/OpenDDS-3.16/java/tests/messenger/tcp.ini";
         executor.submit(() -> initialize(s)); // 初始化放在后台线程
     }
     public static boolean checkReliable(String[] args) {

+ 1 - 1
src/main/java/com/example/backend/dds/TestSubscriber.java

@@ -45,7 +45,7 @@ public class TestSubscriber {
         s[0] = "-DCPSBit";
         s[1] = "0";
         s[2] = "-DCPSConfigFile";
-        s[3] = "D:/dds/open-dds_3.16/OpenDDS-3.16/OpenDDS-3.16/java/tests/messenger/tcp.ini";
+        s[3] = "C:/software/OpenDDS-3.16/java/tests/messenger/tcp.ini";
         executor.submit(() -> initialize(s));
     }
     public String getText(){

+ 6 - 0
src/main/java/com/example/backend/model/MessageStatus.java

@@ -1,5 +1,8 @@
 package com.example.backend.model;
 
+import lombok.Data;
+
+@Data
 public class MessageStatus {
     public String startUp = "开";//链路开关状态
 
@@ -29,4 +32,7 @@ public class MessageStatus {
 
     public String quite = "非静默";//静默状态
     public String mode = "实时性";//传输模式
+
+    public String teamID;
+    public String groupID;
 }

+ 4 - 0
src/main/java/com/example/backend/model/Position.java

@@ -1,5 +1,8 @@
 package com.example.backend.model;
 
+import lombok.Data;
+
+@Data
 public class Position {
     public double getX() {
         return x;
@@ -56,4 +59,5 @@ public class Position {
 
     public String jaming;
     public String isReal;
+    public String cooperationStatus;
 }

+ 3 - 2
src/main/java/com/example/backend/model/RadarStatus.java

@@ -1,8 +1,10 @@
 package com.example.backend.model;
 
+import lombok.Data;
+
 import java.util.Objects;
 import java.util.List;
-
+@Data
 public class RadarStatus {
     private String model;
     private String serialNumber;
@@ -17,7 +19,6 @@ public class RadarStatus {
     private double antennaGain;
     private double sideLobeGain;
     private String platformId;
-
     // Getters and Setters
 
     public String getModel() {

+ 8 - 3
src/main/java/com/example/backend/model/ecmStatus.java

@@ -1,7 +1,15 @@
 package com.example.backend.model;
 
+import lombok.Data;
+
+@Data
 public class ecmStatus {
     String jamingPolicy;
+    String startUp;
+    String connect;
+    String openTime;
+    int maxBaitNum;
+    int remainBaitNum;
 
     public String getJamingPolicy() {
         return jamingPolicy;
@@ -35,7 +43,4 @@ public class ecmStatus {
         this.openTime = openTime;
     }
 
-    String startUp;
-    String connect;
-    String openTime;
 }

+ 14 - 2
src/main/java/com/example/backend/service/RadarStatusService.java

@@ -16,6 +16,8 @@ import java.util.concurrent.*;
 
 import jakarta.annotation.PostConstruct;
 
+import javax.validation.constraints.NotBlank;
+
 @Service
 public class RadarStatusService {
 
@@ -154,6 +156,8 @@ public class RadarStatusService {
         e.setStartUp("开机");
         e.setOpenTime("无");
         e.setJamingPolicy(subscriber.listener.positionMap.get(platformId).jaming);
+        e.setMaxBaitNum(10);
+        e.setRemainBaitNum(10);
         ecmStatusList.put(platformId,e);
         sdrStatus s = new sdrStatus();
         if(platformId.equals(subscriber.listener.realJamID)||platformId.equals(subscriber.listener.realRadarID)){
@@ -186,6 +190,15 @@ public class RadarStatusService {
         return s;
     }
 
+    public String getCooperationStatus(String platformId) {
+        logger.info("获取平台 {} 的是否在合作条件下", platformId);
+        Position p = subscriber.listener.positionMap.get(platformId);
+        if (p == null) {
+            return "";
+        }
+        return p.cooperationStatus;
+    }
+
     public RadarStatus updateRadarStatus(String platformId, RadarStatus updatedStatus) {
         if (updatedStatus == null) {
             logger.error("尝试更新空的雷达状态");
@@ -235,7 +248,6 @@ public class RadarStatusService {
         radarStatusList.add(createKeyValue("波束指向俯仰角", status.getBeamElevation()));
         radarStatusList.add(createKeyValue("天线最大增益(dB)", status.getAntennaGain()));
         radarStatusList.add(createKeyValue("副瓣增益(dB)", status.getSideLobeGain()));
-        
         return radarStatusList;
     }
 
@@ -400,7 +412,7 @@ public class RadarStatusService {
 
     public void setMsgStatusById(String PlatformID,MessageStatus m){
         subscriber.listener.messageStatusMap.put(PlatformID,m);
-        publisher.publishMessage("2","9",PlatformID+" "+m.startUp+" "+m.quite+" "+m.mode);
+        publisher.publishMessage("2","9",PlatformID+" "+m.startUp+" "+m.quite+" "+m.mode+" "+m.groupID+" "+m.teamID);
     }
 
     public List<Message> getMsgListById(String PlatformID){

+ 1 - 1
src/main/resources/application.properties

@@ -1,4 +1,4 @@
 spring.application.name=backend
 frontend.url=http://localhost:8082
-server.port=5100
+server.port=5101