|
@@ -63,12 +63,12 @@ public class CenterCommServerReceiver {
|
|
|
//log.error("VMS PACKET: {}", SysUtils.byteArrayToHex(data.getBody()));
|
|
|
if (data.getLength() > 0) {
|
|
|
ByteBuffer byteBuffer = ByteBuffer.wrap(data.getBody());
|
|
|
- byteBuffer.order(ByteOrder.BIG_ENDIAN);
|
|
|
+ byteBuffer.order(ByteOrder.LITTLE_ENDIAN);
|
|
|
|
|
|
byte[] vmsId;
|
|
|
byte count;
|
|
|
- byte opCode = byteBuffer.get();
|
|
|
- byte msgSeq = byteBuffer.get();
|
|
|
+ byte opCode = data.getOpCode();
|
|
|
+ byte msgSeq = data.getMsgSeq();
|
|
|
log.info("OP CODE: {}, MsgSeq: {}", opCode, msgSeq);
|
|
|
switch(opCode) {
|
|
|
case CENTER_COMM_DEFINE.INT_OP_VMS_FORM_SAVE:
|
|
@@ -131,54 +131,54 @@ public class CenterCommServerReceiver {
|
|
|
short module = byteBuffer.getShort();
|
|
|
count = byteBuffer.get();
|
|
|
log.info("INT_OP_VMS_STATE_RES: total({}), error({}), normal({}), module({}), count: {} EA.", total, error, normal, module, count);
|
|
|
- for (int ii = 0; ii < count; ii++) {
|
|
|
- vmsId = new byte[CENTER_COMM_DEFINE.INT_VMS_MAX_ID];
|
|
|
- byteBuffer.get(vmsId);
|
|
|
- byte OprMode = byteBuffer.get(); /* VMS운영모드, 0:auto, 1:Fix */
|
|
|
- byte Comm = byteBuffer.get(); /* 유선통신상태, 0:정상 1:장애 */
|
|
|
- byte Wcomm = byteBuffer.get(); /* 무선통신상태, 0:정상 1:장애 */
|
|
|
-
|
|
|
- byte DoorStatus = byteBuffer.get(); /* 도어상태정보코드, 0:열림 1:닫힘 2:알수없음 */
|
|
|
- byte ModulePowerStatus = byteBuffer.get(); /* 모듈전원상태정보코드, 0:켜짐 1:꺼짐 2:알수없음 */
|
|
|
- short BodyTemp = byteBuffer.getShort(); /* 함체온도값(℃), 범위(-128~127) */
|
|
|
- byte LuminanceStatus = byteBuffer.get(); /* 화면의 밝기값 (최대 휘도값을 100으로 했을 때의 백분율 값), 범위(0~100) */
|
|
|
- byte FanStatus = byteBuffer.get(); /* Fan 동작상태정보코드, 0:켜짐, 1:꺼짐 2:알수없음 */
|
|
|
- byte HeaterStatus = byteBuffer.get(); /* Heater 동작상태정보코드, 0:켜짐, 1:꺼짐 2:알수없음 */
|
|
|
-
|
|
|
- byte ExternalLightStatus = byteBuffer.get(); /* 선택 외부조명 동작상태정보코드 0:켜짐, 1:꺼짐, 2:자동(공단은 미사용) */
|
|
|
- byte AlarmLightStatus = byteBuffer.get(); /* 선택 경광등 동작상태정보코드 0:켜짐, 1:꺼짐 */
|
|
|
- byte SpeakerStatus = byteBuffer.get(); /* 선택 스피커 동작상태정보코드 0:켜짐, 1:꺼짐 */
|
|
|
- byte[] ControllerCurrentTime = new byte[CENTER_COMM_DEFINE.INT_VMS_MAX_DATETIME];
|
|
|
- byteBuffer.get(ControllerCurrentTime);
|
|
|
- byte Voltage = byteBuffer.get(); /* 전압, 범위(0~255), 사용안함 */
|
|
|
-
|
|
|
- byte ModuleState = byteBuffer.get(); /* 모듈 상태, 0:정상 1:장애 2:알수없음 */
|
|
|
- byte ModuleHorizontal = byteBuffer.get(); /* 가로 모듈수 */
|
|
|
- byte ModuleVertical = byteBuffer.get(); /* 세로 모듈수 */
|
|
|
- byte[] ModuleStatus = new byte[CENTER_COMM_DEFINE.INT_VMS_MAX_MODULE_BIT]; /* 모듈 개별 상태, 0:정상 1:장애 2:알수없음 */
|
|
|
- byteBuffer.get(ModuleStatus);
|
|
|
- byte PowerCount = byteBuffer.get(); /* 전원 갯수 */
|
|
|
- byte[] PowerStatus = new byte[CENTER_COMM_DEFINE.INT_VMS_MAX_POWER_BIT]; /* 전원 개별 상태, 0:켜짐 1:꺼짐 2:알수없음 */
|
|
|
- byteBuffer.get(PowerStatus);
|
|
|
- byte[] Dummy = new byte[CENTER_COMM_DEFINE.INT_VMS_STATUE_DUMMY]; /* protocol dummy bytes */
|
|
|
- byteBuffer.get(Dummy);
|
|
|
- short ScheduledMessageOperatingTime = byteBuffer.getShort(); /* 필수 계획된 메시지의 동작시간(초) */
|
|
|
- short ModuleOperatingTemperature = byteBuffer.getShort(); /* 필수 모듈 전원이 꺼지는 온도값(℃) */
|
|
|
- short FanOperatingTemperature = byteBuffer.getShort(); /* 필수 Fan 동작 기준 온도값(℃) */
|
|
|
- short HeaterOperatingTemperature = byteBuffer.getShort(); /* 필수 Heater 동작 기준 온도값(℃) */
|
|
|
- short ExternalLightOperatingLuminance = byteBuffer.getShort(); /* 선택 외부전등 동작 기준 휘도값 */
|
|
|
- short ModuleBasicFailureRate = byteBuffer.getShort(); /* 선택 모듈 장애율 (한 개의 모듈을 장애로 처리하기 위한 픽셀의 백분율값) */
|
|
|
- short MaximumRetry = byteBuffer.getShort(); /* 선택 최대 재시도 횟수(회) */
|
|
|
- short ResponseTimeOut = byteBuffer.getShort(); /* 선택 최대응답대기시간 (초) */
|
|
|
- short BlinkingCycleTime = byteBuffer.getShort(); /* 선택 점멸시간 주기 ( 1/10초단위) */
|
|
|
-
|
|
|
- for (int jj = 0; jj < vmsId.length; jj++) {
|
|
|
- if (vmsId[jj] < '0' || vmsId[jj] > '9') {
|
|
|
- vmsId[jj] = ' ';
|
|
|
- }
|
|
|
- }
|
|
|
- //log.info("{}, VmsId: {}, ModuleHor: {}, ModuleVer: {}", ii+1, new String(vmsId).trim(), ModuleHorizontal, ModuleVertical);
|
|
|
- }
|
|
|
+// for (int ii = 0; ii < count; ii++) {
|
|
|
+// vmsId = new byte[CENTER_COMM_DEFINE.INT_VMS_MAX_ID];
|
|
|
+// byteBuffer.get(vmsId);
|
|
|
+// byte OprMode = byteBuffer.get(); /* VMS운영모드, 0:auto, 1:Fix */
|
|
|
+// byte Comm = byteBuffer.get(); /* 유선통신상태, 0:정상 1:장애 */
|
|
|
+// byte Wcomm = byteBuffer.get(); /* 무선통신상태, 0:정상 1:장애 */
|
|
|
+//
|
|
|
+// byte DoorStatus = byteBuffer.get(); /* 도어상태정보코드, 0:열림 1:닫힘 2:알수없음 */
|
|
|
+// byte ModulePowerStatus = byteBuffer.get(); /* 모듈전원상태정보코드, 0:켜짐 1:꺼짐 2:알수없음 */
|
|
|
+// short BodyTemp = byteBuffer.getShort(); /* 함체온도값(℃), 범위(-128~127) */
|
|
|
+// byte LuminanceStatus = byteBuffer.get(); /* 화면의 밝기값 (최대 휘도값을 100으로 했을 때의 백분율 값), 범위(0~100) */
|
|
|
+// byte FanStatus = byteBuffer.get(); /* Fan 동작상태정보코드, 0:켜짐, 1:꺼짐 2:알수없음 */
|
|
|
+// byte HeaterStatus = byteBuffer.get(); /* Heater 동작상태정보코드, 0:켜짐, 1:꺼짐 2:알수없음 */
|
|
|
+//
|
|
|
+// byte ExternalLightStatus = byteBuffer.get(); /* 선택 외부조명 동작상태정보코드 0:켜짐, 1:꺼짐, 2:자동(공단은 미사용) */
|
|
|
+// byte AlarmLightStatus = byteBuffer.get(); /* 선택 경광등 동작상태정보코드 0:켜짐, 1:꺼짐 */
|
|
|
+// byte SpeakerStatus = byteBuffer.get(); /* 선택 스피커 동작상태정보코드 0:켜짐, 1:꺼짐 */
|
|
|
+// byte[] ControllerCurrentTime = new byte[CENTER_COMM_DEFINE.INT_VMS_MAX_DATETIME];
|
|
|
+// byteBuffer.get(ControllerCurrentTime);
|
|
|
+// byte Voltage = byteBuffer.get(); /* 전압, 범위(0~255), 사용안함 */
|
|
|
+//
|
|
|
+// byte ModuleState = byteBuffer.get(); /* 모듈 상태, 0:정상 1:장애 2:알수없음 */
|
|
|
+// byte ModuleHorizontal = byteBuffer.get(); /* 가로 모듈수 */
|
|
|
+// byte ModuleVertical = byteBuffer.get(); /* 세로 모듈수 */
|
|
|
+// byte[] ModuleStatus = new byte[CENTER_COMM_DEFINE.INT_VMS_MAX_MODULE_BIT]; /* 모듈 개별 상태, 0:정상 1:장애 2:알수없음 */
|
|
|
+// byteBuffer.get(ModuleStatus);
|
|
|
+// byte PowerCount = byteBuffer.get(); /* 전원 갯수 */
|
|
|
+// byte[] PowerStatus = new byte[CENTER_COMM_DEFINE.INT_VMS_MAX_POWER_BIT]; /* 전원 개별 상태, 0:켜짐 1:꺼짐 2:알수없음 */
|
|
|
+// byteBuffer.get(PowerStatus);
|
|
|
+// byte[] Dummy = new byte[CENTER_COMM_DEFINE.INT_VMS_STATUE_DUMMY]; /* protocol dummy bytes */
|
|
|
+// byteBuffer.get(Dummy);
|
|
|
+// short ScheduledMessageOperatingTime = byteBuffer.getShort(); /* 필수 계획된 메시지의 동작시간(초) */
|
|
|
+// short ModuleOperatingTemperature = byteBuffer.getShort(); /* 필수 모듈 전원이 꺼지는 온도값(℃) */
|
|
|
+// short FanOperatingTemperature = byteBuffer.getShort(); /* 필수 Fan 동작 기준 온도값(℃) */
|
|
|
+// short HeaterOperatingTemperature = byteBuffer.getShort(); /* 필수 Heater 동작 기준 온도값(℃) */
|
|
|
+// short ExternalLightOperatingLuminance = byteBuffer.getShort(); /* 선택 외부전등 동작 기준 휘도값 */
|
|
|
+// short ModuleBasicFailureRate = byteBuffer.getShort(); /* 선택 모듈 장애율 (한 개의 모듈을 장애로 처리하기 위한 픽셀의 백분율값) */
|
|
|
+// short MaximumRetry = byteBuffer.getShort(); /* 선택 최대 재시도 횟수(회) */
|
|
|
+// short ResponseTimeOut = byteBuffer.getShort(); /* 선택 최대응답대기시간 (초) */
|
|
|
+// short BlinkingCycleTime = byteBuffer.getShort(); /* 선택 점멸시간 주기 ( 1/10초단위) */
|
|
|
+//
|
|
|
+// for (int jj = 0; jj < vmsId.length; jj++) {
|
|
|
+// if (vmsId[jj] < '0' || vmsId[jj] > '9') {
|
|
|
+// vmsId[jj] = ' ';
|
|
|
+// }
|
|
|
+// }
|
|
|
+// //log.info("{}, VmsId: {}, ModuleHor: {}, ModuleVer: {}", ii+1, new String(vmsId).trim(), ModuleHorizontal, ModuleVertical);
|
|
|
+// }
|
|
|
break;
|
|
|
default:
|
|
|
log.info("Other opCode: {}", opCode);
|