| 
					
				 | 
			
			
				@@ -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, 
			 |