songwenbin 2 years ago
parent
commit
9bbea6bfb2

BIN
gddlly/build/classes/java/main/com/gyee/edge/gddlly/Bootstrap.class


BIN
gddlly/build/classes/java/main/com/gyee/edge/gddlly/config/Iec104Config.class


BIN
gddlly/build/classes/java/main/com/gyee/edge/gddlly/config/Point.class


BIN
gddlly/build/classes/java/main/com/gyee/edge/gddlly/config/PointService.class


BIN
gddlly/build/classes/java/main/com/gyee/edge/gddlly/iec104/Iec104Session.class


BIN
gddlly/build/tmp/compileJava/previous-compilation-data.bin


+ 1 - 1
gddlly/src/main/java/com/gyee/edge/gddlly/Bootstrap.java

@@ -41,7 +41,7 @@ public class Bootstrap implements CommandLineRunner {
         log.info("config : " + iec104Config.toString());
 
         //加载测点映射数据
-        //pointService.initPointMap();
+        pointService.initPointMap();
 
         // Configure the server.
         EventLoopGroup bossGroup = new NioEventLoopGroup(1);

+ 1 - 1
gddlly/src/main/java/com/gyee/edge/gddlly/config/Iec104Config.java

@@ -13,7 +13,7 @@ import org.springframework.stereotype.Component;
 public class Iec104Config {
 
     //服务监听端口
-    private short port = 8014;
+    private short port = 8019;
 
     //轮询发送时间
     private int pollingInterval = 1000;

+ 4 - 0
gddlly/src/main/java/com/gyee/edge/gddlly/config/Point.java

@@ -14,8 +14,12 @@ public class Point {
     private float coef;
     private String org;
 
+    //最新值
     private double value;
+    //false -- 未发送, true -- 已发送
+    // 如果value变化,将consumed置为false;
     private boolean consumed;
+
     private Date lastUpdateTime;
 
 }

+ 2 - 0
gddlly/src/main/java/com/gyee/edge/gddlly/config/PointService.java

@@ -18,6 +18,8 @@ public class PointService {
     @Autowired
     private Database db;
 
+    //外层: key = 分组号(iec104 asduAddress), Value = 该分组下所有点的map结构
+    //内层:key = 点名, value = point对象
     private Map<Integer, Map<String, Point>> aiMap;
 
     private Map<Integer, Map<String, Point>> diMap;

+ 11 - 5
gddlly/src/main/java/com/gyee/edge/gddlly/iec104/Iec104Session.java

@@ -15,6 +15,7 @@ import io.netty.channel.socket.nio.NioSocketChannel;
 import io.netty.util.concurrent.Future;
 import io.netty.util.concurrent.GenericFutureListener;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 
 import java.net.InetSocketAddress;
 import java.util.Date;
@@ -75,7 +76,7 @@ public class Iec104Session implements Runnable {
                     case 0x13: //停止命令
                         state = SessionState.STOP104;
                         //todo: 停止数据的发送
-
+                        this.stop();
                         return BasicInstruction104.createSysMessage(UControlEnum.STOPDT_YES);
                     default:
                         return null;
@@ -134,12 +135,17 @@ public class Iec104Session implements Runnable {
     public void run() {
         try {
             isRunning = true;
-            //todo: 从redis读取数据,发送到客户端
-            //1、从redis读取数据,填充aiMap、diMap中,point的value,consumed,lastUpdateTime;
+            while(isRunning) {
+                //todo: 从redis读取数据,发送到客户端
+                //1、从redis读取数据,填充aiMap、diMap中,point的value,consumed,lastUpdateTime;
+
+                //2、如果SessionState.CALL_ALL, 全量传输
 
-            //2、如果SessionState.CALL_ALL, 全量传输
+                //3、如果SessionState.CALL_ALL_END,变化传输
+
+                Thread.sleep(100);
+            }
 
-            //3、如果SessionState.CALL_ALL_END,变化传输
 
         } catch (Exception e) {