ソースを参照

r28 description add

shjung 9 ヶ月 前
コミット
cfc9eea9c6

+ 19 - 8
src/main/java/com/tsi/comm/consumer/kafka/KafkaConsumerWorker.java

@@ -70,6 +70,8 @@ public class KafkaConsumerWorker implements MessageListener<String, byte[]> {
         int turnOff = ((status >> 2) & 0x01);       //소등, 1: 소등, 0: 정상
         int sensing = ((status >> 3) & 0x01);       //감응, 1: 감응, 0: 정상
         int trans   = ((status >> 4) & 0x01);       //전이, 1: 전이중, 0: 전이완료
+        int ppc     = ((status >> 5) & 0x01);       //우선신호(PPC): 1: 서비스 중(In Service), 0: Not in Service ==> R28
+        int hold    = ((status >> 6) & 0x01);       //현시유지: 1: 유지, 0: 정상 ==> R28
 
         int conflict   = ((error     ) & 0x01);     //모순 이상,      1 : 이상, 0 : 정상
         int centerComm = ((error >> 1) & 0x01);     //센터 통신 이상, 1: 센터 통신이상, 0 : 정상
@@ -85,8 +87,8 @@ public class KafkaConsumerWorker implements MessageListener<String, byte[]> {
 
         log.info("   LocalTime: ({})", signalTime);
         log.info("  SystemTime: ({})", SysUtils.getSysTimeStr());
-        log.info("      STATUS: 전이({}), 감응({}), 소등({}), 점멸({}), 수동({}) - (1:전이중, 0:전이완료... 1:상태, 0:정상)",
-                trans, sensing, turnOff, blink, manual);
+        log.info("      STATUS: 전이({}), 감응({}), 소등({}), 점멸({}), 수동({}), PPC({}), HOLD({}) - (1:전이중, 0:전이완료... 1:상태, 0:정상)",
+                trans, sensing, turnOff, blink, manual, ppc, hold);
         log.info("       ERROR: SCU통신({}), 센터통신({}), 모순({}) - (1: 이상, 0: 정상)",
                 scuComm, centerComm, conflict);
         log.info("CycleCounter: {} sec.", counter);
@@ -121,19 +123,20 @@ public class KafkaConsumerWorker implements MessageListener<String, byte[]> {
             return;
         }
 
-        log.info("SEQ\t신호등정보\t방향\t시간정보신뢰성\t보행자   \t비보호신호\t신호등상태\t표출\t잔여\t방향코드");
+        log.info("SEQ\t신호등정보\t방향\t시간정보신뢰성\t보행자   \t보행/감응\t비보호신호\t신호등상태\t표출\t잔여\t방향코드");
         for (int ii = 0; ii < statusCount; ii++) {
-            int dirInfo = buffer[idx++] & 0xFF;
-            int sttsInfo = buffer[idx++] & 0xFF;
+            int dirInfo   = buffer[idx++] & 0xFF;
+            int sttsInfo  = buffer[idx++] & 0xFF;
             int displayTm = buffer[idx++] & 0xFF;
-            int remainTm = buffer[idx++] & 0xFF;
-            int dirCode = buffer[idx++] & 0xFF;
+            int remainTm  = buffer[idx++] & 0xFF;
+            int dirCode   = buffer[idx++] & 0xFF;
 
             int dirAdd     = ((dirInfo) & 0x0F);        //3 ~ 0, 방향추가정보, 해당 방향에 연등지 없음(0), 해당 방향의 첫번째 연등지(1), 해당 방향의 두번째 연등지(2)
             int lightsType = ((dirInfo >> 4) & 0x0F);   //7 ~ 4, 신호등 정보, ■ 미지정(0), 직진(1), 좌회전(2), 보행자(3), 자전거(4), 우회전(5), 버스(6), 유턴(7)
 
             int lighting   = ((sttsInfo     ) & 0x07);  //2 ~ 0, 신호등 상태, ■ 소등(0), 적색점등(1), 황색점등(2), 녹색점등(3), 적색점멸(4), 황색점멸(5), 녹색점멸(6)
             int unprotect  = ((sttsInfo >> 3) & 0x01);  //3, 비보호 상태, ■ 신호등 정보 유턴/좌회전에 대한 비보호 여부, ■ 비보호 아님(0), 비보호(1)
+            int walkerExt  = ((sttsInfo >> 5) & 0x01);  //5, 보행연장/차량감응제어(0: 없음, 1: 보행신호-연장중 또는 차량신호-감응제어중
             int walkerPush = ((sttsInfo >> 6) & 0x01);  //6, 보행자(푸쉬 또는 자동검지), ■ 없음(0), 버튼 눌림 or 자동검지(1)
             int timeFlag   = ((sttsInfo >> 7) & 0x01);  //7, 시간 정보 신뢰성, ■ 고정신호시간(0), 가변신호시간(1)
 
@@ -157,6 +160,13 @@ public class KafkaConsumerWorker implements MessageListener<String, byte[]> {
                 case 1: ptimeFlag = "가변신호(1)"; break;
                 default: ptimeFlag = "XXX(" + timeFlag + ")"; break;
             }
+            String pwalkerExt;
+            switch (walkerExt)
+            {
+                case 0: pwalkerExt = "없음(0)    "; break;
+                case 1: pwalkerExt = "연장/감응(1)"; break;
+                default: pwalkerExt = "XXX(" + walkerExt + ")"; break;
+            }
             String pwalkerPush;
             switch (walkerPush)
             {
@@ -183,12 +193,13 @@ public class KafkaConsumerWorker implements MessageListener<String, byte[]> {
                 case 6: plighting = "녹색점멸(6)"; break;
                 default: plighting = "XXX(" + lighting + ")"; break;
             }
-            log.info("{}\t{}\t{}\t{}\t{}\t{}\t{}\t{}\t{}\t{}",
+            log.info("{}\t{}\t{}\t{}\t{}\t{}\t{}\t{}\t{}\t{}\t{}",
                     String.format("%3d", ii),
                     plightInfo,
                     dirAdd,
                     ptimeFlag,
                     pwalkerPush,
+                    pwalkerExt,
                     punprotect,
                     plighting,
                     displayTm,