shjung 1 year ago
parent
commit
3f3cc987a5

+ 2 - 2
conf/debug.properties

@@ -1,5 +1,5 @@
 #system debug setting configuration...
-#Tue Oct 31 12:28:11 KST 2023
+#Tue Oct 31 17:20:11 KST 2023
 packet-info=1001
 packet-dump=1001
-system-debug=true
+system-debug=false

+ 4 - 4
src/main/java/com/its/vms/api/service/VmsControlService.java

@@ -83,7 +83,7 @@ public class VmsControlService {
         String ctrlType = String.format("V%02X", body[0]);
         String ctrlVal = "";
         switch(controlType) {
-            case CONTROL_SIGNBOARD_POWER: //           (0x01, "0x00.전광판 전원제어"),
+            case CONTROL_DISPLAY_POWER: //           (0x01, "0x00.전광판 전원제어"),
                 ctrlVal  = (body[1] == (byte)(eVmsReqBoardPower.vms_req_board_power_on.getValue() & 0xFF)) ? "Board Panel Power ON" : "Board Panel Power OFF";
                 break;
             case CONTROL_RESET: //                     (0x02, "0x02.제어기 리셋트"),
@@ -100,7 +100,7 @@ public class VmsControlService {
             case CONTROL_BLINK_CYCLE: //               (0x05, "0x05.점멸시간 주기"),
                 ctrlVal  = String.format("Blink Cycle 0x%02X", body[1]);
                 break;
-            case CONTROL_BRIGHT: //                    (0x06, "0x06.밝기 제어"),
+            case CONTROL_DISPLAY_BRIGHT: //                    (0x06, "0x06.밝기 제어"),
                 ctrlVal  = String.format("Bright 0x%02X, 0x%02X", body[1], body[2]);
                 break;
             case CONTROL_FAN: //                       (0x07, "0x07.Fan 제어"),
@@ -161,7 +161,7 @@ public class VmsControlService {
      */
     public VmsControlDto.VmsControlRes controlPanlOnOff(Long vmsCtlrNmbr, VmsControlDto.VmsControlPanlOnOfReq req) {
         log.warn("VmsControlService.controlPanlOnOff: VMS {}, {}.", vmsCtlrNmbr, req);
-        eVmsStatusControl command = eVmsStatusControl.CONTROL_SIGNBOARD_POWER;
+        eVmsStatusControl command = eVmsStatusControl.CONTROL_DISPLAY_POWER;
         TbVmsCtlrDto vmsObj = this.repoService.getCtlrMap(vmsCtlrNmbr);
         if (vmsObj == null) {
             return unknownControlNmbr(command, req.getUserId(), vmsCtlrNmbr);
@@ -200,7 +200,7 @@ public class VmsControlService {
      */
     public VmsControlDto.VmsControlRes controlBright(Long vmsCtlrNmbr, VmsControlDto.VmsControlBrightReq req) {
         log.warn("VmsControlService.controlBright: VMS {}, {}.", vmsCtlrNmbr, req);
-        eVmsStatusControl command = eVmsStatusControl.CONTROL_BRIGHT;
+        eVmsStatusControl command = eVmsStatusControl.CONTROL_DISPLAY_BRIGHT;
         TbVmsCtlrDto vmsObj = this.repoService.getCtlrMap(vmsCtlrNmbr);
         if (vmsObj == null) {
             return unknownControlNmbr(command, req.getUserId(), vmsCtlrNmbr);

+ 11 - 0
src/main/java/com/its/vms/dao/mapper/batch/VmsCtlrDao.java

@@ -38,6 +38,17 @@ public class VmsCtlrDao extends BatchDaoService {
             param.put("commSttsCd",     obj.getCommSttsCd());
             param.put("modlStts",       obj.getModlStts());
             param.put("pwerStts",       obj.getPwerStts());
+            param.put("cboxHum",        obj.getCboxHum());
+            param.put("cboxFanSttsCd",  obj.getCboxFanSttsCd());
+            param.put("cboxHetrSttsCd", obj.getCboxHetrSttsCd());
+            param.put("tmpr",           obj.getTmpr());
+            param.put("hum",            obj.getHum());
+            param.put("doorSttsCd",     obj.getDoorSttsCd());
+            param.put("brghMode",       obj.getBrghMode());
+            param.put("brghCurr",       obj.getBrghCurr());
+            param.put("brghWeek",       obj.getBrghWeek());
+            param.put("brghNght",       obj.getBrghNght());
+            param.put("pwerOnOffCd",    obj.getPwerOnOffCd());
 
             lists.add(param);
         });

+ 114 - 52
src/main/java/com/its/vms/entity/TbVmsCtlrStts.java

@@ -1,6 +1,7 @@
 package com.its.vms.entity;
 
 import com.its.app.utils.SysUtils;
+import com.its.vms.xnettcp.vms.process.response.impl.VmsResStatus;
 import lombok.Data;
 
 import java.io.Serializable;
@@ -26,6 +27,18 @@ public class TbVmsCtlrStts implements Serializable {
     private String modlStts;        // 모듈상태(문자열, 0: 꺼짐, 1: 켜짐, 9: 알수없음)
     private String pwerStts;        // 전원상태(문자열, 0: 꺼짐, 1: 켜짐, 9: 알수없음)
 
+    private Integer cboxHum;        //CBOX_HUM	N	NUMBER(3)	Y	0		함체 습도
+    private String cboxFanSttsCd;   //CBOX_FAN_STTS_CD	N	VARCHAR2(7)	Y			함체 팬 상태 코드
+    private String cboxHetrSttsCd;  //CBOX_HETR_STTS_CD	N	VARCHAR2(7)	Y			함체 히터 상태 코드
+    private Integer tmpr;           //TMPR	N	NUMBER(3)	Y	0		표출부 온도
+    private Integer hum;            //HUM	N	NUMBER(3)	Y	0		표출부 습도
+    private String doorSttsCd;      //DOOR_STTS_CD	N	VARCHAR2(7)	Y			표출부 문 상태 코드
+    private Integer brghMode;       //BRGH_MODE	N	NUMBER(3)	Y	0		표출부 휘도모드(0:주간, 1:야간, 2: 자동, 3: 수동)
+    private Integer brghCurr;       //BRGH_CURR	N	NUMBER(3)	Y	0		표출부 현재 휘도값
+    private Integer brghWeek;       //BRGH_WEEK	N	NUMBER(3)	Y	0		표출부 주간 휘도값
+    private Integer brghNght;       //BRGH_NGHT	N	NUMBER(3)	Y	0		표출부 야간 휘도값
+    private String pwerOnOffCd;     //PWER_ONOFF_CD	N	VARCHAR2(7)	Y			표출부 전원 ON/OFF 코드
+
     public TbVmsCtlrStts(Long vmsCtlrNmbr) {
         this.vmsCtlrNmbr = vmsCtlrNmbr;
         initUnknown();
@@ -45,6 +58,19 @@ public class TbVmsCtlrStts implements Serializable {
         dto.setCommSttsCd(this.commSttsCd);
         dto.setModlStts(this.modlStts);
         dto.setPwerStts(this.pwerStts);
+
+        dto.setCboxHum(this.cboxHum);
+        dto.setCboxFanSttsCd(this.cboxFanSttsCd);
+        dto.setCboxHetrSttsCd(this.cboxHetrSttsCd);
+        dto.setTmpr(this.tmpr);
+        dto.setHum(this.hum);
+        dto.setDoorSttsCd(this.doorSttsCd);
+        dto.setBrghMode(this.brghMode);
+        dto.setBrghCurr(this.brghCurr);
+        dto.setBrghWeek(this.brghWeek);
+        dto.setBrghNght(this.brghNght);
+        dto.setPwerOnOffCd(this.pwerOnOffCd);
+
         return dto;
     }
     public void initStts(boolean isConnected) {
@@ -57,6 +83,8 @@ public class TbVmsCtlrStts implements Serializable {
     public void initUnknown() {
         this.updtDt = SysUtils.getSysTime();
         this.cmncSttsCd = "CMS2";
+        this.commSttsCd = "CMS2";
+
         this.pwerSttsCd = "PWS2";
         this.modlSttsCd = "MOS2";
         this.cboxDoorSttsCd = "CDS2";
@@ -64,9 +92,20 @@ public class TbVmsCtlrStts implements Serializable {
         this.hetrSttsCd = "HTS2";
         this.cboxTmpr = 0;
         this.brghVal = 0;
-        this.commSttsCd = "CMS2";
         this.modlStts = "11111111111111111111";
         this.pwerStts = "11111111111111111111";
+
+        this.cboxHum = 0;
+        this.cboxFanSttsCd = "PAS2";
+        this.cboxHetrSttsCd = "HTS2";
+        this.tmpr = 0;
+        this.hum = 0;
+        this.doorSttsCd = "CDS2";
+        this.brghMode = 0;
+        this.brghCurr = 0;
+        this.brghWeek = 0;
+        this.brghNght = 0;
+        this.pwerOnOffCd = "PWO2";
     }
     public void initError() {
         initUnknown();
@@ -93,80 +132,103 @@ public class TbVmsCtlrStts implements Serializable {
         this.commSttsCd = dto.getCommSttsCd();
         this.modlStts = dto.getModlStts();
         this.pwerStts = dto.getPwerStts();
+
+        this.cboxHum = dto.getCboxHum();
+        this.cboxFanSttsCd = dto.getCboxFanSttsCd();
+        this.cboxHetrSttsCd = dto.getCboxHetrSttsCd();
+        this.tmpr = dto.getTmpr();
+        this.hum = dto.getHum();
+        this.doorSttsCd = dto.getDoorSttsCd();
+        this.brghMode = dto.getBrghMode();
+        this.brghCurr = dto.getBrghCurr();
+        this.brghWeek = dto.getBrghWeek();
+        this.brghNght = dto.getBrghNght();
+        this.pwerOnOffCd = dto.getPwerOnOffCd();
     }
-/*
-    private int door;       // Door Open/Close 상태, 0x00: Open, 0x01: Close, 0x09: Unknown
-    private int power;      // 전원의 ON/OFF 상태, 0x00: On, 0x01: Off, 0x09: Unknown (Sign Board)
-    private int fan;        // VMS Fan 동작 상태, 0x00: On, 0x01: Off, 0x09: Unknown
-    private int heater;     // VMS Heater 동작 상태, 0x00: On, 0x01: Off, 0x09: Unknown
-    private int formNo;     // 표출 폼 번호, 현재 표출중인 폼 번호 : 0~9999
-    private int reboot;     // 표출 폼 번호, 0x00: 정상, 0x01: 재실행
-    private int cboxTemp;   // 함체온도, 127 ~ -127, -128 : Unknown
-    private int brightMode; // 화면의 밝기 - 휘도 모드, 0x00:주간, 0x01:야간, 0x02:Auto, 0x03:수동
-    private int brightCurr; // 화면의 밝기 - 현재 휘도값, 0~100
-    private int brightWeek; // 화면의 밝기 - 주간 휘도값, 0~100
-    private int brightNght; // 화면의 밝기 - 야간 휘도값, 0~100
-    private int dpTemp;     // 외부온도, -127 ~ 127, -128: Unknown
-    private int dpHum;      // 외부습도,    0 ~ 100,  101: Unknown
-    private int powerModuleStts = 0x02; // 0x00: 정상, 0x01: 에러, 0x02: Unknown
-    private int moduleStts = 0x02;      // 0x00: 정상, 0x01: 불량, 0x02: Unknown
-    private int cboxFan = 0x09;         // 0x00: On, 0x01: Off, 0x09: Unknown
-    private int cboxHeather = 0x09;     // 0x00: On, 0x01: Off, 0x09: Unknown
 
- */
-    public boolean updateStatus(int door, int power, int fan, int heater, int formNo, int reboot, int cboxTemp,
-                                int brightMode, int brightCurr, int brightWeek, int brightNght, int dpTemp, int dpHum,
-                                int powerModuleStts, int moduleStts, int cboxFan, int cboxHeather) {
+    public boolean updateStatus(VmsResStatus stts) {
         boolean isDifferent = false;
-        this.updtDt = SysUtils.getSysTime();
 
-        int doorSttsCd;
-        if (door == 0) doorSttsCd = 1;
-        else if (door == 1) doorSttsCd = 0;
-        else doorSttsCd = 2;
+        this.updtDt = SysUtils.getSysTime();
 
-        if (fan > 1) {
-            fan = 2;
+        String tmpSttsCd = "";
+        tmpSttsCd = "PWS" + stts.getPowerSupply();
+        if (!this.pwerStts.equals(tmpSttsCd)) {
+            this.pwerStts = tmpSttsCd;
+            isDifferent = true;
         }
-        if (heater > 1) {
-            heater = 2;
+        tmpSttsCd = "MOS" + stts.getLedModl();
+        if (!this.modlSttsCd.equals(tmpSttsCd)) {
+            this.modlSttsCd = tmpSttsCd;
+            isDifferent = true;
+        }
+        tmpSttsCd = "CDS" + stts.getCboxDoor();
+        if (!this.cboxDoorSttsCd.equals(tmpSttsCd)) {
+            this.cboxDoorSttsCd = tmpSttsCd;
+            isDifferent = true;
+        }
+        if (this.cboxTmpr != stts.getCboxTmpr()) {
+            this.cboxTmpr = stts.getCboxTmpr();
+            isDifferent = true;
+        }
+        if (this.cboxHum != stts.getCboxHum()) {
+            this.cboxHum = stts.getCboxHum();
+            isDifferent = true;
+        }
+        tmpSttsCd = "PAS" + stts.getCboxFan();
+        if (!this.cboxFanSttsCd.equals(tmpSttsCd)) {
+            this.cboxFanSttsCd = tmpSttsCd;
+            isDifferent = true;
+        }
+        tmpSttsCd = "HTS" + stts.getCboxHetr();
+        if (!this.cboxFanSttsCd.equals(tmpSttsCd)) {
+            this.cboxFanSttsCd = tmpSttsCd;
+            isDifferent = true;
         }
 
-        String pwerSttsCd = "PWS" + powerModuleStts;
-        String modlSttsCd = "MOS" + moduleStts;
-        String cboxDoorSttsCd = "CDS" + doorSttsCd;
-        String fanSttsCd = "PAS" + fan;
-        String hetrSttsCd = "HTS" + heater;
+        tmpSttsCd = "PAS" + stts.getFan();
+        if (!this.fanSttsCd.equals(tmpSttsCd)) {
+            this.fanSttsCd = tmpSttsCd;
+            isDifferent = true;
+        }
+        this.hetrSttsCd = "HTS2";   // 표출부 히터정보는 없음(사용안함)
 
-        if (!pwerSttsCd.equals(this.pwerSttsCd)) {
+        tmpSttsCd = "CDS" + stts.getDoor();
+        if (!this.doorSttsCd.equals(tmpSttsCd)) {
+            this.doorSttsCd = tmpSttsCd;
             isDifferent = true;
-            this.pwerSttsCd = pwerSttsCd;
         }
-        if (!modlSttsCd.equals(this.modlSttsCd)) {
+        tmpSttsCd = "PWO" + stts.getPower();
+        if (!this.pwerOnOffCd.equals(tmpSttsCd)) {
+            this.pwerOnOffCd = tmpSttsCd;
             isDifferent = true;
-            this.modlSttsCd = modlSttsCd;
         }
-        if (!cboxDoorSttsCd.equals(this.cboxDoorSttsCd)) {
+
+        if (this.tmpr != stts.getTmpr()) {
+            this.tmpr = stts.getCboxHum();
             isDifferent = true;
-            this.cboxDoorSttsCd = cboxDoorSttsCd;
         }
-        if (!fanSttsCd.equals(this.fanSttsCd)) {
+        if (this.hum != stts.getHum()) {
+            this.hum = stts.getCboxHum();
             isDifferent = true;
-            this.fanSttsCd = fanSttsCd;
         }
-        if (!hetrSttsCd.equals(this.hetrSttsCd)) {
+        if (this.brghMode != stts.getBrghMode()) {
+            this.brghMode = stts.getCboxHum();
             isDifferent = true;
-            this.hetrSttsCd = hetrSttsCd;
         }
-
-        if (cboxTemp != this.cboxTmpr) {
+        if (this.brghCurr != stts.getBrghCurr()) {
+            this.brghCurr = stts.getCboxHum();
+            isDifferent = true;
+        }
+        if (this.brghWeek != stts.getBrghWeek()) {
+            this.brghWeek = stts.getCboxHum();
             isDifferent = true;
-            this.cboxTmpr = cboxTemp;
         }
-        if (brightCurr != this.brghVal) {
+        if (this.brghNght != stts.getBrghNght()) {
+            this.brghNght = stts.getCboxHum();
             isDifferent = true;
-            this.brghVal = brightCurr;
         }
+        this.brghVal = this.brghCurr;   // 사용안함
 
         return isDifferent;
     }

+ 61 - 71
src/main/java/com/its/vms/xnettcp/vms/process/response/impl/VmsResStatus.java

@@ -8,34 +8,38 @@ import com.its.vms.xnettcp.vms.process.response.VmsResponse;
 import com.its.vms.xnettcp.vms.protocol.VmsFramePacket;
 import com.its.vms.xnettcp.vms.protocol.enums.eVmsOpCode;
 import com.its.vms.xnettcp.vms.protocol.impl.dle.VmsDleFramePacket;
+import lombok.Getter;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 
 import java.nio.ByteBuffer;
 
 @Slf4j
+@Getter
 @RequiredArgsConstructor
 public class VmsResStatus implements VmsResponse {
 
     private final TbVmsCtlrDto vmsObj;
     private final VmsFramePacket resFramePacket;
-    private int door;       // Door Open/Close 상태, 0x00: Open, 0x01: Close, 0x09: Unknown
-    private int power;      // 전원의 ON/OFF 상태, 0x00: On, 0x01: Off, 0x09: Unknown (Sign Board)
-    private int fan;        // VMS Fan 동작 상태, 0x00: On, 0x01: Off, 0x09: Unknown
-    private int heater;     // VMS Heater 동작 상태, 0x00: On, 0x01: Off, 0x09: Unknown
-    private int formNo;     // 표출 폼 번호, 현재 표출중인 폼 번호 : 0~9999
-    private int reboot;     // 표출 폼 번호, 0x00: 정상, 0x01: 재실행
-    private int cboxTemp;   // 함체온도, 127 ~ -127, -128 : Unknown
-    private int brightMode; // 화면의 밝기 - 휘도 모드, 0x00:주간, 0x01:야간, 0x02:Auto, 0x03:수동
-    private int brightCurr; // 화면의 밝기 - 현재 휘도값, 0~100
-    private int brightWeek; // 화면의 밝기 - 주간 휘도값, 0~100
-    private int brightNght; // 화면의 밝기 - 야간 휘도값, 0~100
-    private int dpTemp;     // 외부온도, -127 ~ 127, -128: Unknown
-    private int dpHum;      // 외부습도,    0 ~ 100,  101: Unknown
-    private int powerModuleStts = 0x02; // 0x00: 정상, 0x01: 에러, 0x02: Unknown
-    private int moduleStts = 0x02;      // 0x00: 정상, 0x01: 불량, 0x02: Unknown
-    private int cboxFan = 0x09;         // 0x00: On, 0x01: Off, 0x09: Unknown
-    private int cboxHeather = 0x09;     // 0x00: On, 0x01: Off, 0x09: Unknown
+
+    private int formNo;         //표출 폼 번호, 현재 표출중인 폼 번호 : 0~9999
+    private int reboot;         //재실행 여부, 0x00: 정상, 0x01: 재실행
+    private int cboxTmpr;       //온도		1	N	127 ~ -127, -128 : Unknown
+    private int cboxHum;        //습도		1	N	0 ~ 100, 101: Unknown
+    private int cboxDoor;       //Door 상태		1	N	0x00: Open, 0x01: Close, 0x09: Unknown
+    private int cboxFan;        //Fan 동작 상태		1	N	0x00: On, 0x01: Off, 0x09: Unknown
+    private int cboxHetr;       //Heater 동작 상태		1	N	0x00: On, 0x01: Off, 0x09: Unknown
+    private int tmpr;           //온도		1	N	127 ~ -127, -128 : Unknown
+    private int hum;            //습도		1	N	0 ~ 100, 101: Unknown
+    private int door;           //Door 상태		1	N	0x00: Open, 0x01: Close, 0x09: Unknown
+    private int fan;            //Fan 동작 상태		1	N	0x00: On, 0x01: Off, 0x09: Unknown
+    private int power;          //전원 ON/OFF 상태		1	N	0x00: On, 0x01: Off, 0x09: Unknown
+    private int brghMode;       //화면의 밝기	휘도 모드	1	N	0x00:주간, 0x01:야간, 0x02:Auto, 0x03:수동
+    private int brghCurr;       //현재 휘도값	1	N	0~100
+    private int brghWeek;       //주간 휘도값	1	N	0~100
+    private int brghNght;       //야간 휘도값	1	N	0~100
+    private int powerSupply;    //전원공급장치 상태		1	N	0x00: 정상, 0x01: 에러, 0x02: Unknown
+    private int ledModl;        //LED 모듈 상태		1	N	0x00: 정상, 0x01: 불량, 0x02: Unknown
 
     @Override
     public boolean process() {
@@ -54,56 +58,39 @@ public class VmsResStatus implements VmsResponse {
 
         byte[] body = this.resFramePacket.getBody();
         log.info("VmsResStatus.process: VMS {}, body length: {}.", this.vmsObj.getVmsCtlrNmbr(), body != null ? body.length : 0);
-        if (body == null || body.length < 14) {
+        if (body == null || body.length < 19) {
             log.error("VmsResStatus.process: VMS {}, body length error: {}.", this.vmsObj.getVmsCtlrNmbr(), body != null ? body.length : 0);
             return false;
         }
 
-        // Byte.toUnsignedInt(
         ByteBuffer byteBuffer = ByteBuffer.wrap(body);
         byteBuffer.order(VmsDleFramePacket.BYTE_ORDER);
-        this.door = byteBuffer.get() & 0xFF;        // Door Open/Close 상태, 0x00: Open, 0x01: Close, 0x09: Unknown
-        this.power = byteBuffer.get() & 0xFF;       // 전원의 ON/OFF 상태, 0x00: On, 0x01: Off, 0x09: Unknown (Sign Board)
-        this.fan = byteBuffer.get() & 0xFF;         // VMS Fan 동작 상태, 0x00: On, 0x01: Off, 0x09: Unknown
-        this.heater = byteBuffer.get() & 0xFF;      // VMS Heater 동작 상태, 0x00: On, 0x01: Off, 0x09: Unknown
+
         this.formNo = byteBuffer.getShort() & 0xFFFF; // 표출 폼 번호, 현재 표출중인 폼 번호 : 0~9999
         this.reboot = byteBuffer.get() & 0xFF;      // 표출 폼 번호, 0x00: 정상, 0x01: 재실행
-        this.cboxTemp = byteBuffer.get() & 0xFF;    // 함체온도, 127 ~ -127, -128 : Unknown
-        this.brightMode = byteBuffer.get() & 0xFF;  // 화면의 밝기 - 휘도 모드, 0x00:주간, 0x01:야간, 0x02:Auto, 0x03:수동
-        this.brightCurr = byteBuffer.get() & 0xFF;  // 화면의 밝기 - 현재 휘도값, 0~100
-        this.brightWeek = byteBuffer.get() & 0xFF;  // 화면의 밝기 - 주간 휘도값, 0~100
-        this.brightNght = byteBuffer.get() & 0xFF;  // 화면의 밝기 - 야간 휘도값, 0~100
-        this.dpTemp = byteBuffer.get() & 0xFF;      // 외부온도, -127 ~ 127, -128: Unknown
-        this.dpHum = byteBuffer.get() & 0xFF;       // 외부습도, 0 ~ 100, 101: Unknown
-
-        this.cboxFan = 0x09;
-        this.cboxHeather = 0x09;
-        if (body.length >= 16) {
-            this.powerModuleStts = byteBuffer.get() & 0xFF;    // 전원 모듈 상태, 0x00: 정상, 0x01: 에러, 0x02: Unknown
-            this.moduleStts = byteBuffer.get() & 0xFF;         // 모듈 상태, 0x00: 정상, 0x01: 불량, 0x02: Unknown
-            this.cboxFan = byteBuffer.get() & 0xFF;            // 함체 Fan 동작 상태, 0x00: On, 0x01: Off, 0x09: Unknown
-            this.cboxHeather = byteBuffer.get() & 0xFF;        // 함체 Heater 동작 상태, 0x00: On, 0x01: Off, 0x09: Unknown
-        }
-        else {
-            int tmpFan1 = (this.fan & 0x0F);
-            int tmpFan2 = (this.fan & 0xF0) >> 4;
-            int tmpHtr1 = (this.heater & 0x0F);
-            int tmpHtr2 = (this.heater & 0xF0) >> 4;
-            this.fan = tmpFan1;
-            this.cboxFan = tmpFan2;
-            this.heater = tmpHtr1;
-            this.cboxHeather = tmpHtr2;
-            this.powerModuleStts = this.power;    // 전원 모듈 상태, 0x00: 정상, 0x01: 에러, 0x02: Unknown
-            this.moduleStts = this.power;         // 모듈 상태, 0x00: 정상, 0x01: 불량, 0x02: Unknown
-        }
+
+        this.cboxTmpr = byteBuffer.get() & 0xFF;       //온도		1	N	127 ~ -127, -128 : Unknown
+        this.cboxHum = byteBuffer.get() & 0xFF;        //습도		1	N	0 ~ 100, 101: Unknown
+        this.cboxDoor = byteBuffer.get() & 0xFF;       //Door 상태		1	N	0x00: Open, 0x01: Close, 0x09: Unknown
+        this.cboxFan = byteBuffer.get() & 0xFF;        //Fan 동작 상태		1	N	0x00: On, 0x01: Off, 0x09: Unknown
+        this.cboxHetr = byteBuffer.get() & 0xFF;       //Heater 동작 상태		1	N	0x00: On, 0x01: Off, 0x09: Unknown
+        this.tmpr = byteBuffer.get() & 0xFF;           //온도		1	N	127 ~ -127, -128 : Unknown
+        this.hum = byteBuffer.get() & 0xFF;            //습도		1	N	0 ~ 100, 101: Unknown
+        this.door = byteBuffer.get() & 0xFF;           //Door 상태		1	N	0x00: Open, 0x01: Close, 0x09: Unknown
+        this.fan = byteBuffer.get() & 0xFF;            //Fan 동작 상태		1	N	0x00: On, 0x01: Off, 0x09: Unknown
+        this.power = byteBuffer.get() & 0xFF;          //전원 ON/OFF 상태		1	N	0x00: On, 0x01: Off, 0x09: Unknown
+        this.brghMode = byteBuffer.get() & 0xFF;       //화면의 밝기	휘도 모드	1	N	0x00:주간, 0x01:야간, 0x02:Auto, 0x03:수동
+        this.brghCurr = byteBuffer.get() & 0xFF;       //현재 휘도값	1	N	0~100
+        this.brghWeek = byteBuffer.get() & 0xFF;       //주간 휘도값	1	N	0~100
+        this.brghNght = byteBuffer.get() & 0xFF;       //야간 휘도값	1	N	0~100
+        this.powerSupply = byteBuffer.get() & 0xFF;    //전원공급장치 상태		1	N	0x00: 정상, 0x01: 에러, 0x02: Unknown
+        this.ledModl = byteBuffer.get() & 0xFF;        //LED 모듈 상태		1	N	0x00: 정상, 0x01: 불량, 0x02: Unknown
 
         if (this.vmsObj.getDebug().isDebug()) {
             log.info("{}", toString());
         }
 
-        if (this.vmsObj.getStts().updateStatus(door, power, fan, heater, formNo, reboot, cboxTemp,
-                brightMode, brightCurr, brightWeek, brightNght, dpTemp, dpHum,
-                powerModuleStts, moduleStts, cboxFan, cboxHeather)) {
+        if (this.vmsObj.getStts().updateStatus(this)) {
             // 상태정보가 변경되었으므로 상태정보 업데이트 하도록 한다.
         }
 
@@ -115,23 +102,26 @@ public class VmsResStatus implements VmsResponse {
         StringBuilder data = new StringBuilder();
         data.append(String.format("RESPONSE-%s. VMS %d", eVmsOpCode.OP_VMS_STATUS_REQ, this.vmsObj.getVmsCtlrNmbr()));
         data.append(System.getProperty("line.separator"));
-        data.append(String.format("Door(0x%02X), ", this.door));
-        data.append(String.format("Power(0x%02X), ", this.power));
-        data.append(String.format("Fan(0x%02X), ", this.fan));
-        data.append(String.format("Heater(0x%02X), ", this.heater));
-        data.append(String.format("FormNo(%d), ", this.formNo));
-        data.append(String.format("ReBoot(0x%02X), ", this.reboot));
-        data.append(String.format("CboxTemp(%d), ", this.cboxTemp));
-        data.append(String.format("B-Mode(0x%02X), ", this.brightMode));
-        data.append(String.format("B-Curr(%d), ", this.brightCurr));
-        data.append(String.format("B-Week(%d), ", this.brightWeek));
-        data.append(String.format("B-Nght(%d), ", this.brightNght));
-        data.append(String.format("DpTemp(%d), ", this.dpTemp));
-        data.append(String.format("DpHum(%d), ", this.dpHum));
-        data.append(String.format("PowerModuleStts(0x%02X), ", this.powerModuleStts));
-        data.append(String.format("ModuleStts(0x%02X), ", this.moduleStts));
-        data.append(String.format("CboxFan(0x%02X), ", this.cboxFan));
-        data.append(String.format("CboxHeater(0x%02X)", this.cboxHeather));
+
+        data.append(String.format("표출 폼 번호(0x%02X), ", this.formNo)); //표출 폼 번호, 현재 표출중인 폼 번호 : 0~9999
+        data.append(String.format("재실행 여부(0x%02X), ", this.reboot)); //재실행 여부, 0x00: 정상, 0x01: 재실행
+
+        data.append(String.format("제어기 - 온도(%d), ", this.cboxTmpr));       //온도		1	N	127 ~ -127, -128 : Unknown
+        data.append(String.format("제어기 - 습도(%d), ", this.cboxHum));        //습도		1	N	0 ~ 100, 101: Unknown
+        data.append(String.format("제어기 - Door 상태(0x%02X), ", this.cboxDoor));       //Door 상태		1	N	0x00: Open, 0x01: Close, 0x09: Unknown
+        data.append(String.format("제어기 - Fan 동작 상태(0x%02X), ", this.cboxFan));        //Fan 동작 상태		1	N	0x00: On, 0x01: Off, 0x09: Unknown
+        data.append(String.format("제어기 - Heater 동작 상태(0x%02X), ", this.cboxHetr));       //Heater 동작 상태		1	N	0x00: On, 0x01: Off, 0x09: Unknown
+        data.append(String.format("표출부 - 온도(%d), ", this.tmpr));           //온도		1	N	127 ~ -127, -128 : Unknown
+        data.append(String.format("표출부 - 습도(%d), ", this.hum));            //습도		1	N	0 ~ 100, 101: Unknown
+        data.append(String.format("표출부 - Door 상태(0x%02X), ", this.door));           //Door 상태		1	N	0x00: Open, 0x01: Close, 0x09: Unknown
+        data.append(String.format("표출부 - Fan 동작 상태(0x%02X), ", this.fan));            //Fan 동작 상태		1	N	0x00: On, 0x01: Off, 0x09: Unknown
+        data.append(String.format("표출부 - 전원 ON/OFF 상태(0x%02X), ", this.power));          //전원 ON/OFF 상태		1	N	0x00: On, 0x01: Off, 0x09: Unknown
+        data.append(String.format("표출부 - 휘도 모드(%d), ", this.brghMode));       //화면의 밝기	휘도 모드	1	N	0x00:주간, 0x01:야간, 0x02:Auto, 0x03:수동
+        data.append(String.format("표출부 - 현재 휘도값(%d), ", this.brghCurr));       //현재 휘도값	1	N	0~100
+        data.append(String.format("표출부 - 주간 휘도값(%d), ", this.brghWeek));       //주간 휘도값	1	N	0~100
+        data.append(String.format("표출부 - 야간 휘도값(%d), ", this.brghNght));       //야간 휘도값	1	N	0~100
+        data.append(String.format("표출부 - 전원공급장치 상태(0x%02X), ", this.powerSupply));    //전원공급장치 상태		1	N	0x00: 정상, 0x01: 에러, 0x02: Unknown
+        data.append(String.format("표출부 - LED 모듈 상태(0x%02X), ", this.ledModl));        //LED 모듈 상태		1	N	0x00: 정상, 0x01: 불량, 0x02: Unknown
         return data.toString();
     }
 

+ 6 - 5
src/main/java/com/its/vms/xnettcp/vms/protocol/enums/eVmsStatusControl.java

@@ -5,17 +5,18 @@ import java.util.Map;
 
 public enum eVmsStatusControl {
 
-    CONTROL_SIGNBOARD_POWER           (0x01, "0x00.전광판 전원제어"),
+    CONTROL_DISPLAY_POWER             (0x01, "0x00.표출부함체 전광판 전원제어"),
     CONTROL_RESET                     (0x02, "0x02.제어기 리셋트"),
     CONTROL_RETRY_COUNT               (0x03, "0x03.통신 재시도 횟수"),
     CONTROL_SYSTEM_TIME               (0x04, "0x04.제어기 시간 설정"),
     CONTROL_BLINK_CYCLE               (0x05, "0x05.점멸시간 주기"),
-    CONTROL_BRIGHT                    (0x06, "0x06.밝기 제어"),
-    CONTROL_FAN                       (0x07, "0x07.Fan 제어"),
-    CONTROL_HEATER                    (0x08, "0x08.Heater 제어"),
+    CONTROL_DISPLAY_BRIGHT            (0x06, "0x06.표출부함체 밝기 제어"),
+    CONTROL_FAN                       (0x07, "0x07.제어기함체 Fan 제어"),
+    CONTROL_HEATER                    (0x08, "0x08.제어기함체 Heater 제어"),
     CONTROL_SCREEN_COLOR              (0x09, "0x09.화면 배색 제어"),
     CONTROL_MODULE_ERROR_RATIO        (0x0A, "0x0A.장애 모듈비율(%)"),
-    CONTROL_DEFAULT_SCENARIO_RUN_TIME (0x0B, "0x0B.디폴트 시나리오 동작 시간");
+    CONTROL_DEFAULT_SCENARIO_RUN_TIME (0x0B, "0x0B.디폴트 시나리오 동작 시간"),
+    CONTROL_DISPLAY_FAN               (0x0C, "0x0C.표출부함체 Fan 제어");
 
     private final int value;
     private final String string;

+ 2 - 2
src/main/java/com/its/vms/xnettcp/vms/protocol/impl/VmsReqStatusControl.java

@@ -43,7 +43,7 @@ public class VmsReqStatusControl extends VmsReqFramePacket {
 
     public void controlSignboardPower(int onOff) {
         this.body = new byte[2];
-        this.body[0] = eVmsStatusControl.CONTROL_SIGNBOARD_POWER.getByteValue();
+        this.body[0] = eVmsStatusControl.CONTROL_DISPLAY_POWER.getByteValue();
         this.body[1] = (byte)(onOff & 0xFF);
         this.framePacket.setBody(this.body);
         log.info("VmsReqStatusControl.controlSignboardPower: VMS {}, {}", this.vmsObj.getVmsCtlrNmbr(), String.format("0x%02X", this.body[1]));
@@ -88,7 +88,7 @@ public class VmsReqStatusControl extends VmsReqFramePacket {
     }
     public void controlBright(byte type, byte value) {
         this.body = new byte[3];
-        this.body[0] = eVmsStatusControl.CONTROL_BRIGHT.getByteValue();
+        this.body[0] = eVmsStatusControl.CONTROL_DISPLAY_BRIGHT.getByteValue();
         this.body[1] = (byte)(type & 0xFF);
         if (type != eVmsReqBrightControl.vms_req_bright_auto.getByteValue()) {
             this.body[2] = (byte) (value & 0xFF);

+ 241 - 98
src/main/resources/mybatis/mapper/VmsCtlrMapper.xml

@@ -71,7 +71,18 @@
                t1.brgh_val          AS brghVal,
                t1.comm_stts_cd      AS commSttsCd,
                t1.modl_stts         AS modlStts,
-               t1.pwer_stts         AS pwerStts
+               t1.pwer_stts         AS pwerStts,
+               t1.cbox_hum          AS cboxHum,
+               t1.cbox_fan_stts_cd  AS cboxFanSttsCd,
+               t1.cbox_hetr_stts_cd AS cboxHetrSttsCd,
+               t1.tmpr              AS tmpr,
+               t1.hum               AS hum,
+               t1.door_stts_cd      AS doorSttsCd,
+               t1.brgh_mode         AS brghMode,
+               t1.brgh_curr         AS brghCurr,
+               t1.brgh_week         AS brghWeek,
+               t1.brgh_nght         AS brghNght,
+               t1.pwer_onoff_cd     AS pwerOnOffCd
         from tb_vms_ctlr_stts t1
         inner join tb_vms_ctlr t2
         on t1.vms_ctlr_nmbr = t2.vms_ctlr_nmbr
@@ -83,19 +94,30 @@
     <![CDATA[
         merge into tb_vms_ctlr_stts L
             using (select
-                       #{obj.vmsCtlrNmbr}     AS vms_ctlr_nmbr,
-                       #{obj.updtDt}          AS updt_dt,
-                       #{obj.cmncSttsCd}      AS cmnc_stts_cd,
-                       #{obj.pwerSttsCd}      AS pwer_stts_cd,
-                       #{obj.modlSttsCd}      AS modl_stts_cd,
-                       #{obj.cboxDoorSttsCd}  AS cbox_door_stts_cd,
-                       #{obj.fanSttsCd}       AS fan_stts_cd,
-                       #{obj.hetrSttsCd}      AS hetr_stts_cd,
-                       #{obj.cboxTmpr}        AS cbox_tmpr,
-                       #{obj.brghVal}         AS brgh_val,
-                       #{obj.commSttsCd}      AS comm_stts_cd,
-                       #{obj.modlStts}        AS modl_stts,
-                       #{obj.pwerStts}        AS pwer_stts
+                       #{obj.vmsCtlrNmbr}    AS vms_ctlr_nmbr,
+                       #{obj.updtDt}         AS updt_dt,
+                       #{obj.cmncSttsCd}     AS cmnc_stts_cd,
+                       #{obj.pwerSttsCd}     AS pwer_stts_cd,
+                       #{obj.modlSttsCd}     AS modl_stts_cd,
+                       #{obj.cboxDoorSttsCd} AS cbox_door_stts_cd,
+                       #{obj.fanSttsCd}      AS fan_stts_cd,
+                       #{obj.hetrSttsCd}     AS hetr_stts_cd,
+                       #{obj.cboxTmpr}       AS cbox_tmpr,
+                       #{obj.brghVal}        AS brgh_val,
+                       #{obj.commSttsCd}     AS comm_stts_cd,
+                       #{obj.modlStts}       AS modl_stts,
+                       #{obj.pwerStts}       AS pwer_stts,
+                       #{obj.cboxHum}        AS cbox_hum,
+                       #{obj.cboxFanSttsCd}  AS cbox_fan_stts_cd,
+                       #{obj.cboxHetrSttsCd} AS cbox_hetr_stts_cd,
+                       #{obj.tmpr}           AS tmpr,
+                       #{obj.hum}            AS hum,
+                       #{obj.doorSttsCd}     AS door_stts_cd,
+                       #{obj.brghMode}       AS brgh_mode,
+                       #{obj.brghCurr}       AS brgh_curr,
+                       #{obj.brghWeek}       AS brgh_week,
+                       #{obj.brghNght}       AS brgh_nght,
+                       #{obj.pwerOnOffCd}    AS pwer_onoff_cd
                    from dual) M
             on (    L.vms_ctlr_nmbr = M.vms_ctlr_nmbr)
             when matched then
@@ -111,7 +133,18 @@
                     L.brgh_val          = M.brgh_val,
                     L.comm_stts_cd      = M.comm_stts_cd,
                     L.modl_stts         = M.modl_stts,
-                    L.pwer_stts         = M.pwer_stts
+                    L.pwer_stts         = M.pwer_stts,
+                    L.cbox_hum          = M.cbox_hum,
+                    L.cbox_fan_stts_cd  = M.cbox_fan_stts_cd,
+                    L.cbox_hetr_stts_cd = M.cbox_hetr_stts_cd,
+                    L.tmpr              = M.tmpr,
+                    L.hum               = M.hum,
+                    L.door_stts_cd      = M.door_stts_cd,
+                    L.brgh_mode         = M.brgh_mode,
+                    L.brgh_curr         = M.brgh_curr,
+                    L.brgh_week         = M.brgh_week,
+                    L.brgh_nght         = M.brgh_nght,
+                    L.pwer_onoff_cd     = M.pwer_onoff_cd
             when not matched then
                 insert (
                         vms_ctlr_nmbr,
@@ -126,21 +159,43 @@
                         brgh_val,
                         comm_stts_cd,
                         modl_stts,
-                        pwer_stts )
+                        pwer_stts,
+                        cbox_hum,
+                        cbox_fan_stts_cd,
+                        cbox_hetr_stts_cd,
+                        tmpr,
+                        hum,
+                        door_stts_cd,
+                        brgh_mode,
+                        brgh_curr,
+                        brgh_week,
+                        brgh_nght,
+                        pwer_onoff_cd )
                     values (
-                               M.vms_ctlr_nmbr,
-                               M.updt_dt,
-                               M.cmnc_stts_cd,
-                               M.pwer_stts_cd,
-                               M.modl_stts_cd,
-                               M.cbox_door_stts_cd,
-                               M.fan_stts_cd,
-                               M.hetr_stts_cd,
-                               M.cbox_tmpr,
-                               M.brgh_val,
-                               M.comm_stts_cd,
-                               M.modl_stts,
-                               M.pwer_stts )
+                       M.vms_ctlr_nmbr,
+                       M.updt_dt,
+                       M.cmnc_stts_cd,
+                       M.pwer_stts_cd,
+                       M.modl_stts_cd,
+                       M.cbox_door_stts_cd,
+                       M.fan_stts_cd,
+                       M.hetr_stts_cd,
+                       M.cbox_tmpr,
+                       M.brgh_val,
+                       M.comm_stts_cd,
+                       M.modl_stts,
+                       M.pwer_stts,
+                       M.cbox_hum,
+                       M.cbox_fan_stts_cd,
+                       M.cbox_hetr_stts_cd,
+                       M.tmpr,
+                       M.hum,
+                       M.door_stts_cd,
+                       M.brgh_mode,
+                       M.brgh_curr,
+                       M.brgh_week,
+                       M.brgh_nght,
+                       M.pwer_onoff_cd )
         ]]>
     </update>
 
@@ -148,19 +203,30 @@
     <![CDATA[
         merge into tb_vms_ctlr_stts L
             using (select
-                       #{vmsCtlrNmbr}     AS vms_ctlr_nmbr,
-                       #{updtDt}           AS updt_dt,
-                       #{cmncSttsCd}      AS cmnc_stts_cd,
-                       #{pwerSttsCd}      AS pwer_stts_cd,
-                       #{modlSttsCd}      AS modl_stts_cd,
+                       #{vmsCtlrNmbr}    AS vms_ctlr_nmbr,
+                       #{updtDt}         AS updt_dt,
+                       #{cmncSttsCd}     AS cmnc_stts_cd,
+                       #{pwerSttsCd}     AS pwer_stts_cd,
+                       #{modlSttsCd}     AS modl_stts_cd,
                        #{cboxDoorSttsCd} AS cbox_door_stts_cd,
-                       #{fanSttsCd}       AS fan_stts_cd,
-                       #{hetrSttsCd}      AS hetr_stts_cd,
-                       #{cboxTmpr}         AS cbox_tmpr,
-                       #{brghVal}          AS brgh_val,
-                       #{commSttsCd}      AS comm_stts_cd,
-                       #{modlStts}         AS modl_stts,
-                       #{pwerStts}         AS pwer_stts
+                       #{fanSttsCd}      AS fan_stts_cd,
+                       #{hetrSttsCd}     AS hetr_stts_cd,
+                       #{cboxTmpr}       AS cbox_tmpr,
+                       #{brghVal}        AS brgh_val,
+                       #{commSttsCd}     AS comm_stts_cd,
+                       #{modlStts}       AS modl_stts,
+                       #{pwerStts}       AS pwer_stts,
+                       #{cboxHum}        AS cbox_hum,
+                       #{cboxFanSttsCd}  AS cbox_fan_stts_cd,
+                       #{cboxHetrSttsCd} AS cbox_hetr_stts_cd,
+                       #{tmpr}           AS tmpr,
+                       #{hum}            AS hum,
+                       #{doorSttsCd}     AS door_stts_cd,
+                       #{brghMode}       AS brgh_mode,
+                       #{brghCurr}       AS brgh_curr,
+                       #{brghWeek}       AS brgh_week,
+                       #{brghNght}       AS brgh_nght,
+                       #{pwerOnOffCd}    AS pwer_onoff_cd
                    from dual) M
             on (    L.vms_ctlr_nmbr = M.vms_ctlr_nmbr)
             when matched then
@@ -176,7 +242,18 @@
                     L.brgh_val          = M.brgh_val,
                     L.comm_stts_cd      = M.comm_stts_cd,
                     L.modl_stts         = M.modl_stts,
-                    L.pwer_stts         = M.pwer_stts
+                    L.pwer_stts         = M.pwer_stts,
+                    L.cbox_hum          = M.cbox_hum,
+                    L.cbox_fan_stts_cd  = M.cbox_fan_stts_cd,
+                    L.cbox_hetr_stts_cd = M.cbox_hetr_stts_cd,
+                    L.tmpr              = M.tmpr,
+                    L.hum               = M.hum,
+                    L.door_stts_cd      = M.door_stts_cd,
+                    L.brgh_mode         = M.brgh_mode,
+                    L.brgh_curr         = M.brgh_curr,
+                    L.brgh_week         = M.brgh_week,
+                    L.brgh_nght         = M.brgh_nght,
+                    L.pwer_onoff_cd     = M.pwer_onoff_cd
             when not matched then
                 insert (
                         vms_ctlr_nmbr,
@@ -191,21 +268,43 @@
                         brgh_val,
                         comm_stts_cd,
                         modl_stts,
-                        pwer_stts )
+                        pwer_stts,
+                        cbox_hum,
+                        cbox_fan_stts_cd,
+                        cbox_hetr_stts_cd,
+                        tmpr,
+                        hum,
+                        door_stts_cd,
+                        brgh_mode,
+                        brgh_curr,
+                        brgh_week,
+                        brgh_nght,
+                        pwer_onoff_cd )
                     values (
-                               M.vms_ctlr_nmbr,
-                               M.updt_dt,
-                               M.cmnc_stts_cd,
-                               M.pwer_stts_cd,
-                               M.modl_stts_cd,
-                               M.cbox_door_stts_cd,
-                               M.fan_stts_cd,
-                               M.hetr_stts_cd,
-                               M.cbox_tmpr,
-                               M.brgh_val,
-                               M.comm_stts_cd,
-                               M.modl_stts,
-                               M.pwer_stts )
+                       M.vms_ctlr_nmbr,
+                       M.updt_dt,
+                       M.cmnc_stts_cd,
+                       M.pwer_stts_cd,
+                       M.modl_stts_cd,
+                       M.cbox_door_stts_cd,
+                       M.fan_stts_cd,
+                       M.hetr_stts_cd,
+                       M.cbox_tmpr,
+                       M.brgh_val,
+                       M.comm_stts_cd,
+                       M.modl_stts,
+                       M.pwer_stts,
+                       M.cbox_hum,
+                       M.cbox_fan_stts_cd,
+                       M.cbox_hetr_stts_cd,
+                       M.tmpr,
+                       M.hum,
+                       M.door_stts_cd,
+                       M.brgh_mode,
+                       M.brgh_curr,
+                       M.brgh_week,
+                       M.brgh_nght,
+                       M.pwer_onoff_cd )
         ]]>
     </update>
 
@@ -224,22 +323,44 @@
             brgh_val,
             comm_stts_cd,
             modl_stts,
-            pwer_stts )
+            pwer_stts,
+            cbox_hum,
+            cbox_fan_stts_cd,
+            cbox_hetr_stts_cd,
+            tmpr,
+            hum,
+            door_stts_cd,
+            brgh_mode,
+            brgh_curr,
+            brgh_week,
+            brgh_nght,
+            pwer_onoff_cd )
         values (
-                   #{obj.updtDt},
-                   #{obj.vmsCtlrNmbr},
-                   #{obj.cmncSttsCd},
-                   #{obj.pwerSttsCd},
-                   #{obj.modlSttsCd},
-                   #{obj.cboxDoorSttsCd},
-                   #{obj.fanSttsCd},
-                   #{obj.hetrSttsCd},
-                   #{obj.cboxTmpr},
-                   #{obj.brghVal},
-                   #{obj.commSttsCd},
-                   #{obj.modlStts},
-                   #{obj.pwerStts}
-               )
+           #{obj.updtDt},
+           #{obj.vmsCtlrNmbr},
+           #{obj.cmncSttsCd},
+           #{obj.pwerSttsCd},
+           #{obj.modlSttsCd},
+           #{obj.cboxDoorSttsCd},
+           #{obj.fanSttsCd},
+           #{obj.hetrSttsCd},
+           #{obj.cboxTmpr},
+           #{obj.brghVal},
+           #{obj.commSttsCd},
+           #{obj.modlStts},
+           #{obj.pwerStts},
+           #{obj.cboxHum},
+           #{obj.cboxFanSttsCd},
+           #{obj.cboxHetrSttsCd},
+           #{obj.tmpr},
+           #{obj.hum},
+           #{obj.doorSttsCd},
+           #{obj.brghMode},
+           #{obj.brghCurr},
+           #{obj.brghWeek},
+           #{obj.brghNght},
+           #{obj.pwerOnOffCd}
+       )
         ]]>
     </insert>
 
@@ -258,23 +379,45 @@
             brgh_val,
             comm_stts_cd,
             modl_stts,
-            pwer_stts )
+            pwer_stts,
+            cbox_hum,
+            cbox_fan_stts_cd,
+            cbox_hetr_stts_cd,
+            tmpr,
+            hum,
+            door_stts_cd,
+            brgh_mode,
+            brgh_curr,
+            brgh_week,
+            brgh_nght,
+            pwer_onoff_cd )
         values (
-                   #{updtDt},
-                   #{vmsCtlrNmbr},
-                   #{cmncSttsCd},
-                   #{pwerSttsCd},
-                   #{modlSttsCd},
-                   #{cboxDoorSttsCd},
-                   #{fanSttsCd},
-                   #{hetrSttsCd},
-                   #{cboxTmpr},
-                   #{brghVal},
-                   #{commSttsCd},
-                   #{modlStts},
-                   #{pwerStts}
-               )
-        ]]>
+           #{updtDt},
+           #{vmsCtlrNmbr},
+           #{cmncSttsCd},
+           #{pwerSttsCd},
+           #{modlSttsCd},
+           #{cboxDoorSttsCd},
+           #{fanSttsCd},
+           #{hetrSttsCd},
+           #{cboxTmpr},
+           #{brghVal},
+           #{commSttsCd},
+           #{modlStts},
+           #{pwerStts},
+           #{cboxHum},
+           #{cboxFanSttsCd},
+           #{cboxHetrSttsCd},
+           #{tmpr},
+           #{hum},
+           #{doorSttsCd},
+           #{brghMode},
+           #{brghCurr},
+           #{brghWeek},
+           #{brghNght},
+           #{pwerOnOffCd}
+       )
+    ]]>
     </insert>
 
     <insert id="insertVmsCtrlHs" parameterType="com.its.vms.entity.TbVmsCtrlHs">
@@ -311,17 +454,17 @@
     <![CDATA[
         update tb_vms_ctlr
         set
-            panl_pwer_mode      = #{obj.panlPwerMode},
-            fan_mode            = #{obj.fanMode},
-            fan_run_tmpr        = #{obj.fanRunTmpr},
-            hetr_mode           = #{obj.hetrMode},
-            hetr_run_tmpr       = #{obj.hetrRunTmpr},
-            brgh_mode           = #{obj.brghMode},
-            brgh_curr_step      = #{obj.brghCurrStep},
-            brgh_week_step      = #{obj.brghWeekStep},
-            brgh_nght_step      = #{obj.brghNghtStep},
-            modl_err_rate       = #{obj.modlErrRate},
-            cmnc_fail_rate      = #{obj.cmncFailRate}
+            panl_pwer_mode  = #{obj.panlPwerMode},
+            fan_mode        = #{obj.fanMode},
+            fan_run_tmpr    = #{obj.fanRunTmpr},
+            hetr_mode       = #{obj.hetrMode},
+            hetr_run_tmpr   = #{obj.hetrRunTmpr},
+            brgh_mode       = #{obj.brghMode},
+            brgh_curr_step  = #{obj.brghCurrStep},
+            brgh_week_step  = #{obj.brghWeekStep},
+            brgh_nght_step  = #{obj.brghNghtStep},
+            modl_err_rate   = #{obj.modlErrRate},
+            cmnc_fail_rate  = #{obj.cmncFailRate}
         where vms_ctlr_nmbr = #{obj.vmsCtlrNmbr}
         ]]>
     </update>