瀏覽代碼

incheon add node

shjung 11 月之前
父節點
當前提交
7343003c84

+ 1 - 1
src/main/java/com/tsi/comm/server/mybatis/TsiDatabaseService.java

@@ -153,7 +153,7 @@ public class TsiDatabaseService {
                 tsiNodeAddDetailVo.setNodeId(nodeId);
                 tsiNodeAddDetailVo.setOriginDirCode(nodeAddDetailVo.getOriginDirCode());
                 tsiNodeAddDetailVo.setAddNodeOrder(nodeAddDetailVo.getAddNodeOrder());
-                tsiNodeAddDetailVo.setAddDirCode(nodeAddDetailVo.getAddDirCode());
+                tsiNodeAddDetailVo.setAddDirCode(nodeAddDetailVo.getAddDirCode());  // 배열로 저장한다.
                 tsiNodeAddDetailVo.setNodeObj(addNodeVo);
 
                 tsiNodeAddVo.getAddNodeMap().put(tsiNodeAddDetailVo.getOriginDirCode()*1000 + tsiNodeAddDetailVo.getAddNodeOrder(), tsiNodeAddDetailVo);

+ 8 - 1
src/main/java/com/tsi/comm/server/protocol/TsiCpuPacket.java

@@ -333,11 +333,18 @@ public class TsiCpuPacket extends AbstractTsiPacket {
             else {
                 // 추가 노드 정보
                 int directionCode = (int)status[INDEX_STATUS_DIRECTION];
+                int direction = directionCode/10;
+                int addNodeIdx = directionCode%10;
+                if (addNodeIdx > 4) {
+                    // 인천공항 연등지 인 경우 2개 이상이기 때문에 연등지1 = 15, 연등지2=16, ....
+                    dirAdd = addNodeIdx - 4;
+                    directionCode = direction * 10; // 15,16,17,18,19=10, 25,26,27,28,29=20, ....
+                }
                 status[INDEX_STATUS_DIR_ADD] = (byte) (status[INDEX_STATUS_DIR_ADD] & 0xF0);  // 방향추가정보를 0 으로 초기화
                 TsiNodeAddDetailVo detailVo = tsiNodeAddVo.getAddNodeMap().get(directionCode * 1000 + dirAdd);
                 if (detailVo != null) {
                     //detailVo.getNodeObj();
-                    for (int dirIdx = 0; dirIdx < 2; dirIdx++) {
+                    for (int dirIdx = 0; dirIdx < TsiNodeAddDetailVo.MAX_NODE_ADD; dirIdx++) {
                         if (detailVo.getAddDirCode()[dirIdx] != 0x00) {
                             List<byte[]> list = addStatus.get(detailVo.getNodeId());
                             if (list == null) {

+ 22 - 9
src/main/java/com/tsi/comm/server/vo/TsiNodeAddDetailVo.java

@@ -2,26 +2,39 @@ package com.tsi.comm.server.vo;
 
 import lombok.Data;
 
+import java.util.Arrays;
+
 @Data
 public class TsiNodeAddDetailVo {
+    public static int MAX_NODE_ADD = 10;
     private long nodeId;
     private int  originDirCode;
     private int  addNodeOrder;
-    private byte[] addDirCode = new byte[2];
+    private byte[] addDirCode = new byte[MAX_NODE_ADD];
     private TsiNodeVo nodeObj;
 
     public void setAddDirCode(String addDirCode) {
-        this.addDirCode[0] = 0x00;
-        this.addDirCode[1] = 0x00;
+        Arrays.fill(this.addDirCode, (byte) 0x00);
         try {
             String[] arrAddDirCode = addDirCode.split(",");
-            if (arrAddDirCode.length >= 1) {
-                this.addDirCode[0] = (byte) Integer.parseInt(arrAddDirCode[0]);
-            }
-            if (arrAddDirCode.length >= 2) {
-                this.addDirCode[1] = (byte) Integer.parseInt(arrAddDirCode[1]);
+            for (int ii = 0; ii < arrAddDirCode.length && ii < MAX_NODE_ADD; ii++) {
+                this.addDirCode[ii] = (byte) Integer.parseInt(arrAddDirCode[ii]);
             }
-        } catch (Exception e) {
         }
+        catch (Exception e) {
+        }
+
+//        this.addDirCode[0] = 0x00;
+//        this.addDirCode[1] = 0x00;
+//        try {
+//            String[] arrAddDirCode = addDirCode.split(",");
+//            if (arrAddDirCode.length >= 1) {
+//                this.addDirCode[0] = (byte) Integer.parseInt(arrAddDirCode[0]);
+//            }
+//            if (arrAddDirCode.length >= 2) {
+//                this.addDirCode[1] = (byte) Integer.parseInt(arrAddDirCode[1]);
+//            }
+//        } catch (Exception e) {
+//        }
     }
 }

+ 2 - 3
src/test/java/com/tsi/comm/server/TsiCommServerApplicationTests.java

@@ -5,8 +5,7 @@ import com.tsi.app.common.utils.CRC16Utils;
 import com.tsi.app.common.utils.HexString;
 import com.tsi.comm.server.protocol.TsiCpuPacket;
 import lombok.extern.slf4j.Slf4j;
-import org.junit.Test;
-import org.springframework.boot.test.context.SpringBootTest;
+import org.junit.jupiter.api.Test;
 
 import java.net.InetAddress;
 import java.net.UnknownHostException;
@@ -16,7 +15,7 @@ import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 
 @Slf4j
-@SpringBootTest
+//@SpringBootTest
 public class TsiCommServerApplicationTests {
 
     //@Test