Bladeren bron

dev 1st completed

shjung 2 jaren geleden
bovenliggende
commit
ed6198cc20
26 gewijzigde bestanden met toevoegingen van 125 en 1261 verwijderingen
  1. 0 17
      src/main/java/com/its/dsrc/dao/mapper/VdsCtlrMapper.java
  2. 0 23
      src/main/java/com/its/dsrc/dao/mapper/VdsDtctMapper.java
  3. 1 1
      src/main/java/com/its/dsrc/dao/mapper/batch/RseCtlrDao.java
  4. 69 0
      src/main/java/com/its/dsrc/entity/TbRseCtlr.java
  5. 0 38
      src/main/java/com/its/dsrc/entity/TbVdsDtct.java
  6. 0 52
      src/main/java/com/its/dsrc/entity/voVdsDtctClct.java
  7. 0 16
      src/main/java/com/its/dsrc/entity/voVdsDtctStts.java
  8. 0 23
      src/main/java/com/its/dsrc/entity/voVdsDtctVehClct.java
  9. 1 1
      src/main/java/com/its/dsrc/service/RseCtlrService.java
  10. 1 10
      src/main/java/com/its/dsrc/ui/MainUI.form
  11. 6 42
      src/main/java/com/its/dsrc/ui/MainUI.java
  12. 0 93
      src/main/java/com/its/dsrc/ui/MonitoringTask.java
  13. 0 266
      src/main/java/com/its/dsrc/ui/SubUI.form
  14. 0 374
      src/main/java/com/its/dsrc/ui/SubUI.java
  15. 0 44
      src/main/java/com/its/dsrc/ui/SubUIController.java
  16. 0 6
      src/main/java/com/its/dsrc/webapp/controller/WebAppController.java
  17. 3 3
      src/main/java/com/its/dsrc/xnettcp/center/CenterTcpServerService.java
  18. 2 2
      src/main/java/com/its/dsrc/xnettcp/center/codec/CenterTcpServerDecoder.java
  19. 3 3
      src/main/java/com/its/dsrc/xnettcp/center/handler/CenterTcpServerIdleStateHandler.java
  20. 28 36
      src/main/java/com/its/dsrc/xnettcp/center/handler/CenterTcpServerInboundHandler.java
  21. 1 1
      src/main/java/com/its/dsrc/xnettcp/center/protocol/CenterReqFramePacket.java
  22. 6 5
      src/main/java/com/its/dsrc/xnettcp/center/protocol/CenterResProtocol.java
  23. 0 98
      src/main/resources/application.propertiesx
  24. 2 2
      src/main/resources/application.yml
  25. 0 103
      src/main/resources/application.yml.backup
  26. 2 2
      src/main/resources/mybatis/mapper/RseCtlrMapper.xml

+ 0 - 17
src/main/java/com/its/dsrc/dao/mapper/VdsCtlrMapper.java

@@ -1,17 +0,0 @@
-package com.its.dsrc.dao.mapper;
-
-import com.its.dsrc.entity.TbRseCtlr;
-import com.its.dsrc.entity.TbRseCtlrStts;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-@Mapper
-public interface VdsCtlrMapper {
-
-    List<TbRseCtlr>     selectAll();
-    List<TbRseCtlrStts> selectRseCtlrStts();
-    int                 updateRseCtlrStts(@Param("stts") TbRseCtlrStts paramVdsCtlrStts);
-    int                 insertRseCtlrSttsHs(@Param("stts") TbRseCtlrStts paramVdsCtlrStts);
-}

+ 0 - 23
src/main/java/com/its/dsrc/dao/mapper/VdsDtctMapper.java

@@ -1,23 +0,0 @@
-package com.its.dsrc.dao.mapper;
-
-import com.its.dsrc.entity.TbVdsDtct;
-import com.its.dsrc.entity.voVdsDtctClct;
-import com.its.dsrc.entity.voVdsDtctStts;
-import com.its.dsrc.entity.voVdsDtctVehClct;
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-
-import java.util.List;
-
-@Mapper
-public interface VdsDtctMapper {
-
-    List<TbVdsDtct> selectAll();
-    int          	insertVdsDtctClct(@Param("clct") voVdsDtctClct paramVdsDtctClct);
-    int          	updateVdsDtctClctPnst(@Param("clct") voVdsDtctClct paramVdsDtctClct);
-
-    int          	updateVdsDtctStts(@Param("stts") voVdsDtctStts paramVdsCtlrStts);
-    int          	insertVdsDtctSttsHs(@Param("stts") voVdsDtctStts paramVdsCtlrStts);
-    int          	insertVdsDtctVehClct(@Param("clct") voVdsDtctVehClct paramVdsDtctVehClct);
-    
-}

+ 1 - 1
src/main/java/com/its/dsrc/dao/mapper/batch/RseCtlrDao.java

@@ -20,7 +20,7 @@ public class RseCtlrDao extends BatchDaoService {
     public RseCtlrDao(SqlSessionFactory sqlSessionFactory) {
         super(sqlSessionFactory);
         this.serviceName = "RseCtlrDao";
-        this.mapperName  = "";//com.its.vds.dao.mapper.VdsCtlrMapper.";
+        this.mapperName  = "";
     }
 
     public List<HashMap<String, Object>> getSttsList(List<TbRseCtlrStts> req) {

+ 69 - 0
src/main/java/com/its/dsrc/entity/TbRseCtlr.java

@@ -4,17 +4,23 @@ import com.beanit.asn1dsrc.dsrc.C2CAuthenticatedMessage;
 import com.beanit.asn1dsrc.dsrc.HeaderOptions;
 import com.beanit.asn1dsrc.dsrc.Login;
 import com.beanit.asn1dsrc.dsrc.PDUs;
+import com.beanit.asn1dsrc.enums.eControlCommand;
+import com.beanit.asn1dsrc.enums.eControlDeviceId;
 import com.beanit.asn1dsrc.util.DsrcAsn1Sequence;
 import com.its.app.utils.SysUtils;
 import com.its.dsrc.vo.NET;
+import com.its.dsrc.xnettcp.dsrc.handler.DsrcAsn1ServerIdleStateConnectionHandler;
+import com.its.dsrc.xnettcp.dsrc.process.service.ControlDeviceService;
 import com.its.dsrc.xnettcp.dsrc.task.DsrcAsn1TimeoutTask;
 import io.netty.channel.Channel;
+import io.netty.channel.ChannelFuture;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.ToString;
 import lombok.extern.slf4j.Slf4j;
 
 import java.net.InetSocketAddress;
+import java.nio.ByteBuffer;
 import java.util.Map;
 import java.util.Timer;
 import java.util.TimerTask;
@@ -144,6 +150,69 @@ public class TbRseCtlr {
 		setDisConnectTm();
 	}
 
+	public void sleep(long milliSeconds) {
+		try {
+			Thread.sleep(milliSeconds);
+		} catch (InterruptedException e) {
+			log.error("sleep: InterruptedException");
+		}
+	}
+	/**
+	 * Channel Send Data
+	 * @param sendBuffer
+	 * @param delayMilliSeconds
+	 * @param packetDesc
+	 * @return
+	 */
+	public boolean sendData(ByteBuffer sendBuffer, int delayMilliSeconds, String packetDesc) {
+		boolean result = false;
+		if (this.channel != null) {
+			ChannelFuture f = this.channel.writeAndFlush(sendBuffer);
+			f.awaitUninterruptibly();
+			if (f.isDone() || f.isSuccess()) {
+				result = true;
+				if (delayMilliSeconds > 0) {
+					sleep(delayMilliSeconds);
+				}
+			} else {
+				log.error("[{}]. sendData: Failed. {}, {} Bytes.", this.RSE_CTLR_NMBR, packetDesc, sendBuffer.array().length);
+			}
+		} else {
+			log.error("[{}]. sendData: Failed. Not Connected. {}, {} Bytes.", this.RSE_CTLR_NMBR, packetDesc, sendBuffer.array().length);
+		}
+		return result;
+	}
+
+	public boolean channelClose() {
+		if (getChannel() == null || getNetState() == NET.CLOSED) {
+			log.error("Close Request: channel not connected: [{}]", this);
+			return false;
+		}
+		DsrcAsn1ServerIdleStateConnectionHandler.disconnectChannel(getChannel());
+		return true;
+	}
+
+	public int reset(int devcType, int cntlType, TbRseCtrlHs ctrlHs) {
+		if (getChannel() == null || getNetState() == NET.CLOSED) {
+			log.error("Reset Request: channel not connected: [{}]", this);
+			return 1;
+		}
+		eControlDeviceId controlDeviceId = eControlDeviceId.getByValue(devcType);
+		eControlCommand commandType = eControlCommand.getByValue(cntlType);
+		if (controlDeviceId == null || commandType == null) {
+			return 2;
+		}
+
+		log.warn("[{}] [{},{}], controlDeviceId: {}, commandType: {}", this.RSE_CTLR_NMBR, devcType, cntlType, controlDeviceId.toString(), commandType.toString());
+		boolean res = ControlDeviceService.getInstance().requestSubscriptionDeviceCommand(true, this, getChannel(), controlDeviceId.getValue(), commandType.getValue(), ctrlHs);
+		if (res) {
+			log.info("RSE REQ CONTROL SEND OK: [{}] [{},{}]", this.RSE_CTLR_NMBR, devcType, cntlType);
+			return 0;
+		}
+		log.error("RSE REQ CONTROL SEND Error: [{}] [{},{}]", this.RSE_CTLR_NMBR, devcType, cntlType);
+		return 3;
+	}
+
 	public synchronized boolean addUserCommands(Long packetNmbr, TbRseCtrlHs command) {
 
 		this.userCommands.put(packetNmbr, command);

+ 0 - 38
src/main/java/com/its/dsrc/entity/TbVdsDtct.java

@@ -1,38 +0,0 @@
-package com.its.dsrc.entity;
-
-import lombok.Getter;
-import lombok.Setter;
-import lombok.ToString;
-
-@Getter
-@Setter
-@ToString
-public class TbVdsDtct {
-
-	private String VDS_CTLR_NMBR;
-	private String VDS_DTCT_NMBR;
-	private String VDS_DTCT_ID;
-	private String VDS_DTCT_NM;
-	private int    VDS_CMRA_NO;
-	private String DTCT_TYPE;
-	private String DTCT_DIR;
-	private int    DETECT_LANE;
-	private int    ISTL_LANE;
-	private String SPED_CLCT_YN;
-	private String TFVL_CLCT_YN;
-	private String OCPY_CLCT_YN;
-	private int    MAX_TFVL;
-	private int    MIN_TFVL;
-	private float  MAX_OCPY_RATE;
-	private float  MIN_OCPY_RATE;
-	private int    MAX_SPED;
-	private int    MIN_SPED;
-	private String DEL_YN;
-
-	private voVdsDtctClct clct;
-
-	public TbVdsDtct() {
-		this.clct = new voVdsDtctClct();
-	}
-
-}

+ 0 - 52
src/main/java/com/its/dsrc/entity/voVdsDtctClct.java

@@ -1,52 +0,0 @@
-package com.its.dsrc.entity;
-
-import lombok.Getter;
-import lombok.Setter;
-import lombok.ToString;
-
-@Getter
-@Setter
-@ToString
-public class voVdsDtctClct {
-
-	private String VDS_DTCT_NMBR;
-	private String CLCT_DT;
-	private String SYST_KIND_DVSN;
-	private int    TRAF_CLCT_CYCL;
-	private int    TFVL;
-	private int    SPED;
-	private float  AVRG_OCPY_RATE;
-	private int    AVRG_LNGT;
-	private int    HDWY;
-	private float  SPCE_OCPY_RATE;
-	private int    SPCE_AVRG_SPED;
-
-	private boolean isValid;
-
-	public voVdsDtctClct() {
-		this.VDS_DTCT_NMBR  = "";
-		this.CLCT_DT        = "";
-		this.SYST_KIND_DVSN = "0";
-
-		initVal();
-	}
-	public voVdsDtctClct(String vdsDtctNmbr, String clctDt, String systKindDvsn) {
-		this.VDS_DTCT_NMBR  = vdsDtctNmbr;
-		this.CLCT_DT        = clctDt;
-		this.SYST_KIND_DVSN = systKindDvsn;
-
-		initVal();
-	}
-	public void initVal() {
-		this.TRAF_CLCT_CYCL = 0;
-		this.TFVL           = 0;
-		this.SPED           = 0;
-		this.AVRG_OCPY_RATE = 0;
-		this.AVRG_LNGT      = 0;
-		this.HDWY           = 0;
-		this.SPCE_OCPY_RATE = 0;
-		this.SPCE_AVRG_SPED = 0;
-		this.isValid        = false;
-	}
-
-}

+ 0 - 16
src/main/java/com/its/dsrc/entity/voVdsDtctStts.java

@@ -1,16 +0,0 @@
-package com.its.dsrc.entity;
-
-import lombok.Getter;
-import lombok.Setter;
-import lombok.ToString;
-
-@Getter
-@Setter
-@ToString
-public class voVdsDtctStts {
-
-	private String VDS_DTCT_NMBR;
-	private String UPDT_DT;
-	private int    DTCT_STTS;
-
-}

+ 0 - 23
src/main/java/com/its/dsrc/entity/voVdsDtctVehClct.java

@@ -1,23 +0,0 @@
-package com.its.dsrc.entity;
-
-import lombok.Getter;
-import lombok.Setter;
-import lombok.ToString;
-
-@Getter
-@Setter
-@ToString
-public class voVdsDtctVehClct {
-
-	private String CLCT_DT;
-	private String VDS_DTCT_NMBR;
-	private int    CLCT_SEQ;
-	private int    DETECT_LANE;
-	private String VEH_CLCT_DT;
-	private int    SYNC_PASS_TIME;
-	private int    SPED;
-	private int    OCPY_TIME;
-	private int    VEH_TYPE;
-	private int    HDWY_VEH_TIME;
-
-}

+ 1 - 1
src/main/java/com/its/dsrc/service/RseCtlrService.java

@@ -48,7 +48,7 @@ public class RseCtlrService {
             }
         }
         catch (Exception e) {
-            log.error("VdsCtlrService.initVdsCtlr: Exception: {}", e.toString());
+            log.error("RseCtlrService.initRseCtlr: Exception: {}", e.toString());
         }
     }
 

+ 1 - 10
src/main/java/com/its/dsrc/ui/MainUI.form

@@ -99,7 +99,7 @@
               </component>
             </children>
           </scrollpane>
-          <grid id="17544" binding="pnlControl" layout-manager="GridLayoutManager" row-count="1" column-count="7" same-size-horizontally="false" same-size-vertically="false" hgap="1" vgap="1">
+          <grid id="17544" binding="pnlControl" layout-manager="GridLayoutManager" row-count="1" column-count="6" same-size-horizontally="false" same-size-vertically="false" hgap="1" vgap="1">
             <margin top="0" left="0" bottom="0" right="2"/>
             <constraints>
               <grid row="2" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
@@ -112,15 +112,6 @@
                   <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="1" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
                 </constraints>
               </hspacer>
-              <component id="3d84f" class="javax.swing.JButton" binding="btnInitialize">
-                <constraints>
-                  <grid row="0" column="6" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
-                </constraints>
-                <properties>
-                  <font name="Malgun Gothic" size="12" style="0"/>
-                  <text value="초기화"/>
-                </properties>
-              </component>
               <component id="7c99b" class="javax.swing.JButton" binding="btnReset">
                 <constraints>
                   <grid row="0" column="5" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>

+ 6 - 42
src/main/java/com/its/dsrc/ui/MainUI.java

@@ -38,7 +38,6 @@ import java.util.*;
 public class MainUI {
     private static MainUI _instance = null;
 
-    private SubUIController subUIController = null;
     private JFrame jFrame = null;
     private final OperatingSystemMXBean osBean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
     private Timer timer;
@@ -66,7 +65,6 @@ public class MainUI {
     private JLabel lblCpuRate;
     private JLabel lblMemoryUsage;
     private JPanel pnlControl;
-    private JButton btnInitialize;
     private JButton btnReset;
     private JButton btnDisconnect;
     private JTextField txtName;
@@ -100,8 +98,6 @@ public class MainUI {
         this.jFrame = jFrame;
         if (_instance == null) {
             _instance = this;
-            subUIController = new SubUIController(jFrame);
-            subUIController.setVisible(false);
         }
 
         try {
@@ -173,9 +169,6 @@ public class MainUI {
                 // double click
                 if (me.getClickCount() == 2) {
                     if (!updateControllerInfo()) {
-                        if (subUIController.isVisible()) {
-                            subUIController.setVisible(false);
-                        }
                     }
                 }
             }
@@ -192,12 +185,7 @@ public class MainUI {
                 controlController(2);
             }
         });
-        btnInitialize.addActionListener(new ActionListener() {
-            @Override
-            public void actionPerformed(ActionEvent e) {
-                controlController(3);
-            }
-        });
+
     }
 
     /**
@@ -206,11 +194,11 @@ public class MainUI {
      * @param type
      */
     public void controlController(int type) {
-        if (selObj == null) {
+        if (this.selObj == null) {
             JOptionPane.showMessageDialog(getRootPanel(), "제어기가 선택되지 않았습니다. 목록을 더블클릭하여 제어기를 선택하세요.", "제어기 선택", JOptionPane.ERROR_MESSAGE);
             return;
         }
-        if (selObj.getNetState() == NET.CLOSED) {
+        if (this.selObj.getNetState() == NET.CLOSED) {
             JOptionPane.showMessageDialog(getRootPanel(), "제어기가 현재 연결이 되어 있지 않습니다.", "제어기 연결 상태", JOptionPane.ERROR_MESSAGE);
             return;
         }
@@ -224,10 +212,6 @@ public class MainUI {
                 message = "제어기를 리셋 하시겠습니까?";
                 title = "제어기 리셋";
                 break;
-            case 3:
-                message = "제어기를 초기화 하시겠습니까?";
-                title = "제어기 초기화";
-                break;
             default:
                 return;
         }
@@ -238,17 +222,11 @@ public class MainUI {
         boolean result = false;
         switch (type) {
             case 1:
-                result = false;//selObj.channelClose();
+                result = this.selObj.channelClose();
                 break;
             case 2:
-                result = true;//selObj.reset();
+                result = (this.selObj.reset(0, 1, null) == 0);
                 break;
-//            case 3:
-//                result = false;//selObj.initialize();
-//                break;
-//            case 4:
-//                result = true;//selObj.stopImage((byte) 0x01);
-//                break;
             default:
                 return;
         }
@@ -258,9 +236,6 @@ public class MainUI {
     }
 
     public boolean updateControllerInfo() {
-        if (subUIController.isVisible()) {
-            subUIController.setVisible(false);
-        }
         if (!this.isUpdatable) {
             return false;
         }
@@ -276,11 +251,6 @@ public class MainUI {
         if (selObj != null) {
             txtId.setText(selObj.getRSE_ID());
             txtName.setText(selObj.getRSE_NM());
-
-            subUIController.updateInfo(selObj);
-            if (!subUIController.isVisible()) {
-                //subUIController.setVisible(true);
-            }
             return true;
         }
         return false;
@@ -459,15 +429,10 @@ public class MainUI {
         if (tblCtlrListFont != null) tblCtlrList.setFont(tblCtlrListFont);
         scrollPane1.setViewportView(tblCtlrList);
         pnlControl = new JPanel();
-        pnlControl.setLayout(new GridLayoutManager(1, 7, new Insets(0, 0, 0, 2), 1, 1));
+        pnlControl.setLayout(new GridLayoutManager(1, 6, new Insets(0, 0, 0, 2), 1, 1));
         pnlCtlr.add(pnlControl, new GridConstraints(2, 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, null, null, null, 0, false));
         final Spacer spacer2 = new Spacer();
         pnlControl.add(spacer2, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, 1, null, null, null, 0, false));
-        btnInitialize = new JButton();
-        Font btnInitializeFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, btnInitialize.getFont());
-        if (btnInitializeFont != null) btnInitialize.setFont(btnInitializeFont);
-        btnInitialize.setText("초기화");
-        pnlControl.add(btnInitialize, new GridConstraints(0, 6, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
         btnReset = new JButton();
         Font btnResetFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, btnReset.getFont());
         if (btnResetFont != null) btnReset.setFont(btnResetFont);
@@ -625,5 +590,4 @@ public class MainUI {
     public JComponent $$$getRootComponent$$$() {
         return rootPanel;
     }
-
 }

+ 0 - 93
src/main/java/com/its/dsrc/ui/MonitoringTask.java

@@ -1,93 +0,0 @@
-package com.its.dsrc.ui;
-
-import javax.swing.*;
-import java.util.concurrent.atomic.AtomicBoolean;
-
-public class MonitoringTask {
-	
-	private static final int TASK_LENGTH = 1000;
-	private AtomicBoolean isStarted =  new AtomicBoolean(false);
-	private AtomicBoolean isRunning = new AtomicBoolean(false);
-	private AtomicBoolean isDone = new AtomicBoolean(false);
-	private int lengthOfTask;
-	private int current = 0;	
-	private String statMessage;
-
-	public MonitoringTask() {
-		lengthOfTask = TASK_LENGTH;
-	}
-
-	public void go() {
-		isRunning.set(true);
-		if (!isStarted.get()) {
-			isDone.set(false);
-			isStarted.set(true);
-			statMessage = null;
-			current = 0;
-			final SwingWorker<Void, Void> worker = new SwingWorker<Void, Void>() {
-				@Override
-				protected Void doInBackground() throws Exception {
-					// Fake a long task, making a random amount of progress every second.
-					while (!isDone.get()) {
-						if (isRunning.get()) {
-							try {
-								Thread.sleep(1000); // sleep for a second
-								current += Math.random() * 100; // make some progress
-								if (current >= lengthOfTask) {
-									onDown();
-									current = lengthOfTask;
-								}
-								statMessage = "Completed " + current + " out of " + lengthOfTask + ".";
-							} catch (InterruptedException e) {
-								e.printStackTrace();
-							}
-						}
-					}
-					return null;
-				}
-			};
-			worker.execute();
-		}
-	}
-
-	public void pause() {
-		this.isRunning.set(false);
-	}
-
-	/**
-	 * Called from SwingTimerDemo to find out how much work needs to be done.
-	 */
-	public int getLengthOfTask() {
-		return lengthOfTask;
-	}
-
-	/**
-	 * Called from SwingTimerDemo to find out how much has been done.
-	 */
-	public int getCurrent() {
-		return current;
-	}
-
-	public void onDown() {
-		isDone.set(true);
-		isStarted.set(false);
-		isRunning.set(false);
-		statMessage = null;
-	}
-
-	/**
-	 * Called from SwingTimerDemo to find out if the task has completed.
-	 */
-	public boolean isDone() {
-		return isDone.get();
-	}
-
-	/**
-	 * Returns the most recent status message, or null if there is no current
-	 * status message.
-	 */
-	public String getMessage() {
-		return statMessage;
-	}
-
-}

+ 0 - 266
src/main/java/com/its/dsrc/ui/SubUI.form

@@ -1,266 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.its.dsrc.ui.SubUI">
-  <grid id="27dc6" binding="rootPanel" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
-    <margin top="0" left="0" bottom="0" right="0"/>
-    <constraints>
-      <xy x="20" y="20" width="979" height="620"/>
-    </constraints>
-    <properties/>
-    <border type="none"/>
-    <children>
-      <grid id="d0095" binding="pnlCtlr" layout-manager="GridLayoutManager" row-count="2" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
-        <margin top="10" left="4" bottom="0" right="4"/>
-        <constraints>
-          <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
-        </constraints>
-        <properties/>
-        <border type="none"/>
-        <children>
-          <grid id="d1b2f" binding="pnlCtlrTitlex" layout-manager="GridLayoutManager" row-count="1" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
-            <margin top="0" left="0" bottom="0" right="2"/>
-            <constraints>
-              <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="1" hsize-policy="0" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
-            </constraints>
-            <properties/>
-            <border type="none"/>
-            <children>
-              <component id="25222" class="javax.swing.JLabel">
-                <constraints>
-                  <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
-                </constraints>
-                <properties>
-                  <font name="Malgun Gothic" size="12" style="0"/>
-                  <horizontalAlignment value="2"/>
-                  <horizontalTextPosition value="11"/>
-                  <icon value="static/image/controller.png"/>
-                  <text value="제어기 정보"/>
-                </properties>
-              </component>
-              <hspacer id="e90f6">
-                <constraints>
-                  <grid row="0" column="1" row-span="1" col-span="1" vsize-policy="1" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
-                </constraints>
-              </hspacer>
-            </children>
-          </grid>
-          <grid id="17544" binding="pnlControl" layout-manager="GridLayoutManager" row-count="4" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="1" vgap="1">
-            <margin top="0" left="0" bottom="0" right="2"/>
-            <constraints>
-              <grid row="1" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
-            </constraints>
-            <properties/>
-            <border type="none"/>
-            <children>
-              <component id="a85f9" class="javax.swing.JButton" binding="btnDisconnect">
-                <constraints>
-                  <grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
-                </constraints>
-                <properties>
-                  <font name="Malgun Gothic" size="12" style="0"/>
-                  <text value="연결끊기"/>
-                </properties>
-              </component>
-              <grid id="31344" layout-manager="GridLayoutManager" row-count="4" column-count="2" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
-                <margin top="0" left="0" bottom="0" right="0"/>
-                <constraints>
-                  <grid row="0" column="0" row-span="4" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
-                </constraints>
-                <properties/>
-                <border type="none"/>
-                <children>
-                  <component id="6d1e0" class="javax.swing.JTextField" binding="txtId">
-                    <constraints>
-                      <grid row="0" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="1" indent="0" use-parent-layout="false">
-                        <minimum-size width="100" height="-1"/>
-                        <preferred-size width="100" height="-1"/>
-                        <maximum-size width="100" height="-1"/>
-                      </grid>
-                    </constraints>
-                    <properties>
-                      <editable value="false"/>
-                      <font name="Malgun Gothic" size="12" style="0"/>
-                      <horizontalAlignment value="0"/>
-                      <text value="ID"/>
-                    </properties>
-                  </component>
-                  <component id="a6a03" class="javax.swing.JTextField" binding="txtName">
-                    <constraints>
-                      <grid row="1" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false">
-                        <preferred-size width="200" height="-1"/>
-                      </grid>
-                    </constraints>
-                    <properties>
-                      <editable value="false"/>
-                      <font name="Malgun Gothic" size="12" style="0"/>
-                      <horizontalAlignment value="2"/>
-                      <text value="제어기 명칭"/>
-                    </properties>
-                  </component>
-                  <component id="a60a6" class="javax.swing.JLabel">
-                    <constraints>
-                      <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
-                    </constraints>
-                    <properties>
-                      <text value="ㅣ관리번호"/>
-                    </properties>
-                  </component>
-                  <component id="f96bf" class="javax.swing.JTextField" binding="textField1" default-binding="true">
-                    <constraints>
-                      <grid row="2" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false">
-                        <preferred-size width="150" height="-1"/>
-                      </grid>
-                    </constraints>
-                    <properties/>
-                  </component>
-                  <component id="17549" class="javax.swing.JTextField" binding="textField2" default-binding="true">
-                    <constraints>
-                      <grid row="3" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="8" fill="1" indent="0" use-parent-layout="false">
-                        <preferred-size width="150" height="-1"/>
-                      </grid>
-                    </constraints>
-                    <properties/>
-                  </component>
-                </children>
-              </grid>
-              <component id="7c99b" class="javax.swing.JButton" binding="btnReset">
-                <constraints>
-                  <grid row="1" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
-                </constraints>
-                <properties>
-                  <font name="Malgun Gothic" size="12" style="0"/>
-                  <text value="리셋"/>
-                </properties>
-              </component>
-              <component id="3d84f" class="javax.swing.JButton" binding="btnInitialize">
-                <constraints>
-                  <grid row="3" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
-                </constraints>
-                <properties>
-                  <font name="Malgun Gothic" size="12" style="0"/>
-                  <text value="초기화"/>
-                </properties>
-              </component>
-              <component id="660a8" class="javax.swing.JButton" binding="btnImage">
-                <constraints>
-                  <grid row="2" column="1" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
-                </constraints>
-                <properties>
-                  <font name="Malgun Gothic" size="12" style="0"/>
-                  <text value="정지영상"/>
-                </properties>
-              </component>
-            </children>
-          </grid>
-          <grid id="62443" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
-            <margin top="0" left="0" bottom="0" right="0"/>
-            <constraints>
-              <grid row="1" column="1" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
-            </constraints>
-            <properties/>
-            <border type="none"/>
-            <children/>
-          </grid>
-        </children>
-      </grid>
-      <grid id="1a658" binding="pnlLog" layout-manager="GridLayoutManager" row-count="2" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
-        <margin top="0" left="4" bottom="0" right="4"/>
-        <constraints>
-          <grid row="1" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="7" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
-        </constraints>
-        <properties/>
-        <border type="none"/>
-        <children>
-          <grid id="dbb05" binding="pnlLogTitle" layout-manager="GridLayoutManager" row-count="1" column-count="6" same-size-horizontally="false" same-size-vertically="false" hgap="1" vgap="1">
-            <margin top="0" left="0" bottom="0" right="2"/>
-            <constraints>
-              <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="3" hsize-policy="3" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
-            </constraints>
-            <properties/>
-            <border type="none"/>
-            <children>
-              <component id="9ac90" class="javax.swing.JLabel">
-                <constraints>
-                  <grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
-                </constraints>
-                <properties>
-                  <font name="Malgun Gothic" size="12" style="0"/>
-                  <horizontalAlignment value="2"/>
-                  <icon value="static/image/logging.png"/>
-                  <text value="제어기 로그"/>
-                </properties>
-              </component>
-              <hspacer id="656fd">
-                <constraints>
-                  <grid row="0" column="1" row-span="1" col-span="1" vsize-policy="1" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
-                </constraints>
-              </hspacer>
-              <component id="df2a0" class="javax.swing.JButton" binding="btnLogDirOpen">
-                <constraints>
-                  <grid row="0" column="5" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="0" indent="0" use-parent-layout="false"/>
-                </constraints>
-                <properties>
-                  <font name="Malgun Gothic" size="12" style="0"/>
-                  <horizontalTextPosition value="0"/>
-                  <text value="로그 폴더"/>
-                </properties>
-              </component>
-              <component id="69a98" class="javax.swing.JButton" binding="btnLogPause">
-                <constraints>
-                  <grid row="0" column="3" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="0" indent="0" use-parent-layout="false"/>
-                </constraints>
-                <properties>
-                  <font name="Malgun Gothic" size="12" style="0"/>
-                  <horizontalTextPosition value="0"/>
-                  <text value="지우기"/>
-                </properties>
-              </component>
-              <component id="1e9e7" class="javax.swing.JCheckBox" binding="chkLogPause">
-                <constraints>
-                  <grid row="0" column="2" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
-                </constraints>
-                <properties>
-                  <font name="Malgun Gothic" size="12" style="0"/>
-                  <horizontalAlignment value="0"/>
-                  <horizontalTextPosition value="11"/>
-                  <text value="멈춤"/>
-                </properties>
-              </component>
-              <component id="ba97c" class="javax.swing.JButton" binding="btnLogCopy">
-                <constraints>
-                  <grid row="0" column="4" row-span="1" col-span="1" vsize-policy="0" hsize-policy="3" anchor="0" fill="0" indent="0" use-parent-layout="false"/>
-                </constraints>
-                <properties>
-                  <font name="Malgun Gothic" size="12" style="0"/>
-                  <text value="복사"/>
-                </properties>
-              </component>
-            </children>
-          </grid>
-          <scrollpane id="a6866">
-            <constraints>
-              <grid row="1" column="0" row-span="1" col-span="1" vsize-policy="7" hsize-policy="7" anchor="0" fill="3" indent="0" use-parent-layout="false"/>
-            </constraints>
-            <properties>
-              <font name="D2Coding" size="12" style="0"/>
-            </properties>
-            <border type="none"/>
-            <children>
-              <component id="8ce8a" class="javax.swing.JTextArea" binding="taLog">
-                <constraints/>
-                <properties>
-                  <background color="-16777216"/>
-                  <caretColor color="-1"/>
-                  <editable value="false"/>
-                  <font name="D2Coding" size="14" style="0"/>
-                  <foreground color="-1"/>
-                  <margin top="4" left="4" bottom="4" right="4"/>
-                  <text value="[10:50:08.561] [ INFO] ************************************************************************************&#10;[10:50:08.561] [ INFO] **                   Center Communication Server Information                      **&#10;[10:50:08.561] [ INFO] **     bindAddress: 0.0.0.0&#10;[10:50:08.561] [ INFO] **      listenPort: 9901&#10;[10:50:08.561] [ INFO] **         backlog: 1024&#10;[10:50:08.561] [ INFO] **   acceptThreads: 16&#10;[10:50:08.561] [ INFO] **   workerThreads: 16&#10;[10:50:08.561] [ INFO] ************************************************************************************&#10;"/>
-                </properties>
-              </component>
-            </children>
-          </scrollpane>
-        </children>
-      </grid>
-    </children>
-  </grid>
-</form>

+ 0 - 374
src/main/java/com/its/dsrc/ui/SubUI.java

@@ -1,374 +0,0 @@
-package com.its.dsrc.ui;
-
-import com.intellij.uiDesigner.core.GridConstraints;
-import com.intellij.uiDesigner.core.GridLayoutManager;
-import com.intellij.uiDesigner.core.Spacer;
-import com.its.dsrc.domain.NET;
-import com.its.dsrc.entity.TbRseCtlr;
-import com.its.dsrc.service.RseCtlrService;
-import com.sun.management.OperatingSystemMXBean;
-import lombok.Getter;
-import lombok.extern.slf4j.Slf4j;
-
-import javax.swing.*;
-import javax.swing.plaf.FontUIResource;
-import javax.swing.text.StyleContext;
-import java.awt.*;
-import java.awt.datatransfer.Clipboard;
-import java.awt.datatransfer.StringSelection;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import java.io.File;
-import java.io.IOException;
-import java.lang.management.ManagementFactory;
-import java.util.Locale;
-
-@Slf4j
-@Getter
-public abstract class SubUI {
-    private RseCtlrService rseCtlrService = null;
-    OperatingSystemMXBean osBean = null;
-    private TbRseCtlr selObj = null;
-
-    private JPanel rootPanel;
-    private JPanel pnlCtlr;
-    private JPanel pnlLog;
-    private JPanel pnlLogTitle;
-    private JPanel pnlCtlrTitlex;
-    private JButton btnLogDirOpen;
-    private JButton btnLogPause;
-    private JCheckBox chkLogPause;
-    private JTextArea taLog;
-    private JButton btnLogCopy;
-    private JPanel pnlControl;
-    private JButton btnImage;
-    private JButton btnInitialize;
-    private JButton btnReset;
-    private JButton btnDisconnect;
-    private JTextField txtName;
-    private JTextField txtId;
-    private JTextField textField1;
-    private JTextField textField2;
-
-    protected abstract void actionButtonClicked();
-
-    public SubUI() {
-        System.setProperty("awt.useSystemAAFontSettings", "false"); // AntiAliasing false
-
-        osBean = ManagementFactory.getPlatformMXBean(OperatingSystemMXBean.class);
-        try {
-            Font font = Font.createFont(Font.TRUETYPE_FONT, new File("fonts/D2Coding.ttc"));
-            GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
-            ge.registerFont(font);
-        } catch (FontFormatException e) {
-        } catch (IOException e) {
-        }
-
-        //taLog.setFont(new Font(Font.MONOSPACED, Font.PLAIN, 14));
-        Font d2font = new Font("D2Coding", Font.PLAIN, 14);
-        if (d2font != null) {
-            taLog.setFont(d2font);
-        }
-        taLog.setText(null);
-
-        chkLogPause.setFocusable(false);
-        btnLogPause.setFocusable(false);
-        btnLogDirOpen.setFocusable(false);
-        btnLogCopy.setFocusable(false);
-
-        btnLogPause.addActionListener(new ActionListener() {
-            @Override
-            public void actionPerformed(ActionEvent e) {
-                taLog.setText(null);
-            }
-        });
-        btnLogDirOpen.addActionListener(new ActionListener() {
-            @Override
-            public void actionPerformed(ActionEvent e) {
-                Runtime rt = Runtime.getRuntime();
-                try {
-                    rt.exec("explorer.exe logs");
-                } catch (IOException ex) {
-                    throw new RuntimeException(ex);
-                }
-            }
-        });
-        chkLogPause.addActionListener(new ActionListener() {
-            @Override
-            public void actionPerformed(ActionEvent e) {
-                JTextAreaOutputStream.isLoggingPause = chkLogPause.isSelected();
-            }
-        });
-        btnLogCopy.addActionListener(new ActionListener() {
-            @Override
-            public void actionPerformed(ActionEvent e) {
-                StringSelection stringSelection = new StringSelection(taLog.getText());
-                Clipboard clpBrd = Toolkit.getDefaultToolkit().getSystemClipboard();
-                clpBrd.setContents(stringSelection, null);
-            }
-        });
-
-        btnDisconnect.addActionListener(new ActionListener() {
-            @Override
-            public void actionPerformed(ActionEvent e) {
-                controlController(1);
-            }
-        });
-        btnReset.addActionListener(new ActionListener() {
-            @Override
-            public void actionPerformed(ActionEvent e) {
-                controlController(2);
-            }
-        });
-        btnInitialize.addActionListener(new ActionListener() {
-            @Override
-            public void actionPerformed(ActionEvent e) {
-                controlController(3);
-            }
-        });
-        btnImage.addActionListener(new ActionListener() {
-            @Override
-            public void actionPerformed(ActionEvent e) {
-                controlController(4);
-            }
-        });
-    }
-
-    public void updateInfo(TbRseCtlr selObj) {
-        this.selObj = selObj;
-        txtId.setText("");
-        txtName.setText("");
-        if (selObj != null) {
-            txtId.setText(selObj.getRSE_ID());
-            txtName.setText(selObj.getRSE_NM());
-        }
-    }
-
-    /**
-     * 제어기 명령 처리
-     *
-     * @param type
-     */
-    public void controlController(int type) {
-        if (selObj == null) {
-            JOptionPane.showMessageDialog(getRootPanel(), "제어기가 선택되지 않았습니다. 목록을 더블클릭하여 제어기를 선택하세요.", "제어기 선택", JOptionPane.ERROR_MESSAGE);
-            return;
-        }
-        if (selObj.getNetState() == NET.CLOSED) {
-            JOptionPane.showMessageDialog(getRootPanel(), "제어기가 현재 연결이 되어 있지 않습니다.", "제어기 연결 상태", JOptionPane.ERROR_MESSAGE);
-            return;
-        }
-        String message, title;
-        switch (type) {
-            case 1:
-                message = "제어기와의 연결을 종료 하시겠습니까?";
-                title = "제어기 연결 종료";
-                break;
-            case 2:
-                message = "제어기를 리셋 하시겠습니까?";
-                title = "제어기 리셋";
-                break;
-            case 3:
-                message = "제어기를 초기화 하시겠습니까?";
-                title = "제어기 초기화";
-                break;
-            case 4:
-                message = "제어기의 정지영상 정보를 요청하시겠습니까?";
-                title = "제어기 정지영상 요청";
-                break;
-            default:
-                return;
-        }
-        if (JOptionPane.showConfirmDialog(getRootPanel(), message, title, JOptionPane.YES_NO_OPTION) != 0) {
-            return;
-        }
-
-        boolean result = false;
-        switch (type) {
-            case 1:
-                result = false;//selObj.channelClose();
-                break;
-            case 2:
-                result = true;//selObj.reset();
-                break;
-//            case 3:
-//                result = selObj.initialize();
-//                break;
-//            case 4:
-//                result = selObj.stopImage((byte) 0x01);
-//                break;
-            default:
-                return;
-        }
-        if (!result) {
-            JOptionPane.showMessageDialog(getRootPanel(), "명령 전송이 실패 하였습니다.", title, JOptionPane.ERROR_MESSAGE);
-        }
-    }
-
-    {
-// GUI initializer generated by IntelliJ IDEA GUI Designer
-// >>> IMPORTANT!! <<<
-// DO NOT EDIT OR ADD ANY CODE HERE!
-        $$$setupUI$$$();
-    }
-
-    /**
-     * Method generated by IntelliJ IDEA GUI Designer
-     * >>> IMPORTANT!! <<<
-     * DO NOT edit this method OR call it in your code!
-     *
-     * @noinspection ALL
-     */
-    private void $$$setupUI$$$() {
-        rootPanel = new JPanel();
-        rootPanel.setLayout(new GridLayoutManager(2, 1, new Insets(0, 0, 0, 0), -1, -1));
-        pnlCtlr = new JPanel();
-        pnlCtlr.setLayout(new GridLayoutManager(2, 2, new Insets(10, 4, 0, 4), -1, -1));
-        rootPanel.add(pnlCtlr, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
-        pnlCtlrTitlex = new JPanel();
-        pnlCtlrTitlex.setLayout(new GridLayoutManager(1, 2, new Insets(0, 0, 0, 2), -1, -1));
-        pnlCtlr.add(pnlCtlrTitlex, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_FIXED, 1, null, null, null, 0, false));
-        final JLabel label1 = new JLabel();
-        Font label1Font = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, label1.getFont());
-        if (label1Font != null) label1.setFont(label1Font);
-        label1.setHorizontalAlignment(2);
-        label1.setHorizontalTextPosition(11);
-        label1.setIcon(new ImageIcon(getClass().getResource("/static/image/controller.png")));
-        label1.setText("제어기 정보");
-        pnlCtlrTitlex.add(label1, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
-        final Spacer spacer1 = new Spacer();
-        pnlCtlrTitlex.add(spacer1, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, 1, null, null, null, 0, false));
-        pnlControl = new JPanel();
-        pnlControl.setLayout(new GridLayoutManager(4, 2, new Insets(0, 0, 0, 2), 1, 1));
-        pnlCtlr.add(pnlControl, 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, null, null, null, 0, false));
-        btnDisconnect = new JButton();
-        Font btnDisconnectFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, btnDisconnect.getFont());
-        if (btnDisconnectFont != null) btnDisconnect.setFont(btnDisconnectFont);
-        btnDisconnect.setText("연결끊기");
-        pnlControl.add(btnDisconnect, new GridConstraints(0, 1, 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 panel1 = new JPanel();
-        panel1.setLayout(new GridLayoutManager(4, 2, new Insets(0, 0, 0, 0), -1, -1));
-        pnlControl.add(panel1, new GridConstraints(0, 0, 4, 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));
-        txtId = new JTextField();
-        txtId.setEditable(false);
-        Font txtIdFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, txtId.getFont());
-        if (txtIdFont != null) txtId.setFont(txtIdFont);
-        txtId.setHorizontalAlignment(0);
-        txtId.setText("ID");
-        panel1.add(txtId, new GridConstraints(0, 1, 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));
-        txtName = new JTextField();
-        txtName.setEditable(false);
-        Font txtNameFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, txtName.getFont());
-        if (txtNameFont != null) txtName.setFont(txtNameFont);
-        txtName.setHorizontalAlignment(2);
-        txtName.setText("제어기 명칭");
-        panel1.add(txtName, new GridConstraints(1, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(200, -1), null, 0, false));
-        final JLabel label2 = new JLabel();
-        label2.setText("ㅣ관리번호");
-        panel1.add(label2, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
-        textField1 = new JTextField();
-        panel1.add(textField1, new GridConstraints(2, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
-        textField2 = new JTextField();
-        panel1.add(textField2, new GridConstraints(3, 1, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_FIXED, null, new Dimension(150, -1), null, 0, false));
-        btnReset = new JButton();
-        Font btnResetFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, btnReset.getFont());
-        if (btnResetFont != null) btnReset.setFont(btnResetFont);
-        btnReset.setText("리셋");
-        pnlControl.add(btnReset, new GridConstraints(1, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
-        btnInitialize = new JButton();
-        Font btnInitializeFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, btnInitialize.getFont());
-        if (btnInitializeFont != null) btnInitialize.setFont(btnInitializeFont);
-        btnInitialize.setText("초기화");
-        pnlControl.add(btnInitialize, new GridConstraints(3, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
-        btnImage = new JButton();
-        Font btnImageFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, btnImage.getFont());
-        if (btnImageFont != null) btnImage.setFont(btnImageFont);
-        btnImage.setText("정지영상");
-        pnlControl.add(btnImage, new GridConstraints(2, 1, 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));
-        pnlCtlr.add(panel2, new GridConstraints(1, 1, 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));
-        pnlLog = new JPanel();
-        pnlLog.setLayout(new GridLayoutManager(2, 1, new Insets(0, 4, 0, 4), -1, -1));
-        rootPanel.add(pnlLog, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, null, null, null, 0, false));
-        pnlLogTitle = new JPanel();
-        pnlLogTitle.setLayout(new GridLayoutManager(1, 6, new Insets(0, 0, 0, 2), 1, 1));
-        pnlLog.add(pnlLogTitle, new GridConstraints(0, 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, null, null, null, 0, false));
-        final JLabel label3 = new JLabel();
-        Font label3Font = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, label3.getFont());
-        if (label3Font != null) label3.setFont(label3Font);
-        label3.setHorizontalAlignment(2);
-        label3.setIcon(new ImageIcon(getClass().getResource("/static/image/logging.png")));
-        label3.setText("제어기 로그");
-        pnlLogTitle.add(label3, new GridConstraints(0, 0, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
-        final Spacer spacer2 = new Spacer();
-        pnlLogTitle.add(spacer2, new GridConstraints(0, 1, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_HORIZONTAL, GridConstraints.SIZEPOLICY_WANT_GROW, 1, null, null, null, 0, false));
-        btnLogDirOpen = new JButton();
-        Font btnLogDirOpenFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, btnLogDirOpen.getFont());
-        if (btnLogDirOpenFont != null) btnLogDirOpen.setFont(btnLogDirOpenFont);
-        btnLogDirOpen.setHorizontalTextPosition(0);
-        btnLogDirOpen.setText("로그 폴더");
-        pnlLogTitle.add(btnLogDirOpen, new GridConstraints(0, 5, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
-        btnLogPause = new JButton();
-        Font btnLogPauseFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, btnLogPause.getFont());
-        if (btnLogPauseFont != null) btnLogPause.setFont(btnLogPauseFont);
-        btnLogPause.setHorizontalTextPosition(0);
-        btnLogPause.setText("지우기");
-        pnlLogTitle.add(btnLogPause, new GridConstraints(0, 3, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
-        chkLogPause = new JCheckBox();
-        Font chkLogPauseFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, chkLogPause.getFont());
-        if (chkLogPauseFont != null) chkLogPause.setFont(chkLogPauseFont);
-        chkLogPause.setHorizontalAlignment(0);
-        chkLogPause.setHorizontalTextPosition(11);
-        chkLogPause.setText("멈춤");
-        pnlLogTitle.add(chkLogPause, new GridConstraints(0, 2, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
-        btnLogCopy = new JButton();
-        Font btnLogCopyFont = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, btnLogCopy.getFont());
-        if (btnLogCopyFont != null) btnLogCopy.setFont(btnLogCopyFont);
-        btnLogCopy.setText("복사");
-        pnlLogTitle.add(btnLogCopy, new GridConstraints(0, 4, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
-        final JScrollPane scrollPane1 = new JScrollPane();
-        Font scrollPane1Font = this.$$$getFont$$$("D2Coding", Font.PLAIN, 12, scrollPane1.getFont());
-        if (scrollPane1Font != null) scrollPane1.setFont(scrollPane1Font);
-        pnlLog.add(scrollPane1, new GridConstraints(1, 0, 1, 1, GridConstraints.ANCHOR_CENTER, GridConstraints.FILL_BOTH, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, null, null, null, 0, false));
-        taLog = new JTextArea();
-        taLog.setBackground(new Color(-16777216));
-        taLog.setCaretColor(new Color(-1));
-        taLog.setEditable(false);
-        Font taLogFont = this.$$$getFont$$$("D2Coding", Font.PLAIN, 14, taLog.getFont());
-        if (taLogFont != null) taLog.setFont(taLogFont);
-        taLog.setForeground(new Color(-1));
-        taLog.setMargin(new Insets(4, 4, 4, 4));
-        taLog.setText("[10:50:08.561] [ INFO] ************************************************************************************\n[10:50:08.561] [ INFO] **                   Center Communication Server Information                      **\n[10:50:08.561] [ INFO] **     bindAddress: 0.0.0.0\n[10:50:08.561] [ INFO] **      listenPort: 9901\n[10:50:08.561] [ INFO] **         backlog: 1024\n[10:50:08.561] [ INFO] **   acceptThreads: 16\n[10:50:08.561] [ INFO] **   workerThreads: 16\n[10:50:08.561] [ INFO] ************************************************************************************\n");
-        scrollPane1.setViewportView(taLog);
-    }
-
-    /**
-     * @noinspection ALL
-     */
-    private Font $$$getFont$$$(String fontName, int style, int size, Font currentFont) {
-        if (currentFont == null) return null;
-        String resultName;
-        if (fontName == null) {
-            resultName = currentFont.getName();
-        } else {
-            Font testFont = new Font(fontName, Font.PLAIN, 10);
-            if (testFont.canDisplay('a') && testFont.canDisplay('1')) {
-                resultName = fontName;
-            } else {
-                resultName = currentFont.getName();
-            }
-        }
-        Font font = new Font(resultName, style >= 0 ? style : currentFont.getStyle(), size >= 0 ? size : currentFont.getSize());
-        boolean isMac = System.getProperty("os.name", "").toLowerCase(Locale.ENGLISH).startsWith("mac");
-        Font fontWithFallback = isMac ? new Font(font.getFamily(), font.getStyle(), font.getSize()) : new StyleContext().getFont(font.getFamily(), font.getStyle(), font.getSize());
-        return fontWithFallback instanceof FontUIResource ? fontWithFallback : new FontUIResource(fontWithFallback);
-    }
-
-    /**
-     * @noinspection ALL
-     */
-    public JComponent $$$getRootComponent$$$() {
-        return rootPanel;
-    }
-}

+ 0 - 44
src/main/java/com/its/dsrc/ui/SubUIController.java

@@ -1,44 +0,0 @@
-package com.its.dsrc.ui;
-
-import com.its.dsrc.entity.TbRseCtlr;
-import org.springframework.core.io.ClassPathResource;
-
-import javax.swing.*;
-import java.io.IOException;
-import java.net.URL;
-
-public class SubUIController extends JFrame {
-    private SubUI view;
-    private JFrame caller;
-
-    public SubUIController(JFrame jFrame) {
-        super("제어기 정보");
-        try {
-            ClassPathResource file = new ClassPathResource("static/image/application.png");
-            URL imgURL = file.getURL();
-            setIconImage(new ImageIcon(imgURL).getImage());
-        } catch (IOException e) {
-        }
-
-        this.caller = jFrame;
-        this.view = new SubUI() {
-            @Override
-            protected void actionButtonClicked() {
-                doAction();
-            }
-        };
-        this.setContentPane(view.$$$getRootComponent$$$());
-        this.setDefaultCloseOperation(HIDE_ON_CLOSE);
-        this.pack();
-    }
-
-    private void doAction() {
-        this.view.updateInfo(null);
-        this.setVisible(false);
-        caller.validate();
-    }
-
-    public void updateInfo(TbRseCtlr selObj) {
-        this.view.updateInfo(selObj);
-    }
-}

+ 0 - 6
src/main/java/com/its/dsrc/webapp/controller/WebAppController.java

@@ -57,18 +57,12 @@ public class WebAppController {
     @RequestMapping("/getControllerInfo")
     @ResponseBody
     public ConcurrentHashMap<Integer, TbRseCtlr> getControllerInfo() {
-        //List<Map<String, voVdsCtlr>> infoList = new ArrayList<>();
         ConcurrentHashMap<Integer, TbRseCtlr> ctlrMap = new ConcurrentHashMap<>();
         for (Map.Entry<String, TbRseCtlr> e : AppRepository.getInstance().getCtlrMap().entrySet()) {
             TbRseCtlr obj = e.getValue();
             ctlrMap.put(Integer.valueOf(obj.getID()), obj);
         }
         return ctlrMap;
-/*
-        for (Map.Entry<String, voVdsCtlr> obj : AppRepository.getInstance().getCtlrMap().entrySet()) {
-            log.info(obj.toString());
-        }
-        return AppRepository.getInstance().getCtlrMap();*/
     }
 
     @RequestMapping(value = ("/disconnectController"))

+ 3 - 3
src/main/java/com/its/dsrc/xnettcp/center/CenterTcpServerService.java

@@ -44,14 +44,14 @@ public class CenterTcpServerService {
 
         this.serverBootstrap = createBootstrap();
 
-        log.info("************************************************************************************");
-        log.info("**                   Center Communication Server Information                      **");
+        log.info("*********************************************************************************");
+        log.info("**                Center Communication Server Information                      **");
         log.info("**     bindAddress: {}", this.config.getBindingAddr());
         log.info("**      listenPort: {}", this.config.getListenPort());
         log.info("**         backlog: {}", this.config.getBacklog());
         log.info("**   acceptThreads: {}", this.config.getAcceptThreads());
         log.info("**   workerThreads: {}", this.config.getWorkerThreads());
-        log.info("************************************************************************************");
+        log.info("*********************************************************************************");
 
         try {
             if (this.config.getBindingAddr().equals("0.0.0.0")) {

+ 2 - 2
src/main/java/com/its/dsrc/xnettcp/center/codec/CenterTcpServerDecoder.java

@@ -47,12 +47,12 @@ public class CenterTcpServerDecoder extends ByteToMessageDecoder {
                 CenterReqFrameHead head = new CenterReqFrameHead(headBuffer);
                 bodyLength = head.getLength();
                 remainLength = readableBytes - headLength;
-                if (head.getSender() != (byte)0x24) {
+                if (head.getSender() != (byte)CenterProtocol.INT_ID_RSE_OPER) {
                     log.error("CenterTcpServerDecoder.decode: {}, Sender Error: {}", ipAddress, head.getSender());
                     CenterTcpServerIdleStateHandler.disconnectChannel(channel);
                     return;
                 }
-                if (head.getReceiver() != (byte)0x04) {
+                if (head.getReceiver() != (byte)CenterProtocol.INT_ID_RSE_SERVER) {
                     log.error("CenterTcpServerDecoder.decode: {}, Receiver Error: {}", ipAddress, head.getReceiver());
                     CenterTcpServerIdleStateHandler.disconnectChannel(channel);
                     return;

+ 3 - 3
src/main/java/com/its/dsrc/xnettcp/center/handler/CenterTcpServerIdleStateHandler.java

@@ -20,7 +20,7 @@ public class CenterTcpServerIdleStateHandler extends IdleStateHandler {
     public void channelActive(ChannelHandlerContext ctx) throws Exception {
         String ipAddress = NettyUtils.getRemoteIpAddress(ctx.channel());
         int port = NettyUtils.getRemotePort(ctx.channel());
-        log.info("Connect: {}", NettyUtils.getRemoteAddress(ctx.channel()));
+        log.info("CenterTcpServerIdleStateHandler, Connect: {}", NettyUtils.getRemoteAddress(ctx.channel()));
     }
 
     /*
@@ -30,7 +30,7 @@ public class CenterTcpServerIdleStateHandler extends IdleStateHandler {
     public void channelInactive(ChannelHandlerContext ctx) throws Exception {
         String ipAddress = NettyUtils.getRemoteIpAddress(ctx.channel());
         int port = NettyUtils.getRemotePort(ctx.channel());
-        log.info("Disconnect: {}", NettyUtils.getRemoteAddress(ctx.channel()));
+        log.info("CenterTcpServerIdleStateHandler, Disconnect: {}", NettyUtils.getRemoteAddress(ctx.channel()));
 
         super.channelInactive(ctx);
     }
@@ -42,7 +42,7 @@ public class CenterTcpServerIdleStateHandler extends IdleStateHandler {
     public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {
         String ipAddress = NettyUtils.getRemoteIpAddress(ctx.channel());
         int port = NettyUtils.getRemotePort(ctx.channel());
-        log.info("exceptionCaught: {}", NettyUtils.getRemoteAddress(ctx.channel()));
+        log.info("CenterTcpServerIdleStateHandler, exceptionCaught: {}", NettyUtils.getRemoteAddress(ctx.channel()));
         super.exceptionCaught(ctx, cause);
     }
 

+ 28 - 36
src/main/java/com/its/dsrc/xnettcp/center/handler/CenterTcpServerInboundHandler.java

@@ -1,18 +1,14 @@
 package com.its.dsrc.xnettcp.center.handler;
 
-import com.beanit.asn1dsrc.enums.eControlCommand;
-import com.beanit.asn1dsrc.enums.eControlDeviceId;
 import com.its.app.AppUtils;
 import com.its.app.utils.NettyUtils;
 import com.its.dsrc.dao.mapper.RseCtlrMapper;
 import com.its.dsrc.entity.TbRseCtlr;
 import com.its.dsrc.entity.TbRseCtrlHs;
 import com.its.dsrc.global.AppRepository;
-import com.its.dsrc.vo.NET;
 import com.its.dsrc.xnettcp.center.protocol.CenterProtocol;
 import com.its.dsrc.xnettcp.center.protocol.CenterReqFramePacket;
 import com.its.dsrc.xnettcp.center.protocol.CenterResProtocol;
-import com.its.dsrc.xnettcp.dsrc.process.service.ControlDeviceService;
 import io.netty.channel.ChannelFuture;
 import io.netty.channel.ChannelHandler;
 import io.netty.channel.ChannelHandlerContext;
@@ -49,79 +45,75 @@ public class CenterTcpServerInboundHandler extends ChannelInboundHandlerAdapter
             int devcType = msgBuffer.getInt();
             int cntlType = msgBuffer.getInt();
 
-            TbRseCtrlHs cntl = new TbRseCtrlHs();
-            cntl.setCtrlSeq(ctrlSeq);
-            cntl.setDevcType(String.valueOf(devcType));
-            cntl.setCntlType(String.valueOf(cntlType));
-            cntl.setRspsType("0");
+            TbRseCtrlHs ctrlHs = new TbRseCtrlHs();
+            ctrlHs.setCtrlSeq(ctrlSeq);
+            ctrlHs.setDevcType(String.valueOf(devcType));
+            ctrlHs.setCntlType(String.valueOf(cntlType));
+            ctrlHs.setRspsType("0");
 
             TbRseCtlr obj = AppRepository.getInstance().getCtlrMap().get(String.valueOf(ctlrNmbr));
             if (obj == null) {
                 log.error("CenterTcpServerInboundHandler: Center Request Unknown RSE: [{}]", ctlrNmbr);
-                cntl.setRspsType("9");  // 알수없는제어기
+                ctrlHs.setRspsType("9");  // 알수없는제어기
                 ByteBuffer sendBuffer = CenterResProtocol.getResponse(opCode, (byte)(0xFF));
                 ChannelFuture f = ctx.channel().writeAndFlush(sendBuffer);
                 f.awaitUninterruptibly();
                 if (f.isDone() || f.isSuccess()) {
-                    log.info("CenterTcpServerInboundHandler: Response OK. Center Request Unknown VDS: [{}]", ctlrNmbr);
+                    log.info("CenterTcpServerInboundHandler: Response OK. Center Request Unknown RSE: [{}]", ctlrNmbr);
                 } else {
-                    log.error("CenterTcpServerInboundHandler: Response Failed. Center Request Unknown VDS: [{}]", ctlrNmbr);
+                    log.error("CenterTcpServerInboundHandler: Response Failed. Center Request Unknown RSE: [{}]", ctlrNmbr);
                 }
-                mapper.updateRseCtrlHs(cntl);
+                mapper.updateRseCtrlHs(ctrlHs);
                 return;
             }
 
-            if (obj.getChannel() == null || obj.getNetState() == NET.CLOSED) {
-                log.error("CenterTcpServerInboundHandler: Center Request VDS Not Connect: [{}]", obj);
+            // 제어요청 패킷을 만든다
+            int result = obj.reset(devcType, devcType, ctrlHs);
+            if (result == 1) {
+                log.error("CenterTcpServerInboundHandler: Center Request RSE Not Connect: [{}]", obj);
                 ByteBuffer sendBuffer = CenterResProtocol.getResponse(opCode, (byte)(0xFE));
-                cntl.setRspsType("8");  // 통신불량
+                ctrlHs.setRspsType("8");  // 통신불량
                 ChannelFuture f = ctx.channel().writeAndFlush(sendBuffer);
                 f.awaitUninterruptibly();
                 if (f.isDone() || f.isSuccess()) {
-                    log.info("CenterTcpServerInboundHandler: Response OK. Center Not Connect VDS: [{}]", ctlrNmbr);
+                    log.info("CenterTcpServerInboundHandler: Response OK. Center Not Connect RSE: [{}]", ctlrNmbr);
                 } else {
-                    log.error("CenterTcpServerInboundHandler: Response Failed. Center Not Connect VDS: [{}]", ctlrNmbr);
+                    log.error("CenterTcpServerInboundHandler: Response Failed. Center Not Connect RSE: [{}]", ctlrNmbr);
                 }
-                mapper.updateRseCtrlHs(cntl);
+                mapper.updateRseCtrlHs(ctrlHs);
                 return;
             }
-
-            // 제어요청 패킷을 만든다
-            eControlDeviceId controlDeviceId = eControlDeviceId.getByValue(devcType);
-            eControlCommand commandType = eControlCommand.getByValue(cntlType);
-            if (controlDeviceId == null || commandType == null) {
+            if (result == 2) {
                 log.error("RSE REQ RESET CONTROL Value Error: [{}] [{},{}]", ctlrNmbr, devcType, cntlType);
                 ByteBuffer sendBuffer = CenterResProtocol.getResponse(opCode, (byte)(0xFD));
-                cntl.setRspsType("7");  // 통신불량
+                ctrlHs.setRspsType("7");  // 통신불량
                 ChannelFuture f = ctx.channel().writeAndFlush(sendBuffer);
                 f.awaitUninterruptibly();
                 if (f.isDone() || f.isSuccess()) {
-                    log.info("CenterTcpServerInboundHandler: Response OK. Center Not Connect VDS: [{}]", ctlrNmbr);
+                    log.info("CenterTcpServerInboundHandler: Response OK. Center Not Connect RSE: [{}]", ctlrNmbr);
                 } else {
-                    log.error("CenterTcpServerInboundHandler: Response Failed. Center Not Connect VDS: [{}]", ctlrNmbr);
+                    log.error("CenterTcpServerInboundHandler: Response Failed. Center Not Connect RSE: [{}]", ctlrNmbr);
                 }
-                mapper.updateRseCtrlHs(cntl);
+                mapper.updateRseCtrlHs(ctrlHs);
                 return;
             }
 
-            log.warn("[{}] [{},{}], controlDeviceId: {}, commandType: {}", ctlrNmbr, devcType, cntlType, controlDeviceId.toString(), commandType.toString());
-            boolean res = ControlDeviceService.getInstance().requestSubscriptionDeviceCommand(true, obj, obj.getChannel(), controlDeviceId.getValue(), commandType.getValue(), cntl);
-            if (res) {
+            if (result == 0) {
                 log.info("RSE REQ CONTROL SEND OK: [{}] [{},{}]", ctlrNmbr, devcType, cntlType);
-                cntl.setRspsType("0");  // 성공, 리셋응답없을수 있으므로 먼저 성공으로 입력한다.
+                ctrlHs.setRspsType("0");  // 성공, 리셋응답없을수 있으므로 먼저 성공으로 입력한다.
             } else {
                 log.error("RSE REQ CONTROL SEND Error: [{}] [{},{}]", ctlrNmbr, devcType, cntlType);
                 ByteBuffer sendBuffer = CenterResProtocol.getResponse(opCode, (byte)(0xFC));
-                cntl.setRspsType("6");  // 데이터전송실패
+                ctrlHs.setRspsType("6");  // 데이터전송실패
                 ChannelFuture f = ctx.channel().writeAndFlush(sendBuffer);
                 f.awaitUninterruptibly();
                 if (f.isDone() || f.isSuccess()) {
-                    log.info("CenterTcpServerInboundHandler: Response OK. Center Not Connect VDS: [{}]", ctlrNmbr);
+                    log.info("CenterTcpServerInboundHandler: Response OK. Center Not Connect RSE: [{}]", ctlrNmbr);
                 } else {
-                    log.error("CenterTcpServerInboundHandler: Response Failed. Center Not Connect VDS: [{}]", ctlrNmbr);
+                    log.error("CenterTcpServerInboundHandler: Response Failed. Center Not Connect RSE: [{}]", ctlrNmbr);
                 }
             }
-            mapper.updateRseCtrlHs(cntl);
+            mapper.updateRseCtrlHs(ctrlHs);
         }
 
     }

+ 1 - 1
src/main/java/com/its/dsrc/xnettcp/center/protocol/CenterReqFramePacket.java

@@ -9,7 +9,7 @@ import java.nio.ByteOrder;
 @Getter
 public class CenterReqFramePacket {
 
-    private ByteOrder byteOrder = ByteOrder.BIG_ENDIAN;//VdsProtocol.byteOrder;
+    private ByteOrder byteOrder = ByteOrder.BIG_ENDIAN;
 
     protected CenterReqFrameHead head;
     protected byte[]             body;

+ 6 - 5
src/main/java/com/its/dsrc/xnettcp/center/protocol/CenterResProtocol.java

@@ -6,15 +6,16 @@ import java.nio.ByteOrder;
 public class CenterResProtocol {
 
     public static ByteBuffer getResponse(byte opCode, byte result) {
+        int length = 0;
         ByteBuffer byteBuffer = ByteBuffer.allocate(10);
         byteBuffer.order(ByteOrder.BIG_ENDIAN);
         byteBuffer.put((byte)CenterProtocol.INT_ID_RSE_SERVER); // 송신시스템-운영단말
         byteBuffer.put((byte)CenterProtocol.INT_ID_RSE_OPER); // 수신시스템-RSE 서버
-        byteBuffer.put((byte)0x01); // 전체프레임개수
-        byteBuffer.put((byte)0x01); // 현재프레임번호
-        byteBuffer.put(result); // Reserved
-        byteBuffer.put(opCode);     // OP Code
-        byteBuffer.putInt(0);  // 데이터 길이
+        byteBuffer.put((byte)0x01);     // 전체프레임개수
+        byteBuffer.put((byte)0x01);     // 현재프레임번호
+        byteBuffer.put(result);         // Reserved
+        byteBuffer.put(opCode);         // OP Code
+        byteBuffer.putInt(length);      // 데이터 길이
 
         return byteBuffer;
     }

+ 0 - 98
src/main/resources/application.propertiesx

@@ -1,98 +0,0 @@
-#logging
-spring.devtools.livereload.enabled:false
-logging.config=classpath:logback-spring.xml
-#logging.config=conf//dsrc-comm-server-logback.xml
-#logging.level.root=info
-#logging.level.com.god.bo.test=info\
-#logging.level.com.god.bo.test.controller=debug
-
-#[Application properties]
-process.id=DSRC01
-process.name=DSRC Communication Server
-
-#[server config]
-server.user.id=1
-server.user.pswd=1
-server.db.threads=20
-server.data.threads=20
-server.task.statistics=true
-
-#[server <---> operator]
-server.center.bind.port=4602
-server.center.dump=false
-
-#[server <---> controller]
-server.tcp.bind.port=355
-server.tcp.recv.dump=false
-server.tcp.send.dump=false
-server.tcp.allIdleTime=60
-
-#[DSRC]
-dsrc.server.authuser=test1
-dsrc.server.authpassword=test1
-dsrc.server.senderText=DSRC Center Unit
-
-#OBU ID 암호화해제 등록요청
-dsrc.publication.nonCryptObu=true
-#최초 안테나 활성화시 안테나 갯수
-dsrc.publication.antenna=1
-#최초 상태정보 요청등록시 true
-dsrc.subscription.status=true
-#최초 교통정보 요청등록시 true
-dsrc.subscription.traffic=true
-
-#구간가공정보 파라미터
-dsrc.filtering.minSpeed=3
-dsrc.filtering.maxSpeed=140
-dsrc.filtering.historyMinute=60
-
-
-#[Database properties]
-#spring.datasource.hikari.driver-class-name=com.tmax.tibero.jdbc.TbDriver
-#spring.datasource.hikari.jdbc-url=jdbc:tibero:thin:@192.168.20.29:8629:tibero
-#spring.datasource.hikari.username=gmutis
-#spring.datasource.hikari.password=gmutis
-
-#spring.datasource.hikari.driver-class-name=oracle.jdbc.OracleDriver
-#spring.datasource.hikari.jdbc-url=jdbc:oracle:thin:@127.0.0.1:1521:HANTE
-spring.datasource.hikari.driver-class-name=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
-spring.datasource.hikari.jdbc-url=jdbc:log4jdbc:oracle:thin:@127.0.0.1:1521:HANTE
-spring.datasource.hikari.username=gmutis
-spring.datasource.hikari.password=gmutis
-
-spring.datasource.hikari.jpool-name=hikari-cp
-spring.datasource.hikari.jmaximum-pool-size=30
-spring.datasource.hikari.jminimum-idle=2
-
-#spring.datasource.hikari.driverClassName=oracle.jdbc.OracleDriver
-#spring.datasource.validation-query=SELECT 1 FROM DUAL
-#spring.datasource.default-isolation-level=DEFAULT
-#spring.datasource.dbcp2.initial-size = 50
-#spring.datasource.dbcp2.max-idle = 50
-#spring.datasource.dbcp2.default-query-timeout = 10000
-#spring.datasource.dbcp2.default-auto-commit = true
-
-#spring.datasource.type=com.zaxxer.hikari.HikariDataSource
-#spring.datasource.hikari.driver-class-name=org.h2.Driver
-#spring.datasource.hikari.jdbc-url=jdbc:h2:mem:testdb
-#spring.datasource.hikari.username=sa
-#spring.datasource.hikari.password=password
-#spring.datasource.hikari.max-wait=10000
-#spring.datasource.hikari.connection-timeout=30000
-#spring.datasource.hikari.idle-timeout=600000
-#spring.datasource.hikari.max-lifetime=1800000
-#spring.datasource.hikari.leak-detection-threshold=600000
-#spring.datasource.hikari.maximum-pool-size=100
-#spring.datasource.hikari.pool-name=MyDataSourcePoolName
-
-# FOR WEB UI: START
-server.shutdown=graceful
-server.port=80
-server.error.whitelabel.enabled=true
-server.error.include-exception=false
-server.error.include-stacktrace=never
-
-spring.mvc.view.prefix=/WEB-INF/jsp/
-spring.mvc.view.suffix=.jsp
-server.servlet.session.timeout=300
-# FOR WEB UI: END

+ 2 - 2
src/main/resources/application.yml

@@ -39,7 +39,7 @@ server:
 
 spring:
   application:
-    name: vds-comm-server
+    name: dsrc-comm-server
   profiles:
     active: dev
   main:
@@ -59,7 +59,7 @@ spring:
       #maximumPoolSize: 20
       idleTimeout: 30000
       connectTimeout: 10000
-      pool-name: pool-vds-comm-server
+      pool-name: pool-dsrc-comm-server
 
 ---
 spring:

+ 0 - 103
src/main/resources/application.yml.backup

@@ -1,103 +0,0 @@
-application:
-  id: DSRC01
-  name: DSRC Communication Server
-  history: true
-  user-id: admin
-  user-pswd: 1234
-  listen-port: 9904
-
-running:
-  comm-logging: true
-  retry-seconds: 20
-  connect-timeout: 5
-  dump-recv: true
-  dump-send: true
-  server-auth-user: test1
-  server-auth-password: test1
-  server-sender-text: DSRC Center Unit
-  publication-multimedia: false
-  publication-non-crypt-obu: true
-  publication-antenna: 1
-  subscription-status: true
-  subscription-status-cycle: 30
-  subscription-traffic: true
-  filtering-min-speed: 3
-  filtering-max-speed: 140
-  filtering-history-minute: 50
-  filtering-algorithm: 1
-  comm-binding-addr:
-  comm-binding-port: 3550
-  comm-backlog: 0
-  comm-accept-threads: 0
-  comm-worker-threads: 0
-  comm-rcv-buf: 0
-  comm-snd-buf: 0
-  comm-reader-idle-time-seconds: 0
-  comm-writer-idle-time-seconds: 0
-  comm-all-idle-time-seconds: 0
-  comm-connect-timeout-seconds: 0
-  comm-max-connection: 0
-  comm-packet-workers: 0
-  comm-logging-workers: 0
-  comm-dbms-workers: 1
-
-server:
-  port: 9875
-  shutdown: graceful
-  error:
-    whitelabel:
-      enabled: true
-    include-exception: false
-    include-stacktrace: never
-  servlet:
-    session:
-      timeout: 300
-
-spring:
-  application:
-    name: vds-comm-server
-  profiles:
-    active: dev
-  main:
-    web-application-type: none
-    log-startup-info: true
-    banner-mode: off
-  mvc:
-    view:
-      prefix: /WEB-INF/jsp/
-      suffix: .jsp
-  datasource:
-    hikari:
-      auto-commit: true
-      connection-test-query: SELECT 1 FROM DUAL
-      minimumIdle: 5
-      maximumIdle: 10
-      #maximumPoolSize: 20
-      idleTimeout: 30000
-      connectTimeout: 10000
-      pool-name: pool-vds-comm-server
-
----
-spring:
-  config:
-    activate:
-      on-profile: dev
-  datasource:
-    hikari:
-      driver-class-name: oracle.jdbc.OracleDriver
-      jdbc-url: jdbc:oracle:thin:@115.91.94.42:1522:HANTE19C
-      username: ptatms
-      password: ptatms
-
----
-spring:
-  config:
-    activate:
-      on-profile: prod
-  datasource:
-    hikari:
-      driver-class-name: oracle.jdbc.OracleDriver
-      jdbc-url: jdbc:oracle:thin:@172.19.10.11:1521:ptatms
-      username: ptatms
-      password: ptatms
-

+ 2 - 2
src/main/resources/mybatis/mapper/RseCtlrMapper.xml

@@ -485,8 +485,8 @@
     <insert id="updateRseCtrlHs" parameterType="com.its.dsrc.entity.TbRseCtrlHs">
     <![CDATA[
         UPDATE TB_RSE_CTRL_HS
-            SET RSPS_TYPE = #{obj.RSPS_TYPE}
-        WHERE CTRL_SEQ = #{obj.CTRL_SEQ}
+            SET RSPS_TYPE = #{obj.rspsType}
+        WHERE CTRL_SEQ = #{obj.ctrlSeq}
         ]]>
     </insert>