shjung 1 yıl önce
ebeveyn
işleme
5de811af88

+ 1 - 1
conf/debug.properties

@@ -1,5 +1,5 @@
 #system debug setting configuration...
-#Tue Oct 31 17:20:11 KST 2023
+#Wed Nov 01 11:33:48 KST 2023
 packet-info=1001
 packet-dump=1001
 system-debug=false

+ 0 - 2
src/main/java/com/its/vms/api/controller/VmsControlController.java

@@ -2,7 +2,6 @@ package com.its.vms.api.controller;
 
 import com.its.vms.api.dto.VmsControlDto;
 import com.its.vms.api.service.VmsControlService;
-import com.its.vms.esb.service.EsbVmsTcpService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -23,7 +22,6 @@ import javax.validation.Valid;
 public class VmsControlController {
 
     private final VmsControlService service;
-    private final EsbVmsTcpService esbService;
 
     @ApiOperation(value = "VMS 제어기 리셋", response = VmsControlDto.VmsControlRes.class)
     @PostMapping(value = "/reset/{ctlrNmbr}", produces = {"application/json; charset=utf8"})

+ 14 - 8
src/main/java/com/its/vms/dto/TbVmsCtlrDto.java

@@ -596,6 +596,9 @@ public class TbVmsCtlrDto implements Serializable {
                 VmsFormDto formDto = formData.addForm(vmsFormId, formDisplaySec, formDisplayType, formBkClr, objects.size());
                 for (int jj = 0; jj < objects.size(); jj++) {
                     VmsFormObject formObj = objects.get(jj);
+                    if (formObj.getObjectType() == 201 || formObj.getObjectType() == 301) {
+                        continue;   // 동영상파일명, 스트리밍명은 운영단말에만 표출하기 위한 정보임.
+                    }
                     int objSize = formObj.getObjectSize();
                     int blinking = formObj.getBlinking();
                     int posX = formObj.getPosX();
@@ -603,19 +606,19 @@ public class TbVmsCtlrDto implements Serializable {
                     int bkClr = formObj.getBkColor();
 
                     VmsFormObj formObjDto = null;
-                    if (objects.get(jj).getObjectKind() == eVmsFormObjectKind.OBJECT_TEXT) {
+                    if (formObj.getObjectKind() == eVmsFormObjectKind.OBJECT_TEXT) {
                         int clrR = formObj.getFontClr().getRed();
                         int clrG = formObj.getFontClr().getGreen();
                         int clrB = formObj.getFontClr().getBlue();
                         formObjDto = new VmsFormObjText(objSize, blinking, posX, posY, bkClr, clrR, clrG, clrB, formObj.getFontSize(), formObj.getFontNameCd(), formObj.getFontBold(), formObj.getTextData());
                     }
-                    else if (objects.get(jj).getObjectKind() == eVmsFormObjectKind.OBJECT_BITMAP_ID) {
+                    else if (formObj.getObjectKind() == eVmsFormObjectKind.OBJECT_BITMAP_ID) {
                         formObjDto = new VmsFormObjBitmapId(objSize, blinking, posX, posY, bkClr, formObj.getDsplWidth(), formObj.getDsplHeight(), eVmsImageType.VMS_IMAGE_TYPE_BMP.getValue(), units[ii].getBitmapId());
                     }
-                    else if (objects.get(jj).getObjectKind() == eVmsFormObjectKind.OBJECT_VIDEO_FILE) {
+                    else if (formObj.getObjectKind() == eVmsFormObjectKind.OBJECT_VIDEO_FILE) {
                         formObjDto = new VmsFormObjVideo(objSize, blinking, posX, posY, bkClr, formObj.getDsplWidth(), formObj.getDsplHeight(), formObj.getVideoFileName());
                     }
-                    else if (objects.get(jj).getObjectKind() == eVmsFormObjectKind.OBJECT_STREAM_URL) {
+                    else if (formObj.getObjectKind() == eVmsFormObjectKind.OBJECT_STREAM_URL) {
                         formObjDto = new VmsFormObjStream(objSize, blinking, posX, posY, bkClr, formObj.getDsplWidth(), formObj.getDsplHeight(), formObj.getStrmAddr());
                     }
                     else {
@@ -682,6 +685,9 @@ public class TbVmsCtlrDto implements Serializable {
             VmsFormDto formDto = formData.addForm(vmsFormId, formDisplaySec, formDisplayType, formBkClr, objects.size());
             for (int jj = 0; jj < objects.size(); jj++) {
                 VmsFormObject formObj = objects.get(jj);
+                if (formObj.getObjectType() == 201 || formObj.getObjectType() == 301) {
+                    continue;   // 동영상파일명, 스트리밍명은 운영단말에만 표출하기 위한 정보임.
+                }
                 int objSize = formObj.getObjectSize();
                 int blinking = formObj.getBlinking();
                 int posX = formObj.getPosX();
@@ -689,19 +695,19 @@ public class TbVmsCtlrDto implements Serializable {
                 int bkClr = formObj.getBkColor();
 
                 VmsFormObj formObjDto;
-                if (objects.get(jj).getObjectKind() == eVmsFormObjectKind.OBJECT_TEXT) {
+                if (formObj.getObjectKind() == eVmsFormObjectKind.OBJECT_TEXT) {
                     int clrR = formObj.getFontClr().getRed();
                     int clrG = formObj.getFontClr().getGreen();
                     int clrB = formObj.getFontClr().getBlue();
                     formObjDto = new VmsFormObjText(objSize, blinking, posX, posY, bkClr, clrR, clrG, clrB, formObj.getFontSize(), formObj.getFontNameCd(), formObj.getFontBold(), formObj.getTextData());
                 }
-                else if (objects.get(jj).getObjectKind() == eVmsFormObjectKind.OBJECT_BITMAP_ID) {
+                else if (formObj.getObjectKind() == eVmsFormObjectKind.OBJECT_BITMAP_ID) {
                     formObjDto = new VmsFormObjBitmapId(objSize, blinking, posX, posY, bkClr, formObj.getDsplWidth(), formObj.getDsplHeight(), eVmsImageType.VMS_IMAGE_TYPE_BMP.getValue(), units[downloadCnt].getBitmapId());
                 }
-                else if (objects.get(jj).getObjectKind() == eVmsFormObjectKind.OBJECT_VIDEO_FILE) {
+                else if (formObj.getObjectKind() == eVmsFormObjectKind.OBJECT_VIDEO_FILE) {
                     formObjDto = new VmsFormObjVideo(objSize, blinking, posX, posY, bkClr, formObj.getDsplWidth(), formObj.getDsplHeight(), formObj.getVideoFileName());
                 }
-                else if (objects.get(jj).getObjectKind() == eVmsFormObjectKind.OBJECT_STREAM_URL) {
+                else if (formObj.getObjectKind() == eVmsFormObjectKind.OBJECT_STREAM_URL) {
                     formObjDto = new VmsFormObjStream(objSize, blinking, posX, posY, bkClr, formObj.getDsplWidth(), formObj.getDsplHeight(), formObj.getStrmAddr());
                 }
                 else {

+ 68 - 68
src/main/java/com/its/vms/ui/SubUI.java

@@ -436,96 +436,96 @@ public abstract class SubUI {
         txtIpAddr.setHorizontalAlignment(0);
         txtIpAddr.setText("192.168.113.112");
         panel1.add(txtIpAddr, new GridConstraints(2, 4, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
-        btnReqStatus = new JButton();
-        Font btnReqStatusFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, btnReqStatus.getFont());
-        if (btnReqStatusFont != null) btnReqStatus.setFont(btnReqStatusFont);
-        btnReqStatus.setText("상태정보요청");
-        panel1.add(btnReqStatus, new GridConstraints(1, 8, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
-        btnReqParam = new JButton();
-        Font btnReqParamFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, btnReqParam.getFont());
-        if (btnReqParamFont != null) btnReqParam.setFont(btnReqParamFont);
-        btnReqParam.setText("파라미터 요청");
-        panel1.add(btnReqParam, new GridConstraints(2, 8, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
-        btnScnDnld = new JButton();
-        Font btnScnDnldFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, btnScnDnld.getFont());
-        if (btnScnDnldFont != null) btnScnDnld.setFont(btnScnDnldFont);
-        btnScnDnld.setText("시나리오 다운로드");
-        panel1.add(btnScnDnld, new GridConstraints(3, 8, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
         btnTimeSync = new JButton();
         Font btnTimeSyncFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, btnTimeSync.getFont());
         if (btnTimeSyncFont != null) btnTimeSync.setFont(btnTimeSyncFont);
         btnTimeSync.setText("시간 설정");
         panel1.add(btnTimeSync, new GridConstraints(4, 8, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
-        btnSignBoardOff = new JButton();
-        Font btnSignBoardOffFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, btnSignBoardOff.getFont());
-        if (btnSignBoardOffFont != null) btnSignBoardOff.setFont(btnSignBoardOffFont);
-        btnSignBoardOff.setText("전광판 전원 OFF");
-        btnSignBoardOff.setToolTipText("");
-        panel1.add(btnSignBoardOff, new GridConstraints(1, 9, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
-        btnSignBoardOn = new JButton();
-        Font btnSignBoardOnFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, btnSignBoardOn.getFont());
-        if (btnSignBoardOnFont != null) btnSignBoardOn.setFont(btnSignBoardOnFont);
-        btnSignBoardOn.setText("전광판 전원 ON");
-        btnSignBoardOn.setToolTipText("");
-        panel1.add(btnSignBoardOn, new GridConstraints(1, 10, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
-        btnReqFan = new JButton();
-        Font btnReqFanFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, btnReqFan.getFont());
-        if (btnReqFanFont != null) btnReqFan.setFont(btnReqFanFont);
-        btnReqFan.setText("Fan 제어");
-        btnReqFan.setToolTipText("");
-        panel1.add(btnReqFan, new GridConstraints(4, 9, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
-        btnReqHeater = new JButton();
-        Font btnReqHeaterFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, btnReqHeater.getFont());
-        if (btnReqHeaterFont != null) btnReqHeater.setFont(btnReqHeaterFont);
-        btnReqHeater.setText("Heater 제어");
-        btnReqHeater.setToolTipText("");
-        panel1.add(btnReqHeater, new GridConstraints(4, 10, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
-        cboControl = new JComboBox();
-        Font cboControlFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, cboControl.getFont());
-        if (cboControlFont != null) cboControl.setFont(cboControlFont);
-        final DefaultComboBoxModel defaultComboBoxModel1 = new DefaultComboBoxModel();
-        defaultComboBoxModel1.addElement("0x00: 꺼짐");
-        defaultComboBoxModel1.addElement("0x01: 켜짐");
-        defaultComboBoxModel1.addElement("0x02: 자동");
-        cboControl.setModel(defaultComboBoxModel1);
-        panel1.add(cboControl, new GridConstraints(3, 9, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
         final JLabel label7 = new JLabel();
         Font label7Font = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, label7.getFont());
         if (label7Font != null) label7.setFont(label7Font);
         label7.setText("ㅣ팬");
         panel1.add(label7, new GridConstraints(3, 5, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+        txtState = new JTextField();
+        txtState.setEditable(false);
+        Font txtStateFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, txtState.getFont());
+        if (txtStateFont != null) txtState.setFont(txtStateFont);
+        txtState.setHorizontalAlignment(0);
+        txtState.setText("통신");
+        panel1.add(txtState, new GridConstraints(0, 8, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, new Dimension(100, -1), new Dimension(100, -1), new Dimension(100, -1), 0, false));
         final JLabel label8 = new JLabel();
         Font label8Font = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, label8.getFont());
         if (label8Font != null) label8.setFont(label8Font);
         label8.setText("ㅣ팬/히터 제어 구분");
-        panel1.add(label8, new GridConstraints(2, 9, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
-        final JLabel label9 = new JLabel();
-        Font label9Font = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, label9.getFont());
-        if (label9Font != null) label9.setFont(label9Font);
-        label9.setText("ㅣ팬/히터 제어 값");
-        panel1.add(label9, new GridConstraints(2, 10, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+        panel1.add(label8, new GridConstraints(0, 9, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+        btnScnDnld = new JButton();
+        Font btnScnDnldFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, btnScnDnld.getFont());
+        if (btnScnDnldFont != null) btnScnDnld.setFont(btnScnDnldFont);
+        btnScnDnld.setText("시나리오 다운로드");
+        panel1.add(btnScnDnld, new GridConstraints(3, 8, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+        btnReqParam = new JButton();
+        Font btnReqParamFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, btnReqParam.getFont());
+        if (btnReqParamFont != null) btnReqParam.setFont(btnReqParamFont);
+        btnReqParam.setText("파라미터 요청");
+        panel1.add(btnReqParam, new GridConstraints(2, 8, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+        btnReqStatus = new JButton();
+        Font btnReqStatusFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, btnReqStatus.getFont());
+        if (btnReqStatusFont != null) btnReqStatus.setFont(btnReqStatusFont);
+        btnReqStatus.setText("상태정보요청");
+        panel1.add(btnReqStatus, new GridConstraints(1, 8, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
         final JPanel panel2 = new JPanel();
         panel2.setLayout(new GridLayoutManager(1, 1, new Insets(0, 0, 0, 0), -1, -1));
-        panel1.add(panel2, new GridConstraints(3, 10, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false));
+        panel1.add(panel2, new GridConstraints(1, 10, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false));
         spControl = new JSpinner();
         panel2.add(spControl, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+        final JLabel label9 = new JLabel();
+        Font label9Font = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, label9.getFont());
+        if (label9Font != null) label9.setFont(label9Font);
+        label9.setText("ㅣ팬/히터 제어 값");
+        panel1.add(label9, new GridConstraints(1, 9, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+        cboControl = new JComboBox();
+        Font cboControlFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, cboControl.getFont());
+        if (cboControlFont != null) cboControl.setFont(cboControlFont);
+        final DefaultComboBoxModel defaultComboBoxModel1 = new DefaultComboBoxModel();
+        defaultComboBoxModel1.addElement("0x00: 꺼짐");
+        defaultComboBoxModel1.addElement("0x01: 켜짐");
+        defaultComboBoxModel1.addElement("0x02: 자동");
+        cboControl.setModel(defaultComboBoxModel1);
+        panel1.add(cboControl, new GridConstraints(0, 10, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+        btnSignBoardOn = new JButton();
+        Font btnSignBoardOnFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, btnSignBoardOn.getFont());
+        if (btnSignBoardOnFont != null) btnSignBoardOn.setFont(btnSignBoardOnFont);
+        btnSignBoardOn.setText("전광판 전원 ON");
+        btnSignBoardOn.setToolTipText("");
+        panel1.add(btnSignBoardOn, new GridConstraints(2, 9, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+        btnSignBoardOff = new JButton();
+        Font btnSignBoardOffFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, btnSignBoardOff.getFont());
+        if (btnSignBoardOffFont != null) btnSignBoardOff.setFont(btnSignBoardOffFont);
+        btnSignBoardOff.setText("전광판 전원 OFF");
+        btnSignBoardOff.setToolTipText("");
+        panel1.add(btnSignBoardOff, new GridConstraints(3, 9, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
         btnSymbDnld = new JButton();
         Font btnSymbDnldFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, btnSymbDnld.getFont());
         if (btnSymbDnldFont != null) btnSymbDnld.setFont(btnSymbDnldFont);
-        btnSymbDnld.setText("심벌라이브러리");
-        panel1.add(btnSymbDnld, new GridConstraints(0, 10, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
-        txtState = new JTextField();
-        txtState.setEditable(false);
-        Font txtStateFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, txtState.getFont());
-        if (txtStateFont != null) txtState.setFont(txtStateFont);
-        txtState.setHorizontalAlignment(0);
-        txtState.setText("통신");
-        panel1.add(txtState, new GridConstraints(0, 8, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, new Dimension(100, -1), new Dimension(100, -1), new Dimension(100, -1), 0, false));
+        btnSymbDnld.setText("심벌 다운로드");
+        panel1.add(btnSymbDnld, new GridConstraints(4, 9, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+        btnReqFan = new JButton();
+        Font btnReqFanFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, btnReqFan.getFont());
+        if (btnReqFanFont != null) btnReqFan.setFont(btnReqFanFont);
+        btnReqFan.setText("함체 Fan 제어");
+        btnReqFan.setToolTipText("");
+        panel1.add(btnReqFan, new GridConstraints(2, 10, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
         btnReqFan2 = new JButton();
-        Font btnReservedFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, btnReqFan2.getFont());
-        if (btnReservedFont != null) btnReqFan2.setFont(btnReservedFont);
-        btnReqFan2.setText("TEST");
-        panel1.add(btnReqFan2, new GridConstraints(0, 9, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+        Font btnReqFan2Font = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, btnReqFan2.getFont());
+        if (btnReqFan2Font != null) btnReqFan2.setFont(btnReqFan2Font);
+        btnReqFan2.setText("표출부 Fan 제어");
+        panel1.add(btnReqFan2, new GridConstraints(4, 10, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
+        btnReqHeater = new JButton();
+        Font btnReqHeaterFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, btnReqHeater.getFont());
+        if (btnReqHeaterFont != null) btnReqHeater.setFont(btnReqHeaterFont);
+        btnReqHeater.setText("함체 Heater 제어");
+        btnReqHeater.setToolTipText("");
+        panel1.add(btnReqHeater, new GridConstraints(3, 10, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
         final JPanel panel3 = new JPanel();
         panel3.setLayout(new GridLayoutManager(2, 1, new Insets(0, 4, 0, 4), -1, -1));
         rootPanel.add(panel3, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, new Dimension(-1, 200), null, null, 0, false));