Переглянути джерело

Nacos测试,代码结构小修

zlSun 3 місяців тому
батько
коміт
c04662ade0
43 змінених файлів з 222 додано та 94 видалено
  1. 14 5
      pom.xml
  2. 4 0
      src/main/java/com/dc/datachange/DataChangeApplication.java
  3. 1 1
      src/main/java/com/dc/datachange/communication/controller/CommunicationController.java
  4. 1 1
      src/main/java/com/dc/datachange/core/common/ControlConstants.java
  5. 21 6
      src/main/java/com/dc/datachange/core/common/MsgConstants.java
  6. 10 0
      src/main/java/com/dc/datachange/core/common/PlatConstants.java
  7. 14 0
      src/main/java/com/dc/datachange/core/common/PrintConfig.java
  8. 12 11
      src/main/java/com/dc/datachange/core/connection/DDSStatusManger.java
  9. 0 1
      src/main/java/com/dc/datachange/core/entity/message/DDSMessage.java
  10. 14 0
      src/main/java/com/dc/datachange/core/entity/message/ReceivedMessage.java
  11. 1 0
      src/main/java/com/dc/datachange/core/entity/message/SendMessage.java
  12. 2 0
      src/main/java/com/dc/datachange/core/entity/message/receivedMessage/CompIntelMsg.java
  13. 2 0
      src/main/java/com/dc/datachange/core/entity/message/receivedMessage/DaoTiaoMsg.java
  14. 2 0
      src/main/java/com/dc/datachange/core/entity/message/receivedMessage/EleInterMsg.java
  15. 2 0
      src/main/java/com/dc/datachange/core/entity/message/receivedMessage/ErrorMessage.java
  16. 2 0
      src/main/java/com/dc/datachange/core/entity/message/receivedMessage/InitialMessage.java
  17. 3 1
      src/main/java/com/dc/datachange/core/entity/message/receivedMessage/NetGroupReq.java
  18. 2 0
      src/main/java/com/dc/datachange/core/entity/message/receivedMessage/RadarPulseMsg.java
  19. 1 1
      src/main/java/com/dc/datachange/core/entity/message/sendMessage/DaoTiaoRes.java
  20. 2 2
      src/main/java/com/dc/datachange/core/entity/message/sendMessage/HeartBeatMsg.java
  21. 1 1
      src/main/java/com/dc/datachange/core/entity/message/sendMessage/InitialRequest.java
  22. 1 1
      src/main/java/com/dc/datachange/core/entity/message/sendMessage/InitialResponse.java
  23. 2 2
      src/main/java/com/dc/datachange/core/entity/message/sendMessage/NetGroupMsg.java
  24. 1 2
      src/main/java/com/dc/datachange/core/entity/message/sendMessage/SelfMsg.java
  25. 1 1
      src/main/java/com/dc/datachange/core/entity/networkGroup/NetworkGroup.java
  26. 12 2
      src/main/java/com/dc/datachange/core/exchange/DDSListener.java
  27. 1 1
      src/main/java/com/dc/datachange/core/exchange/DataManager.java
  28. 10 19
      src/main/java/com/dc/datachange/core/exchange/InvokeExecutor.java
  29. 1 1
      src/main/java/com/dc/datachange/core/exchange/SendExecutor.java
  30. 9 10
      src/main/java/com/dc/datachange/core/exchange/strategy/DaoTiaoStrategy.java
  31. 1 1
      src/main/java/com/dc/datachange/core/exchange/strategy/EleInterStrategy.java
  32. 1 1
      src/main/java/com/dc/datachange/core/exchange/strategy/ErrorStrategy.java
  33. 1 2
      src/main/java/com/dc/datachange/core/exchange/strategy/InitialMsgStrategy.java
  34. 1 2
      src/main/java/com/dc/datachange/core/exchange/strategy/NetGroupReqStrategy.java
  35. 1 1
      src/main/java/com/dc/datachange/core/exchange/strategy/RadarPulseStrategy.java
  36. 6 4
      src/main/java/com/dc/datachange/messageManager/controller/MessageController.java
  37. 5 3
      src/main/java/com/dc/datachange/networkGroup/controller/NetworkController.java
  38. 12 0
      src/main/java/com/dc/datachange/remote/SDRClient.java
  39. 17 0
      src/main/java/com/dc/datachange/remote/SDRController.java
  40. 11 1
      src/main/java/com/dc/datachange/utils/MessageUtils.java
  41. 3 3
      src/main/java/com/dc/datachange/utils/Simulator.java
  42. 14 1
      src/main/resources/application.yml
  43. 0 6
      src/main/resources/static/index.html

+ 14 - 5
pom.xml

@@ -10,11 +10,11 @@
     <properties>
         <java.version>1.8</java.version>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <mybatisplus.version>3.3.1</mybatisplus.version>
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
         <spring-boot.version>2.3.12.RELEASE</spring-boot.version>
     </properties>
     <dependencies>
+<!--        springBoot相关-->
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-web</artifactId>
@@ -24,19 +24,28 @@
             <artifactId>spring-boot-configuration-processor</artifactId>
             <optional>true</optional>
         </dependency>
-        <!--httpStatus-->
+<!--        springCloud相关,为了半实物系统-->
+        <dependency>
+            <groupId>com.alibaba.cloud</groupId>
+            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
+            <version>2.2.6.RELEASE</version>
+        </dependency>
+        <dependency>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-openfeign</artifactId>
+            <version>2.2.6.RELEASE</version>
+        </dependency>
+<!--        R类需要-->
         <dependency>
             <groupId>org.apache.httpcomponents</groupId>
             <artifactId>httpclient</artifactId>
             <version>4.5.13</version>
         </dependency>
-
+<!--        Lombok快速方法-->
         <dependency>
             <groupId>org.projectlombok</groupId>
             <artifactId>lombok</artifactId>
-            <!--            <version>${lombok.version}</version>-->
         </dependency>
-
 <!--        本地lib依赖-->
         <dependency>
             <groupId>opendds</groupId>

+ 4 - 0
src/main/java/com/dc/datachange/DataChangeApplication.java

@@ -2,12 +2,16 @@ package com.dc.datachange;
 
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
+import org.springframework.cloud.openfeign.EnableFeignClients;
 import org.springframework.scheduling.annotation.EnableAsync;
 import org.springframework.scheduling.annotation.EnableScheduling;
 
 @SpringBootApplication
 @EnableAsync
 @EnableScheduling
+@EnableDiscoveryClient
+@EnableFeignClients
 public class DataChangeApplication {
 
     public static void main(String[] args) {

+ 1 - 1
src/main/java/com/dc/datachange/communication/controller/CommunicationController.java

@@ -4,9 +4,9 @@ import com.dc.datachange.communication.entity.NetworkGroupVo;
 import com.dc.datachange.communication.entity.PlatformVo;
 import com.dc.datachange.core.entity.graph.EdgeVo;
 import com.dc.datachange.core.entity.graph.NodeVo;
+import com.dc.datachange.core.entity.networkGroup.NetworkGroup;
 import com.dc.datachange.core.entity.platformInfo.Platform;
 import com.dc.datachange.core.exchange.DataManager;
-import com.dc.datachange.core.entity.networkGroup.NetworkGroup;
 import com.dc.datachange.utils.R;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;

+ 1 - 1
src/main/java/com/dc/datachange/core/common/ControlConstans.java → src/main/java/com/dc/datachange/core/common/ControlConstants.java

@@ -1,6 +1,6 @@
 package com.dc.datachange.core.common;
 
-public class ControlConstans {
+public class ControlConstants {
     public static final String CTRL_START="1";
     public static final String CTRL_PAUSE="2";
     public static final String CTRL_CONTINUE="3";

+ 21 - 6
src/main/java/com/dc/datachange/core/common/MsgConstants.java

@@ -1,5 +1,6 @@
 package com.dc.datachange.core.common;
 
+import java.lang.reflect.Field;
 import java.util.HashMap;
 
 public class MsgConstants {
@@ -17,10 +18,24 @@ public class MsgConstants {
     public static final String ELECTRIC_INTERFERE="6";
     public static final String COMPREHEN_INTELL="7";
     public static final String HEART_BEAT="8";
-    public static final HashMap<String,String > PLAT_MAP= new HashMap<String,String>(){{
-        put("1","支撑平台");
-        put("2","任务系统");
-        put("3","数据交换平台");
-        put("4","算法平台");
-    }};
+    public static final HashMap<String,String > MSG_MAP = new HashMap<>();
+
+    static {
+        Class<?> clazz = MsgConstants.class;
+        Field[] fields = clazz.getFields();
+        for (Field field : fields) {
+            if (java.lang.reflect.Modifier.isStatic(field.getModifiers())
+                    && java.lang.reflect.Modifier.isFinal(field.getModifiers())
+                    && field.getType() == String.class) {
+                try {
+                    String key = (String) field.get(null);
+                    String value = field.getName();
+                    MSG_MAP.put(key, value);
+                } catch (IllegalAccessException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+    }
+
 }

+ 10 - 0
src/main/java/com/dc/datachange/core/common/PlatConstants.java

@@ -1,9 +1,19 @@
 package com.dc.datachange.core.common;
 
+import java.util.HashMap;
+import java.util.Map;
+
 public class PlatConstants {
     public static final String ALGORITHM_PLATFORM="4";
     public static final String SUPPORT_PLATFORM = "1";
     public static final String EXCHANGE_PLATFORM="3";
     public static final String RADAR_TASKSYS="5";
     public static final String INTERFER_TASKSYS="2";
+    public static final Map<String,String > PLAT_MAP = new HashMap<String,String>(){{
+        put(ALGORITHM_PLATFORM,"算法平台");
+        put(SUPPORT_PLATFORM,"支撑平台");
+        put(EXCHANGE_PLATFORM,"数据交换平台");
+        put(RADAR_TASKSYS,"雷达平台");
+        put(INTERFER_TASKSYS,"干扰平台");
+    }};
 }

+ 14 - 0
src/main/java/com/dc/datachange/core/common/PrintConfig.java

@@ -0,0 +1,14 @@
+package com.dc.datachange.core.common;
+
+import lombok.Data;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.context.annotation.Configuration;
+
+import java.util.Set;
+
+@Configuration
+@ConfigurationProperties(prefix = "dds.config")
+@Data
+public class PrintConfig {
+    private Set<String> printMsgType;
+}

+ 12 - 11
src/main/java/com/dc/datachange/core/connection/DDSStatusManger.java

@@ -21,12 +21,12 @@ public class DDSStatusManger {
     private SendExecutor sendExecutor;
     @Autowired
     private DataManager dataManager;
-    private volatile State state=State.INITIALING;
+    private volatile State status =State.INITIALING;
 
     @Async
     @Scheduled(fixedDelay = 6000)
     public void initializer(){
-        if(state==State.INITIALED)
+        if(status ==State.INITIALED)
             sendExecutor.sendInitialReq();
     }
 
@@ -36,29 +36,29 @@ public class DDSStatusManger {
         sendExecutor.sendHeartBeat();
     }
     public boolean isInitialed(){
-        return state.equals(State.INITIALED);
+        return status.equals(State.INITIALED);
     }
     public boolean isRunning(){
-        return state.equals(State.RUNNING);
+        return status.equals(State.RUNNING);
     }
     public boolean isPaused(){
-        return state.equals(State.PAUSED);
+        return status.equals(State.PAUSED);
     }
 
     public void initialed(){
-        this.state=State.INITIALED;
+        this.status =State.INITIALED;
     }
     public void pause(){
-        this.state=State.PAUSED;
+        this.status =State.PAUSED;
     }
     public void running(){
-        this.state=State.RUNNING;
+        this.status =State.RUNNING;
     }
     public void stop(){
         //理论上结束后还需要手动开始,但是目前省略这一步,结束后自动开始
         initialed();
         dataManager.clean();
-        running();
+//        running();
     }
 
     public boolean stateChecker(ReceivedMessage message){
@@ -69,10 +69,11 @@ public class DDSStatusManger {
         } else if (message.getClass().equals(DaoTiaoMsg.class)){
             return isRunning() || isPaused() || isInitialed();
         }
+        log.error("状态错误,当前状态{}",this.getStatus());
         return false;
     }
 
-    public String getState(){
-        return state.name();
+    public String getStatus(){
+        return status.name();
     }
 }

+ 0 - 1
src/main/java/com/dc/datachange/core/entity/message/DDSMessage.java

@@ -1,6 +1,5 @@
 package com.dc.datachange.core.entity.message;
 
-import com.dc.datachange.core.entity.message.receivedMessage.RunningMessage;
 import com.dc.datachange.utils.MessageUtils;
 import lombok.Data;
 

+ 14 - 0
src/main/java/com/dc/datachange/core/entity/message/ReceivedMessage.java

@@ -15,5 +15,19 @@ public abstract class ReceivedMessage extends DDSMessage{
     public boolean isRunningMsg(){
         return RunningMessage.class.isAssignableFrom(this.getClass());
     }
+    @Override
+    public String toString() {
+        return "ReceivedMessage{" +
+                "DDSMessage=" + (DDSMessage == null ? "null":
+                    "Message{" +
+                            "from='" + DDSMessage.from + '\'' +
+                            ", subject='" + DDSMessage.subject + '\'' +
+                            ", text='" + DDSMessage.text + '\'' +
+                            '}') +
+                ", from='" + from + '\'' +
+                ", to='" + to + '\'' +
+                ", validate=" + validate +
+                '}';
+    }
 
 }

+ 1 - 0
src/main/java/com/dc/datachange/core/entity/message/SendMessage.java

@@ -1,4 +1,5 @@
 package com.dc.datachange.core.entity.message;
 
 public abstract class SendMessage extends DDSMessage{
+
 }

+ 2 - 0
src/main/java/com/dc/datachange/core/entity/message/receivedMessage/CompIntelMsg.java

@@ -6,6 +6,7 @@ import com.dc.datachange.core.entity.message.ReceivedMessage;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
+import lombok.ToString;
 import lombok.extern.slf4j.Slf4j;
 
 /**
@@ -15,6 +16,7 @@ import lombok.extern.slf4j.Slf4j;
 @AllArgsConstructor
 @Slf4j
 @Data
+@ToString(callSuper = true)
 public class CompIntelMsg extends ReceivedMessage implements RunningMessage {
     private static final String msgType= MsgConstants.COMPREHEN_INTELL;
     /**

+ 2 - 0
src/main/java/com/dc/datachange/core/entity/message/receivedMessage/DaoTiaoMsg.java

@@ -5,11 +5,13 @@ import com.dc.datachange.core.common.MsgConstants;
 import com.dc.datachange.core.entity.message.ReceivedMessage;
 import lombok.AllArgsConstructor;
 import lombok.Data;
+import lombok.ToString;
 import lombok.extern.slf4j.Slf4j;
 
 @Data
 @Slf4j
 @AllArgsConstructor
+@ToString(callSuper = true)
 public class DaoTiaoMsg extends ReceivedMessage {
     private static final String msgType= MsgConstants.DAOTIAO_MSG;
     private String msg;

+ 2 - 0
src/main/java/com/dc/datachange/core/entity/message/receivedMessage/EleInterMsg.java

@@ -6,12 +6,14 @@ import com.dc.datachange.core.entity.message.ReceivedMessage;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
+import lombok.ToString;
 import lombok.extern.slf4j.Slf4j;
 
 @AllArgsConstructor
 @NoArgsConstructor
 @Slf4j
 @Data
+@ToString(callSuper = true)
 public class EleInterMsg extends ReceivedMessage implements RunningMessage {
     private static final String msgType= MsgConstants.ELECTRIC_INTERFERE;
     /**

+ 2 - 0
src/main/java/com/dc/datachange/core/entity/message/receivedMessage/ErrorMessage.java

@@ -4,8 +4,10 @@ import Messenger.Message;
 import com.dc.datachange.core.common.MsgConstants;
 import com.dc.datachange.core.entity.message.ReceivedMessage;
 import lombok.NoArgsConstructor;
+import lombok.ToString;
 
 @NoArgsConstructor
+@ToString(callSuper = true)
 public class ErrorMessage extends ReceivedMessage {
     public ErrorMessage(Message message){
         super.setDDSMessage(message);

+ 2 - 0
src/main/java/com/dc/datachange/core/entity/message/receivedMessage/InitialMessage.java

@@ -8,6 +8,7 @@ import com.dc.datachange.core.entity.platformInfo.RadarPlatform;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
+import lombok.ToString;
 import lombok.extern.slf4j.Slf4j;
 
 import java.util.ArrayList;
@@ -17,6 +18,7 @@ import java.util.List;
 @NoArgsConstructor
 @Slf4j
 @Data
+@ToString(callSuper = true)
 public class InitialMessage extends ReceivedMessage {
     private static final String msgType= MsgConstants.INITIAL_MSG;
     private List<InterferPlatform> interPlats=new ArrayList<>();

+ 3 - 1
src/main/java/com/dc/datachange/core/entity/message/receivedMessage/NetGroupReq.java

@@ -5,9 +5,11 @@ import com.dc.datachange.core.common.MsgConstants;
 import com.dc.datachange.core.common.PlatConstants;
 import com.dc.datachange.core.entity.message.ReceivedMessage;
 import lombok.Data;
+import lombok.ToString;
 
 @Data
-public class NetGroupReq extends ReceivedMessage {
+@ToString(callSuper = true)
+public class NetGroupReq extends ReceivedMessage implements RunningMessage{
     private static final String subject= MsgConstants.NETGROUP_REQ;
     private String from;
 

+ 2 - 0
src/main/java/com/dc/datachange/core/entity/message/receivedMessage/RadarPulseMsg.java

@@ -6,12 +6,14 @@ import com.dc.datachange.core.entity.message.ReceivedMessage;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
+import lombok.ToString;
 import lombok.extern.slf4j.Slf4j;
 
 @NoArgsConstructor
 @AllArgsConstructor
 @Slf4j
 @Data
+@ToString(callSuper = true)
 public class RadarPulseMsg extends ReceivedMessage implements RunningMessage {
     private static final String msgType= MsgConstants.RADAR_PULSE;
     /**

+ 1 - 1
src/main/java/com/dc/datachange/core/entity/message/sendMessage/DaoTiaoRes.java

@@ -9,7 +9,7 @@ import com.dc.datachange.core.entity.message.receivedMessage.DaoTiaoMsg;
 import org.springframework.stereotype.Component;
 
 @Component
-public class DaoTiaoRes extends SendMessage implements ReactiveMsg{
+public class DaoTiaoRes extends SendMessage implements ReactiveMsg {
     private static final String from= PlatConstants.EXCHANGE_PLATFORM;
     private static final String subject= MsgConstants.DAOTIAO_RES;
     @Override

+ 2 - 2
src/main/java/com/dc/datachange/core/entity/message/sendMessage/HeartBeatMsg.java

@@ -7,12 +7,12 @@ import com.dc.datachange.core.entity.message.SendMessage;
 import org.springframework.stereotype.Component;
 
 @Component
-public class HeartBeatMsg extends SendMessage implements Selfmsg{
+public class HeartBeatMsg extends SendMessage implements SelfMsg {
     private static final String from = PlatConstants.EXCHANGE_PLATFORM;
     private static final String subject = MsgConstants.HEART_BEAT;
     private final Message message;
 
-    public HeartBeatMsg(){
+    private HeartBeatMsg(){
         Message message=new Message();
         message.from=from;
         message.subject=subject;

+ 1 - 1
src/main/java/com/dc/datachange/core/entity/message/sendMessage/InitialRequest.java

@@ -7,7 +7,7 @@ import com.dc.datachange.core.entity.message.SendMessage;
 import org.springframework.stereotype.Component;
 
 @Component
-public class InitialRequest extends SendMessage implements Selfmsg{
+public class InitialRequest extends SendMessage implements SelfMsg {
     private static final String from= PlatConstants.EXCHANGE_PLATFORM;
     private static final String subject= MsgConstants.INITIAL_REQ;
     private final Message message;

+ 1 - 1
src/main/java/com/dc/datachange/core/entity/message/sendMessage/InitialResponse.java

@@ -8,7 +8,7 @@ import com.dc.datachange.core.entity.message.SendMessage;
 import org.springframework.stereotype.Component;
 
 @Component
-public class InitialResponse extends SendMessage implements ReactiveMsg{
+public class InitialResponse extends SendMessage implements ReactiveMsg {
     private static final String from= PlatConstants.EXCHANGE_PLATFORM;
     private static final String subject= MsgConstants.INITIAL_RES;
     private final Message message;

+ 2 - 2
src/main/java/com/dc/datachange/core/entity/message/sendMessage/NetGroupMsg.java

@@ -5,8 +5,8 @@ import com.dc.datachange.core.common.MsgConstants;
 import com.dc.datachange.core.common.PlatConstants;
 import com.dc.datachange.core.entity.message.ReceivedMessage;
 import com.dc.datachange.core.entity.message.SendMessage;
-import com.dc.datachange.core.exchange.DataManager;
 import com.dc.datachange.core.entity.networkGroup.NetworkGroup;
+import com.dc.datachange.core.exchange.DataManager;
 import com.dc.datachange.utils.MessageUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -16,7 +16,7 @@ import java.util.List;
 import java.util.stream.Collectors;
 
 @Component
-public class NetGroupMsg extends SendMessage implements ReactiveMsg,Selfmsg{
+public class NetGroupMsg extends SendMessage implements ReactiveMsg, SelfMsg {
     private static final String subject = MsgConstants.NETGROUP_MSG;
     private static final String from= PlatConstants.EXCHANGE_PLATFORM;
     private static Integer version=1;

+ 1 - 2
src/main/java/com/dc/datachange/core/entity/message/sendMessage/Selfmsg.java → src/main/java/com/dc/datachange/core/entity/message/sendMessage/SelfMsg.java

@@ -1,11 +1,10 @@
 package com.dc.datachange.core.entity.message.sendMessage;
 
 import Messenger.Message;
-import com.dc.datachange.core.entity.message.ReceivedMessage;
 
 /**
  * 用于标注自己就能够触发请求的消息
  */
-public interface Selfmsg {
+public interface SelfMsg {
     Message toMessage();
 }

+ 1 - 1
src/main/java/com/dc/datachange/core/entity/networkGroup/NetworkGroup.java

@@ -1,8 +1,8 @@
 package com.dc.datachange.core.entity.networkGroup;
 
 import com.dc.datachange.core.entity.message.ReceivedMessage;
-import com.dc.datachange.core.entity.platformInfo.Platform;
 import com.dc.datachange.core.entity.platformInfo.InterferPlatform;
+import com.dc.datachange.core.entity.platformInfo.Platform;
 import com.dc.datachange.core.entity.platformInfo.RadarPlatform;
 import com.dc.datachange.exception.IllegalTypeException;
 import com.dc.datachange.exception.NameDuplicatedException;

+ 12 - 2
src/main/java/com/dc/datachange/core/exchange/DDSListener.java

@@ -5,16 +5,22 @@ import Messenger.Message;
 import Messenger.MessageDataReader;
 import Messenger.MessageDataReaderHelper;
 import Messenger.MessageHolder;
+import com.dc.datachange.core.common.PrintConfig;
 import com.dc.datachange.core.entity.message.ReceivedMessage;
+import com.dc.datachange.core.entity.message.receivedMessage.ErrorMessage;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import static com.dc.datachange.utils.MessageUtils.printMessage;
+
 @Slf4j
 @Component
 public class DDSListener extends DDS._DataReaderListenerLocalBase{
     @Autowired
     private InvokeExecutor executor;
+    @Autowired
+    private PrintConfig printConfig;
 
     public synchronized void on_data_available(DataReader reader) {
 
@@ -32,10 +38,14 @@ public class DDSListener extends DDS._DataReaderListenerLocalBase{
         if (status == RETCODE_OK.value) {
             if (sih.value.valid_data) {
                 //核心处理逻辑
+                if(printConfig.getPrintMsgType().contains(mh.value.subject)){
+                    log.info(printMessage(mh.value));
+                }
 
                 ReceivedMessage DDSMessage = executor.getSpecMsg(mh.value);
-                executor.invoke(DDSMessage);
-
+                if(!(DDSMessage instanceof ErrorMessage)){
+                    executor.invoke(DDSMessage);
+                }
             }
             else if (sih.value.instance_state ==
                     NOT_ALIVE_DISPOSED_INSTANCE_STATE.value) {

+ 1 - 1
src/main/java/com/dc/datachange/core/exchange/DataManager.java

@@ -3,9 +3,9 @@ package com.dc.datachange.core.exchange;
 import com.dc.datachange.core.entity.message.receivedMessage.CompIntelMsg;
 import com.dc.datachange.core.entity.message.receivedMessage.EleInterMsg;
 import com.dc.datachange.core.entity.message.receivedMessage.RadarPulseMsg;
+import com.dc.datachange.core.entity.networkGroup.NetworkGroup;
 import com.dc.datachange.core.entity.platformInfo.InterferPlatform;
 import com.dc.datachange.core.entity.platformInfo.RadarPlatform;
-import com.dc.datachange.core.entity.networkGroup.NetworkGroup;
 import com.dc.datachange.utils.ConcurrentIndexedMap;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;

+ 10 - 19
src/main/java/com/dc/datachange/core/exchange/InvokeExecutor.java

@@ -1,24 +1,22 @@
 package com.dc.datachange.core.exchange;
 
 import Messenger.Message;
-import com.dc.datachange.core.entity.message.*;
+import com.dc.datachange.core.entity.message.ReceivedMessage;
 import com.dc.datachange.core.entity.message.receivedMessage.ErrorMessage;
 import com.dc.datachange.core.exchange.strategy.MessageStrategy;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import static com.dc.datachange.utils.MessageUtils.printMessage;
 @Component
 @Slf4j
 public class InvokeExecutor {
     private final Map<String, MessageStrategy> strategyMap=new HashMap<>();
-    @Value("${dds.config.enablePrint}")
-    private Boolean enablePrint;
 
     @Autowired
     public InvokeExecutor(List<MessageStrategy> strategies){
@@ -28,9 +26,6 @@ public class InvokeExecutor {
     }
 
     public ReceivedMessage getSpecMsg(Message message) {
-        if(enablePrint){
-            printMessage(message);
-        }
         MessageStrategy strategy=strategyMap.get(message.subject);
         if(strategy!=null){
             return strategy.generate(message);
@@ -41,8 +36,14 @@ public class InvokeExecutor {
     public void invoke(ReceivedMessage message) {
         try {
             MessageStrategy strategy=strategyMap.get(message.getMsgType());
-            if(strategy.validate(message)){
-                strategy.invoke(message);
+            if(strategy !=null){
+                if(strategy.validate(message)){
+                    strategy.invoke(message);
+                }else {
+                    log.error("校验不通过,消息内容:{}",printMessage(message.getDDSMessage()));
+                }
+            }else {
+                log.error("未知消息,无法处理。消息内容:{}",message);
             }
         } catch (Exception e) {
             log.error(e.getMessage());
@@ -50,14 +51,4 @@ public class InvokeExecutor {
         }
 
     }
-    public void printMessage(Message message){
-            System.out.println("==============================================");
-            System.out.println("Message: subject    = " + message.subject);
-            System.out.println("         subject_id = "
-                    + message.subject_id);
-            System.out.println("         from       = " + message.from);
-            System.out.println("         count      = " + message.count);
-            System.out.println("         text       = " + message.text);
-            System.out.println("==============================================");
-    }
 }

+ 1 - 1
src/main/java/com/dc/datachange/core/exchange/SendExecutor.java

@@ -30,7 +30,7 @@ public class SendExecutor {
     public void sendDDS(ReceivedMessage message){
         ddsPublisher.sendMessage(msgMap.get(message.getMsgType()).toMessage(message));
     }
-    public void sendDDS(Selfmsg message){
+    public void sendDDS(SelfMsg message){
         ddsPublisher.sendMessage(message.toMessage());
     }
 

+ 9 - 10
src/main/java/com/dc/datachange/core/exchange/strategy/DaoTiaoStrategy.java

@@ -1,7 +1,7 @@
 package com.dc.datachange.core.exchange.strategy;
 
 import Messenger.Message;
-import com.dc.datachange.core.common.ControlConstans;
+import com.dc.datachange.core.common.ControlConstants;
 import com.dc.datachange.core.common.MsgConstants;
 import com.dc.datachange.core.connection.DDSStatusManger;
 import com.dc.datachange.core.entity.message.ReceivedMessage;
@@ -13,7 +13,7 @@ import org.springframework.stereotype.Component;
 
 @Component
 @Slf4j
-public class DaoTiaoStrategy implements MessageStrategy{
+public class DaoTiaoStrategy implements MessageStrategy {
     @Autowired
     private DDSStatusManger stateManger;
     @Autowired
@@ -29,7 +29,6 @@ public class DaoTiaoStrategy implements MessageStrategy{
         if (stateManger.stateChecker(daoTiaoMsg)) {
             return daoTiaoMsg.isValidate();
         }
-        log.error(message.toString());
         return false;
     }
 
@@ -38,22 +37,22 @@ public class DaoTiaoStrategy implements MessageStrategy{
         DaoTiaoMsg daoTiaoMsg = (DaoTiaoMsg) message;
         sendExecutor.sendDDS(daoTiaoMsg);
         switch (daoTiaoMsg.getMsg()) {
-            case ControlConstans.CTRL_START:
+            case ControlConstants.CTRL_START:
                 if (stateManger.isInitialed())
                     stateManger.running();
-                else log.error("当前状态{}无法处理开始请求", stateManger.getState());
+                else log.error("当前状态{}无法处理开始请求", stateManger.getStatus());
                 break;
-            case ControlConstans.CTRL_PAUSE:
+            case ControlConstants.CTRL_PAUSE:
                 if (stateManger.isRunning())
                     stateManger.pause();
-                else log.error("当前状态{}无法处理暂停请求", stateManger.getState());
+                else log.error("当前状态{}无法处理暂停请求", stateManger.getStatus());
                 break;
-            case ControlConstans.CTRL_CONTINUE:
+            case ControlConstants.CTRL_CONTINUE:
                 if (stateManger.isPaused())
                     stateManger.running();
-                else log.error("当前状态{}无法处理继续请求", stateManger.getState());
+                else log.error("当前状态{}无法处理继续请求", stateManger.getStatus());
                 break;
-            case ControlConstans.CTRL_FINISH:
+            case ControlConstants.CTRL_FINISH:
                 //理论上结束后还需要手动指定开始,但是目前省略这一步,结束后自动开始
                 stateManger.stop();
                 break;

+ 1 - 1
src/main/java/com/dc/datachange/core/exchange/strategy/EleInterStrategy.java

@@ -7,7 +7,7 @@ import com.dc.datachange.core.entity.message.receivedMessage.EleInterMsg;
 import org.springframework.stereotype.Component;
 
 @Component
-public class EleInterStrategy extends RunningMsgStrategy{
+public class EleInterStrategy extends RunningMsgStrategy {
     @Override
     public ReceivedMessage generate(Message message) {
         return new EleInterMsg(message);

+ 1 - 1
src/main/java/com/dc/datachange/core/exchange/strategy/ErrorStrategy.java

@@ -7,7 +7,7 @@ import com.dc.datachange.core.entity.message.receivedMessage.ErrorMessage;
 import org.springframework.stereotype.Component;
 
 @Component
-public class ErrorStrategy implements MessageStrategy{
+public class ErrorStrategy implements MessageStrategy {
     @Override
     public ReceivedMessage generate(Message message) {
         return new ErrorMessage(message);

+ 1 - 2
src/main/java/com/dc/datachange/core/exchange/strategy/InitialMsgStrategy.java

@@ -13,7 +13,7 @@ import org.springframework.stereotype.Component;
 
 @Component
 @Slf4j
-public class InitialMsgStrategy implements MessageStrategy{
+public class InitialMsgStrategy implements MessageStrategy {
     @Autowired
     private DDSStatusManger stateManger;
     @Autowired
@@ -32,7 +32,6 @@ public class InitialMsgStrategy implements MessageStrategy{
         if (stateManger.stateChecker(initialMessage)) {
             return initialMessage.isValidate();
         }
-        log.error(message.toString());
         return false;
     }
 

+ 1 - 2
src/main/java/com/dc/datachange/core/exchange/strategy/NetGroupReqStrategy.java

@@ -12,7 +12,7 @@ import org.springframework.stereotype.Component;
 
 @Component
 @Slf4j
-public class NetGroupReqStrategy implements MessageStrategy{
+public class NetGroupReqStrategy implements MessageStrategy {
     @Autowired
     private DDSStatusManger stateManger;
     @Autowired
@@ -29,7 +29,6 @@ public class NetGroupReqStrategy implements MessageStrategy{
         if(stateManger.stateChecker(netGroupReq)){
             return netGroupReq.isValidate();
         }
-        log.error(message.toString());
         return false;
     }
 

+ 1 - 1
src/main/java/com/dc/datachange/core/exchange/strategy/RadarPulseStrategy.java

@@ -7,7 +7,7 @@ import com.dc.datachange.core.entity.message.receivedMessage.RadarPulseMsg;
 import org.springframework.stereotype.Component;
 
 @Component
-public class RadarPulseStrategy extends RunningMsgStrategy{
+public class RadarPulseStrategy extends RunningMsgStrategy {
 
     @Override
     public ReceivedMessage generate(Message message) {

+ 6 - 4
src/main/java/com/dc/datachange/messageManager/controller/MessageController.java

@@ -1,15 +1,17 @@
 package com.dc.datachange.messageManager.controller;
 
-import com.dc.datachange.utils.PageUtils;
-import com.dc.datachange.utils.R;
 import com.dc.datachange.core.entity.message.receivedMessage.CompIntelMsg;
 import com.dc.datachange.core.entity.message.receivedMessage.EleInterMsg;
 import com.dc.datachange.core.entity.message.receivedMessage.RadarPulseMsg;
 import com.dc.datachange.core.exchange.DataManager;
+import com.dc.datachange.utils.PageUtils;
+import com.dc.datachange.utils.R;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
-import java.util.*;
+import java.util.List;
 
 @RestController
 @RequestMapping("/message")

+ 5 - 3
src/main/java/com/dc/datachange/networkGroup/controller/NetworkController.java

@@ -1,8 +1,8 @@
 package com.dc.datachange.networkGroup.controller;
 
-import com.dc.datachange.core.entity.networkGroup.NetworkGroup;
 import com.dc.datachange.core.entity.graph.EdgeVo;
 import com.dc.datachange.core.entity.graph.NodeVo;
+import com.dc.datachange.core.entity.networkGroup.NetworkGroup;
 import com.dc.datachange.core.entity.platformInfo.InterferPlatform;
 import com.dc.datachange.core.entity.platformInfo.Platform;
 import com.dc.datachange.core.entity.platformInfo.RadarPlatform;
@@ -12,7 +12,9 @@ import com.dc.datachange.exception.IllegalTypeException;
 import com.dc.datachange.exception.NameDuplicatedException;
 import com.dc.datachange.exception.NetworkCreateException;
 import com.dc.datachange.exception.PlatUsedException;
-import com.dc.datachange.networkGroup.entity.*;
+import com.dc.datachange.networkGroup.entity.NetworkParams;
+import com.dc.datachange.networkGroup.entity.RawGroup;
+import com.dc.datachange.networkGroup.entity.StationVo;
 import com.dc.datachange.utils.PageUtils;
 import com.dc.datachange.utils.R;
 import lombok.extern.slf4j.Slf4j;
@@ -115,7 +117,7 @@ public class NetworkController {
         if (networkGroup != null) {
             String oldParams = networkGroup.getParams();
             networkGroup.setParams(networkParams.getParams());
-            if (networkParams.getPlatformSet() != null) {
+            if (networkParams.getPlatformSet() != null && !networkParams.getPlatformSet().isEmpty()) {
                 try {
                     Set<Platform> collect = networkParams.getPlatformSet().stream()
                             .map(x -> dataManager.getData(networkGroup.getTypeClass(), x))

+ 12 - 0
src/main/java/com/dc/datachange/remote/SDRClient.java

@@ -0,0 +1,12 @@
+package com.dc.datachange.remote;
+
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+
+import java.util.Map;
+
+@FeignClient(name="SDR")
+public interface SDRClient {
+    @GetMapping("/sdk/send")
+    Map<String,String> send();
+}

+ 17 - 0
src/main/java/com/dc/datachange/remote/SDRController.java

@@ -0,0 +1,17 @@
+package com.dc.datachange.remote;
+
+import com.dc.datachange.utils.R;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController("/SDR")
+public class SDRController {
+    @Autowired
+    private SDRClient sdrClient;
+
+    @GetMapping("/send")
+    public R Send(){
+        return R.ok(sdrClient.send().toString());
+    }
+}

+ 11 - 1
src/main/java/com/dc/datachange/utils/MessageUtils.java

@@ -1,8 +1,11 @@
 package com.dc.datachange.utils;
 
+import Messenger.Message;
+import com.dc.datachange.core.common.MsgConstants;
+import com.dc.datachange.core.common.PlatConstants;
 import com.dc.datachange.core.entity.graph.EdgeVo;
-import com.dc.datachange.core.entity.platformInfo.Platform;
 import com.dc.datachange.core.entity.networkGroup.NetworkGroup;
+import com.dc.datachange.core.entity.platformInfo.Platform;
 
 import java.time.LocalTime;
 import java.time.format.DateTimeFormatter;
@@ -35,4 +38,11 @@ public class MessageUtils {
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm.ss");
         return LocalTime.now().format(formatter);
     }
+
+    public static String printMessage(Message message){
+        return "\n"
+                +"Message: subject    = " + MsgConstants.MSG_MAP.get(message.subject)+" "+message.subject+"\n"
+                +"         from       = " + PlatConstants.PLAT_MAP.get(message.from) + " "+ message.from+"\n"
+                +"         text       = " + message.text+"\n";
+    }
 }

+ 3 - 3
src/main/java/com/dc/datachange/utils/Simulator.java

@@ -1,15 +1,15 @@
 package com.dc.datachange.utils;
 
 import Messenger.Message;
-import com.dc.datachange.core.common.ControlConstans;
+import com.dc.datachange.core.common.ControlConstants;
 import com.dc.datachange.core.common.MsgConstants;
 import com.dc.datachange.core.common.PlatConstants;
 import com.dc.datachange.core.connection.DDSPublisher;
+import com.dc.datachange.core.entity.networkGroup.NetworkGroup;
 import com.dc.datachange.core.entity.platformInfo.InterferPlatform;
 import com.dc.datachange.core.entity.platformInfo.RadarPlatform;
 import com.dc.datachange.core.exchange.DataManager;
 import com.dc.datachange.networkGroup.controller.NetworkController;
-import com.dc.datachange.core.entity.networkGroup.NetworkGroup;
 import com.dc.datachange.networkGroup.entity.NetworkParams;
 import com.dc.datachange.networkGroup.entity.RawGroup;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -147,7 +147,7 @@ public class Simulator {
                 PlatConstants.SUPPORT_PLATFORM+" "+PlatConstants.EXCHANGE_PLATFORM,
                 MsgConstants.DAOTIAO_MSG,
                 count,
-                ControlConstans.CTRL_FINISH,
+                ControlConstants.CTRL_FINISH,
                 count));
         return R.ok();
     }

+ 14 - 1
src/main/resources/application.yml

@@ -2,6 +2,11 @@
 spring:
   application:
     name: dataChange
+  cloud:
+    nacos:
+      discovery:
+        server-addr: 10.203.149.104:8848
+        namespace: fire
 
 # 应用服务 WEB 访问端口
 server:
@@ -20,4 +25,12 @@ dds:
     isReliable: false
     isWaitForAcks: false
   config:
-    enablePrint: true
+    printMsgType:
+      - "0" #错误消息
+      - "1" #初始化消息,包含平台信息
+      - "2" #导调控制信息
+      - "41" #分组请求
+      - "5" #雷达脉冲信息
+      - "6" #电子干扰信息
+      - "7" #综合情报信息
+      - "8" #心跳

+ 0 - 6
src/main/resources/static/index.html

@@ -1,6 +0,0 @@
-<html>
-<body>
-<h1>hello word!!!</h1>
-<p>this is a html page</p>
-</body>
-</html>