浏览代码

update ggits status

shjung 10 月之前
父节点
当前提交
9ce2e9d0e1

+ 1 - 1
src/main/java/com/ggits/comm/server/dao/mapper/batch/SigIntDao.java

@@ -36,7 +36,7 @@ public class SigIntDao extends BatchDaoService {
             param.put("SIGLIGHT_BLINK_FLAG",        obj.SIGLIGHT_BLINK_FLAG);
             param.put("CONTRLR_MANUAL_FLAG",        obj.CONTRLR_MANUAL_FLAG);
             param.put("CONTRLR_TMDIFF_CONTRL_FLAG", obj.CONTRLR_TMDIFF_CONTRL_FLAG);
-            param.put("MAP_NO",                     obj.mapNo);
+            param.put("MAP_NO",                     obj.MAP_NO);
             param.put("INT_SIG_CYCLE_CNT",          obj.INT_SIG_CYCLE_CNT);
             param.put("INT_SIG_CYCLE_LEN",          obj.INT_SIG_CYCLE_LEN);
             param.put("A_RING_1_PHASE_VAL",         obj.A_RING_1_PHASE_VAL);

+ 13 - 3
src/main/java/com/ggits/comm/server/dto/IntStatusDto.java

@@ -26,7 +26,7 @@ public class IntStatusDto implements Serializable {
     public String SIGLIGHT_BLINK_FLAG;         	//	N	CHAR(1)	Y
     public String CONTRLR_MANUAL_FLAG;         	//	N	CHAR(1)	Y
     public String CONTRLR_TMDIFF_CONTRL_FLAG;  	//	N	CHAR(1)	Y
-    public int    mapNo;                       //	N	NUMBER(1)	Y
+    public int    MAP_NO;                       //	N	NUMBER(1)	Y
     public int    INT_SIG_CYCLE_CNT;            //	N	NUMBER(3)	Y
     public int    INT_SIG_CYCLE_LEN;            //	N	NUMBER(3)	Y
     public int    A_RING_1_PHASE_VAL;           //	N	NUMBER(3)	Y
@@ -52,9 +52,19 @@ public class IntStatusDto implements Serializable {
     public IntStatusDto(String regionCd, int intNo) {
         this.regionCd = regionCd;
         this.intNo = intNo;
+        initStatus();
+    }
+    public void initStatus() {
+        this.COMM_ON_OFF_FLAG = "1";            	//	N	CHAR(1)	Y
+        this.CONTRLR_OPER_MODE_CD = "0";        	//	N	CHAR(1)	Y
 
-        this.CONTRLR_MANUAL_FLAG = "0";
-        this.CONTRLR_TMDIFF_CONTRL_FLAG = "0";
+        this.A_RING_PHASE_VAL = 0;				//	N	NUMBER(3)	Y
+        this.B_RING_PHASE_VAL = 0;             //	N	NUMBER(3)	Y
+        this.SIGLIGHT_TURNOFF_FLAG = "0";       	//	N	CHAR(1)	Y
+        this.SIGLIGHT_BLINK_FLAG = "0";         	//	N	CHAR(1)	Y
+        this.CONTRLR_MANUAL_FLAG = "0";         	//	N	CHAR(1)	Y
+        this.CONTRLR_TMDIFF_CONTRL_FLAG = "0";  	//	N	CHAR(1)	Y
+        this.MAP_NO             = 0;                       //	N	NUMBER(1)	Y
 
         this.INT_SIG_CYCLE_CNT  = 0;           //	N	NUMBER(3)	Y
         this.INT_SIG_CYCLE_LEN  = 0;           //	N	NUMBER(3)	Y

+ 37 - 33
src/main/java/com/ggits/comm/server/process/work/GgitsPacketWorker.java

@@ -196,31 +196,6 @@ public class GgitsPacketWorker extends AbstractAppWorker implements Runnable {
                 blink         = (lcStts >> 1) & 0x01;
                 dbError       = (lcStts     ) & 0x01;
 
-                // 교차로 상태
-//                constants.LC_STATE_COMM_ERROR = 0; // 통신이상
-//                constants.LC_STATE_COMM_OK = 1; // 정상
-//                constants.LC_STATE_FLASH = 2; // 점멸
-//                constants.LC_STATE_SHUTDOWN = 3; // 소등
-//                constants.LC_STATE_POLICE_PROGRESS = 4; // 수동진행
-//                constants.LC_STATE_PHASE_HOLD = 5; // 현시유지
-                // 정상, 현시유지, 수동진행 일 때만 이동류 표시
-//                if (lcState == constants.LC_STATE_COMM_OK || lcState == constants.LC_STATE_PHASE_HOLD || lcState == constants.LC_STATE_POLICE_PROGRESS) {
-//                    tempMovementInfoA = tempLcInfo.movementInfo.find(e => ((e.planClass === planClass + 1) && (e.ringNumber === 1) && (e.phaseNumber === phaseNumber[0])));
-//                    tempMovementInfoB = tempLcInfo.movementInfo.find(e => ((e.planClass === planClass + 1) && (e.ringNumber === 2) && (e.phaseNumber === phaseNumber[1])));
-//                }
-// 교차로 상태(0: 통신이상, 1: 정상, 2: 점멸, 3: 소등, 4: 수동진행, 5: 현시유지)
-//                if (reversedBinaryDataString[15] == 1) return constants.LC_STATE_COMM_ERROR;
-//                else {
-//                    if (holdPhaseNumber != 0) return constants.LC_STATE_PHASE_HOLD;
-//                    if (reversedBinaryDataString[1] == 1) return constants.LC_STATE_FLASH;
-//                    if (reversedBinaryDataString[2] == 1) return constants.LC_STATE_SHUTDOWN;
-//                    if (reversedBinaryDataString[7] == 1) return constants.LC_STATE_POLICE_PROGRESS;
-//                    if (reversedBinaryDataString[6] == 1) return constants.LC_STATE_POLICE_PROGRESS;
-//                    if (reversedBinaryDataString[5] == 1) return constants.LC_STATE_FLASH;
-//                    if (reversedBinaryDataString[4] == 1) return constants.LC_STATE_SHUTDOWN;
-//                    return constants.LC_STATE_COMM_OK;
-//                }
-
 //import java.util.Date;
 //// Unix 시간 계산
 //Date date = new Date(2023 - 1900, 1, 15, 0, 0, 0);
@@ -232,17 +207,46 @@ public class GgitsPacketWorker extends AbstractAppWorker implements Runnable {
 //currTime[2] = (byte) ((unixTime >> 16) & 0xFF);
 //currTime[3] = (byte) ((unixTime >> 24) & 0xFF);
 
+                String ppcControl = "0";
+                String manualFlag = "0";
+                String turnOffFlag = "0";
+                String blinkFlag = "0";
 
+                // 경기도 교차로 상태(0: 통신이상, 1: 정상, 2: 점멸, 3: 소등, 4: 수동진행, 5: 현시유지)
                 IntStatusDto status = intDto.getStatus();
-                status.COLLCT_DTIME          = COLLCT_DTIME;
-                status.A_RING_PHASE_VAL      = aRingPhase;
-                status.B_RING_PHASE_VAL      = bRingPhase;
-                status.COMM_ON_OFF_FLAG      = String.valueOf(centerComm);
-                status.mapNo = operMapNo;
-                status.CONTRLR_OPER_MODE_CD  = String.valueOf(operMode);
-                status.SIGLIGHT_TURNOFF_FLAG = String.valueOf(turnOff);
-                status.SIGLIGHT_BLINK_FLAG   = String.valueOf(blink);
+                status.initStatus();
 
+                if (lcStts != 0) {
+                    if (holdPhase > 0) {
+                        aRingPhase = holdPhase-1;
+                        bRingPhase = holdPhase-1;
+                        ppcControl = "1";
+                    }
+                    if (policeManProg == 1 || policeMan == 1) {
+                        manualFlag = "1";
+                    }
+                    if (turnOff == 1 || policeTurnOff == 1) {
+                        turnOffFlag = "1";
+                    }
+                    if (blink == 1 || policeBlink == 1) {
+                        blinkFlag = "1";
+                    }
+
+                    status.COLLCT_DTIME = COLLCT_DTIME;
+                    status.COMM_ON_OFF_FLAG = String.valueOf(centerComm);       // 통신 ON/OFF 여부(0: 정상, 1: 통신 FAIL)
+                    status.CONTRLR_OPER_MODE_CD = String.valueOf(operMode);     // 제어기 운영모드 코드(0 : SCU 고정주기 모드
+                                                                                //  1 : 감응하지 않는 OFFLINE 제어모드
+                                                                                //  2 : 감응되는 OFFLINE 제어모드
+                                                                                //  4 : 감응되는 온라인 제어모드
+                                                                                //  5 : 감응하지 않는 온라인 제어모드)
+                    status.A_RING_PHASE_VAL = aRingPhase;                       // A 링 현시값(0~7)
+                    status.B_RING_PHASE_VAL = bRingPhase;                       // B 링 현시값(0~7)
+                    status.MAP_NO = operMapNo;                                  // 맵 번호( 0 : 일반제, 1~5: 시차제, 6 : 전용맵)
+                    status.SIGLIGHT_TURNOFF_FLAG = turnOffFlag;                 // 신호등 소등 여부(1: 소등, 0: 정상)
+                    status.SIGLIGHT_BLINK_FLAG = blinkFlag;                     // 신호등 점멸 여부(1: 점멸, 0: 정상)
+                    status.CONTRLR_MANUAL_FLAG = manualFlag;                    // 제어기 수동 여부(1 : ON(수동),  0 : OFF(자동))
+                    status.PPC_CONTRL_FLAG = ppcControl;                        // PPC제어여부(0: PPC Disable 1: PPC Enabled)
+                }
                 statusLists.add(status);
             }
             if (statusLists.isEmpty()) {