shjung 3 years ago
parent
commit
a27cc74313

+ 0 - 212
conf/vds-comm-server-logback.xml

@@ -1,212 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<configuration scan="true" scanPeriod="60 seconds">
-    <shutdownHook class="ch.qos.logback.core.hook.DelayingShutdownHook"/>
-
-    <property name="PROJECT_NAME"    value="vds-comm-server"/>
-    <property name="ROOT_LOG_LEVEL"  value="INFO"/>
-    <property name="LOG_CHARSET"     value="UTF-8" />
-    <property name="LOG_PATH"        value="${user.dir}/logs/"/>
-    <property name="LOG_BACKUP_PATH" value="${user.dir}/logs/backup/"/>
-
-    <property name="LOG_FILE_NAME"             value="${PROJECT_NAME}.log"/>
-    <property name="LOG_FILE_NAME_ERROR"       value="${PROJECT_NAME}.err.log"/>
-    <property name="LOG_FILE_NAME_PATTERN"     value="%d{yyyyMMdd}_%i.log.gz"/>
-    <property name="LOG_FILE_NAME_PACKET"      value="vds-packet"/>
-    <property name="LOG_FILE_NAME_SESSION"     value="vds-session.log"/>
-    <property name="LOG_FILE_NAME_CENTER_COMM" value="vds-center-comm.log"/>
-    <property name="LOG_FILE_NAME_SQL"         value="vds-sql.log"/>
-    <property name="LOG_FILE_NAME_SCHEDULE"    value="vds-schedule.log"/>
-    <property name="LOG_FILE_NAME_STATISTICS"  value="vds-statistics.log"/>
-
-    <property name="MAX_FILESIZE" value="10MB"/>
-    <property name="MAX_HISTORY"  value="30"/>
-    <property name="LOG_PATTERN_FILE"        value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %msg%n"/>
-    <property name="LOG_PATTERN_ERROR"       value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%30t] [%5level] %42logger{35}.%-20M ${PID:-} %n%msg%n"/>
-    <property name="LOG_PATTERN_PACKET"      value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %msg%n"/>
-    <property name="LOG_PATTERN_SESSION"     value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %msg%n"/>
-    <property name="LOG_PATTERN_CENTER_COMM" value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %msg%n"/>
-    <property name="LOG_PATTERN_SQL"         value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %msg%n"/>
-    <property name="LOG_PATTERN_SCHEDULE"    value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %msg%n"/>
-    <property name="LOG_PATTERN_STATISTICS"  value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %msg%n"/>
-    <!--<property name="LOG_PATTERN_CONSOLE"     value="%d{HH:mm:ss.SSS} [%30thread] %highlight([%5level]) %cyan(%42logger{35}.%-20M)${PID:-} : %msg%n"/>
-    <property name="LOG_PATTERN_FILE"        value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%30t] [%5level] %42logger{35}.%-20M ${PID:-} : %msg%n"/>
-    <property name="LOG_PATTERN_ERROR"       value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%30t] [%5level] %42logger{35}.%-20M ${PID:-} : %msg%n"/>
-    <property name="LOG_PATTERN_PACKET"      value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] [%thread] %msg%n"/>
-    <property name="LOG_PATTERN_SESSION"     value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %msg%n"/>
-    <property name="LOG_PATTERN_CENTER_COMM" value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%30t] [%5level] %42logger{35}.%-20M ${PID:-} : %msg%n"/>
-    <property name="LOG_PATTERN_SQL"         value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] [%thread] %msg%n"/>
-    <property name="LOG_PATTERN_SCHEDULE"    value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] [%30thread] %msg%n"/>
-    <property name="LOG_PATTERN_CONSOLE"     value="[%d{HH:mm:ss.SSS}] %highlight([%5level]) %highlight(${PID:-}): %cyan(%msg) [%class{0}.%method] [%thread] %n"/>
-    -->
-    <property name="LOG_PATTERN_CONSOLE" value="[%d{HH:mm:ss.SSS}] %highlight([%5level]) %highlight(${PID:-}): %cyan(%msg) %n"/>
-
-    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
-        <withJansi>true</withJansi>
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <pattern>${LOG_PATTERN_CONSOLE}</pattern>
-        </encoder>
-    </appender>
-
-    <appender name="FILE_PACKET" class="ch.qos.logback.classic.sift.SiftingAppender">
-        <discriminator>
-            <key>id</key>
-            <defaultValue>${LOG_FILE_NAME_PACKET}</defaultValue>
-        </discriminator>
-        <sift>
-            <appender name="FILE-${id}" class="ch.qos.logback.core.rolling.RollingFileAppender">
-                <file>${LOG_PATH}packet/${id}.log</file>
-                <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-                    <charset>${LOG_CHARSET}</charset>
-                    <Pattern>${LOG_PATTERN_PACKET}</Pattern>
-                </encoder>
-
-                <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-                    <FileNamePattern>${LOG_BACKUP_PATH}packet/${id}.${LOG_FILE_NAME_PATTERN}</FileNamePattern>
-                    <maxFileSize>${MAX_FILESIZE}</maxFileSize>
-                    <maxHistory>${MAX_HISTORY}</maxHistory>
-                </rollingPolicy>
-            </appender>
-        </sift>
-    </appender>
-
-    <appender name="FILE_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <file>${LOG_PATH}${LOG_FILE_NAME}</file>
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <charset>${LOG_CHARSET}</charset>
-            <pattern>${LOG_PATTERN_FILE}</pattern>
-        </encoder>
-        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-            <fileNamePattern>${LOG_BACKUP_PATH}${LOG_FILE_NAME}.${LOG_FILE_NAME_PATTERN}</fileNamePattern>
-            <maxFileSize>${MAX_FILESIZE}</maxFileSize>
-            <maxHistory>${MAX_HISTORY}</maxHistory>
-        </rollingPolicy>
-    </appender>
-
-    <appender name="FILE_ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <filter class="ch.qos.logback.classic.filter.LevelFilter">
-            <level>error</level>
-            <onMatch>ACCEPT</onMatch>
-            <onMismatch>DENY</onMismatch>
-        </filter>
-        <file>${LOG_PATH}${LOG_FILE_NAME_ERROR}</file>
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <charset>${LOG_CHARSET}</charset>
-            <pattern>${LOG_PATTERN_ERROR}</pattern>
-        </encoder>
-        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-            <fileNamePattern>${LOG_BACKUP_PATH}${LOG_FILE_NAME_ERROR}.%d{yyyy-MM-dd}_%i.log</fileNamePattern>
-            <maxFileSize>${MAX_FILESIZE}</maxFileSize>
-            <maxHistory>${MAX_HISTORY}</maxHistory>
-        </rollingPolicy>
-    </appender>
-
-    <root level="INFO">
-        <appender-ref ref="CONSOLE"/>
-        <appender-ref ref="FILE_LOG"/>
-        <appender-ref ref="FILE_ERROR"/>
-    </root>
-
-    <logger name="com.its.app.xnettcp" level="DEBUG" additivity="false">
-        <appender-ref ref="CONSOLE"/>
-        <appender-ref ref="FILE_PACKET"/>
-        <appender-ref ref="FILE_ERROR"/>
-    </logger>
-
-    <appender name="CENTER_COMM" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <file>${LOG_PATH}${LOG_FILE_NAME_CENTER_COMM}</file>
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <charset>${LOG_CHARSET}</charset>
-            <pattern>${LOG_PATTERN_CENTER_COMM}</pattern>
-        </encoder>
-        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-            <fileNamePattern>${LOG_BACKUP_PATH}CenterComm/${LOG_FILE_NAME_CENTER_COMM}.${LOG_FILE_NAME_PATTERN}</fileNamePattern>
-            <maxFileSize>${MAX_FILESIZE}</maxFileSize>
-            <maxHistory>${MAX_HISTORY}</maxHistory>
-        </rollingPolicy>
-    </appender>
-
-    <logger name="com.its.app.xnetudp" level="DEBUG" additivity="false">
-        <appender-ref ref="CONSOLE"/>
-        <appender-ref ref="CENTER_COMM"/>
-        <appender-ref ref="FILE_ERROR"/>
-    </logger>
-
-    <appender name="FILE_SESSION" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <file>${LOG_PATH}${LOG_FILE_NAME_SESSION}</file>
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <charset>${LOG_CHARSET}</charset>
-            <pattern>${LOG_PATTERN_FILE}</pattern>
-        </encoder>
-        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-            <fileNamePattern>${LOG_BACKUP_PATH}${LOG_FILE_NAME_SESSION}.${LOG_FILE_NAME_PATTERN}</fileNamePattern>
-            <maxFileSize>${MAX_FILESIZE}</maxFileSize>
-            <maxHistory>${MAX_HISTORY}</maxHistory>
-        </rollingPolicy>
-    </appender>
-
-    <logger name="com.its.app.xnettcp.handler" level="DEBUG" additivity="true">
-        <appender-ref ref="CONSOLE"/>
-        <appender-ref ref="FILE_SESSION"/>
-        <appender-ref ref="FILE_ERROR"/>
-    </logger>
-
-    <appender name="FILE_STATISTICS" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <file>${LOG_PATH}${LOG_FILE_NAME_STATISTICS}</file>
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <charset>${LOG_CHARSET}</charset>
-            <pattern>${LOG_PATTERN_STATISTICS}</pattern>
-        </encoder>
-        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-            <fileNamePattern>${LOG_BACKUP_PATH}Schedule/${LOG_FILE_NAME_STATISTICS}.${LOG_FILE_NAME_PATTERN}</fileNamePattern>
-            <maxFileSize>${MAX_FILESIZE}</maxFileSize>
-            <maxHistory>${MAX_HISTORY}</maxHistory>
-        </rollingPolicy>
-    </appender>
-
-    <logger name="com.its.vds.service.StatisticsServices" level="DEBUG" additivity="false">
-        <appender-ref ref="CONSOLE"/>
-        <appender-ref ref="FILE_STATISTICS"/>
-        <appender-ref ref="FILE_ERROR"/>
-    </logger>
-
-    <appender name="FILE_SCHEDULE" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <file>${LOG_PATH}${LOG_FILE_NAME_SCHEDULE}</file>
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <charset>${LOG_CHARSET}</charset>
-            <pattern>${LOG_PATTERN_SCHEDULE}</pattern>
-        </encoder>
-        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-            <fileNamePattern>${LOG_BACKUP_PATH}${LOG_FILE_NAME_SCHEDULE}.${LOG_FILE_NAME_PATTERN}</fileNamePattern>
-            <maxFileSize>${MAX_FILESIZE}</maxFileSize>
-            <maxHistory>${MAX_HISTORY}</maxHistory>
-        </rollingPolicy>
-    </appender>
-
-    <logger name="com.its.app.scheduler" level="DEBUG" additivity="false">
-        <appender-ref ref="CONSOLE"/>
-        <appender-ref ref="FILE_SCHEDULE"/>
-        <appender-ref ref="FILE_ERROR"/>
-    </logger>
-
-    <appender name="FILE_SQL" class="ch.qos.logback.core.rolling.RollingFileAppender">
-        <file>${LOG_PATH}${LOG_FILE_NAME_SQL}</file>
-        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
-            <charset>${LOG_CHARSET}</charset>
-            <pattern>${LOG_PATTERN_SQL}</pattern>
-        </encoder>
-        <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
-            <fileNamePattern>${LOG_BACKUP_PATH}${LOG_FILE_NAME_SQL}.${LOG_FILE_NAME_PATTERN}</fileNamePattern>
-            <maxFileSize>${MAX_FILESIZE}</maxFileSize>
-            <maxHistory>${MAX_HISTORY}</maxHistory>
-        </rollingPolicy>
-    </appender>
-
-    <logger name="jdbc"                level="OFF"   additivity="false"> <appender-ref ref="FILE_SQL" /> <appender-ref ref="FILE_ERROR"/> </logger>
-    <logger name="jdbc.sqlonly"        level="INFO"  additivity="false"> <appender-ref ref="FILE_SQL" /> <appender-ref ref="FILE_ERROR"/> </logger>
-    <logger name="jdbc.sqltiming"      level="DEBUG" additivity="false"> <appender-ref ref="FILE_SQL" /> <appender-ref ref="FILE_ERROR"/> </logger>
-    <logger name="jdbc.audit"          level="OFF"   additivity="false"> <appender-ref ref="FILE_SQL" /> <appender-ref ref="FILE_ERROR"/> </logger>
-    <logger name="jdbc.resultset"      level="INFO"  additivity="false"> <appender-ref ref="FILE_SQL" /> <appender-ref ref="FILE_ERROR"/> </logger>
-    <logger name="jdbc.resultsettable" level="INFO"  additivity="false"> <appender-ref ref="FILE_SQL" /> <appender-ref ref="FILE_ERROR"/> </logger>
-    <logger name="jdbc.connection"     level="INFO"  additivity="false"> <appender-ref ref="FILE_SQL" /> <appender-ref ref="FILE_ERROR"/> </logger>
-
-</configuration>

+ 0 - 48
conf/vds-comm-server-tibero.properties

@@ -1,48 +0,0 @@
-#logging
-logging.config=conf//vds-comm-server-logback.xml
-
-#[Application properties]
-process.id=VDS01
-process.name=VDS Communication Server
-
-#[server config]
-server.db.threads=20
-server.data.threads=40
-
-#[server <---> operator]
-server.center.bind.port=6010
-server.center.bind.addr=
-server.center.dump=false
-
-#[server <---> controller]
-server.tcp.bind.addr=
-server.tcp.bind.port=30100
-server.tcp.recv.dump=false
-server.tcp.send.dump=false
-
-
-#[Database properties]
-#spring.datasource.hikari.driver-class-name=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
-spring.datasource.hikari.driver-class-name=com.tmax.tibero.jdbc.TbDriver
-spring.datasource.hikari.jdbc-url=jdbc:tibero:thin:@100.100.10.10:8629:UTIS
-spring.datasource.hikari.username=itsdev
-spring.datasource.hikari.password=itsdev
-
-
-spring.datasource.hikari.jpool-name=hikari-cp
-spring.datasource.hikari.jmaximum-pool-size=30
-spring.datasource.hikari.jminimum-idle=2
-
-
-# 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
-

+ 0 - 94
conf/vds-comm-server.properties

@@ -1,94 +0,0 @@
-#logging
-logging.config=conf//vds-comm-server-logback.xml
-
-#[Application properties]
-process.id=VDS01
-process.name=VDS Communication Server
-
-#[server config]
-server.db.threads=20
-server.data.threads=40
-
-#[server <---> operator]
-server.center.bind.port=6010
-server.center.bind.addr=
-server.center.dump=false
-
-#[server <---> controller]
-server.tcp.bind.addr=
-server.tcp.bind.port=30100
-server.tcp.recv.dump=false
-server.tcp.send.dump=false
-
-
-#OBU ID 암호화해제 등록요청
-dsrc.publication.nonCryptObu=true
-#최초 안테나 활성화시 안테나 갯수
-dsrc.publication.antenna=1
-#최초 상태정보 요청등록시 true
-dsrc.subscriptoin.status=true
-#최초 교통정보 요청등록시 true
-dsrc.subscription.traffic=true
-
-dsrc.filtering.minSpeed=3
-dsrc.filtering.maxSpeed=150
-dsrc.filtering.historyMinute=60
-
-#[Web I/F properties]
-server.shutdown=graceful
-server.port=8080
-server.error.whitelabel.enabled=true
-server.error.include-exception=false
-server.error.include-stacktrace=never
-
-#[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.driver-class-name=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
-#spring.datasource.hikari.jdbc-url=jdbc:oracle:thin:@127.0.0.1:1521:HANTE
-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=8080
-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
-

BIN
fonts/D2Coding.ttc


+ 20 - 8
src/main/java/com/its/vds/VdsCommServerApplication.java

@@ -2,8 +2,8 @@ package com.its.vds;
 
 import com.its.app.AppUtils;
 import com.its.app.utils.SysUtils;
-import com.its.vds.UI.JTextAreaOutputStream;
-import com.its.vds.UI.MainUI;
+import com.its.vds.ui.JTextAreaOutputStream;
+import com.its.vds.ui.MainUI;
 import com.its.vds.config.ProcessConfig;
 import com.its.vds.process.DbmsJobProcess;
 import com.its.vds.service.UnitSystService;
@@ -20,6 +20,7 @@ import org.springframework.boot.CommandLineRunner;
 import org.springframework.boot.WebApplicationType;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.builder.SpringApplicationBuilder;
+import org.springframework.boot.context.ApplicationPidFileWriter;
 import org.springframework.context.ApplicationContext;
 import org.springframework.context.ApplicationListener;
 import org.springframework.context.annotation.ComponentScan;
@@ -31,6 +32,7 @@ import javax.swing.*;
 import java.awt.*;
 import java.awt.event.WindowAdapter;
 import java.awt.event.WindowEvent;
+import java.io.File;
 import java.io.PrintStream;
 
 @Slf4j
@@ -50,13 +52,16 @@ public class VdsCommServerApplication implements CommandLineRunner, ApplicationL
         /*String userDir = System.getProperty("user.dir");
         String logbackConfigFileName = userDir + "/conf/app-comm-server-log.xml";
         System.setProperty(ContextInitializer.CONFIG_FILE_PROPERTY, logbackConfigFileName);*/
+        File file1 = new File("./conf/vds-comm-server.pid");
+        if (file1.exists()) {
+            System.out.println(System.getProperty("Program Already Running....."));
+            log.error("Program Already Running.....");
+            //return;
+        }
 
-//        new SpringApplicationBuilder(VdsCommServerApplication.class)
-//                .headless(false)
-//                .web(WebApplicationType.NONE)
-//                .run(args);
         ApplicationContext context = new SpringApplicationBuilder(VdsCommServerApplication.class)
                 .web(WebApplicationType.NONE)
+                .listeners(new ApplicationPidFileWriter("./conf/vds-comm-server.pid"))
                 .headless(false)
                 .bannerMode(Banner.Mode.OFF)
                 .run(args);
@@ -77,6 +82,7 @@ public class VdsCommServerApplication implements CommandLineRunner, ApplicationL
             String sysTime = SysUtils.getSysTimeStr();
             JFrame frame = new JFrame("VDS 통신 서버 - [" + sysTime + "]");
             MainUI UI = new MainUI();
+            //JFrame.setDefaultLookAndFeelDecorated(true);
             frame.setIconImage(Toolkit.getDefaultToolkit().getImage(pathOfImage));
             frame.setModalExclusionType(Dialog.ModalExclusionType.APPLICATION_EXCLUDE);
             frame.setContentPane(UI.getRootPanel());
@@ -99,8 +105,14 @@ public class VdsCommServerApplication implements CommandLineRunner, ApplicationL
 
             JTextArea logArea = UI.getTaLog();
             logArea.setText(null);
-            JTextAreaOutputStream out = new JTextAreaOutputStream (logArea);
-            System.setOut (new PrintStream(out));
+            JTextAreaOutputStream out = new JTextAreaOutputStream(logArea);
+            System.setOut(new PrintStream(out));
+//            try {
+//                PrintStream outStream = new PrintStream(out, true, "euc-kr");
+//                System.setOut(outStream);
+//            } catch (UnsupportedEncodingException e) {
+//                //throw new RuntimeException(e);
+//            }
         });
 
         ProcessConfig processConfig = (ProcessConfig) AppUtils.getBean(ProcessConfig.class);

+ 1 - 1
src/main/java/com/its/vds/entity/TbVdsCtlr.java

@@ -243,7 +243,7 @@ public class TbVdsCtlr {
 			f.awaitUninterruptibly();
 			if (f.isDone() || f.isSuccess()) {
 				result = true;
-				log.info("[{}]. sendData: OK. {}, {} Bytes.", this.VDS_CTLR_ID, packetDesc, sendBuffer.array().length);
+				//log.info("[{}]. sendData: OK. {}, {} Bytes.", this.VDS_CTLR_ID, packetDesc, sendBuffer.array().length);
 				if (delayMilliSeconds > 0) {
 					VdsProtocol.sleep(delayMilliSeconds);
 				}

+ 1 - 1
src/main/java/com/its/vds/UI/CtlrSttsDetlTableCellRenderer.java → src/main/java/com/its/vds/ui/CtlrSttsDetlTableCellRenderer.java

@@ -1,4 +1,4 @@
-package com.its.vds.UI;
+package com.its.vds.ui;
 
 import javax.swing.*;
 import javax.swing.table.DefaultTableCellRenderer;

+ 4 - 1
src/main/java/com/its/vds/UI/CtlrSttsTableCellRenderer.java → src/main/java/com/its/vds/ui/CtlrSttsTableCellRenderer.java

@@ -1,4 +1,4 @@
-package com.its.vds.UI;
+package com.its.vds.ui;
 
 import javax.swing.*;
 import javax.swing.table.DefaultTableCellRenderer;
@@ -51,6 +51,9 @@ public class CtlrSttsTableCellRenderer extends DefaultTableCellRenderer {
         } else {
             setHorizontalAlignment(SwingConstants.LEFT);
         }
+        if (column == 0) {
+            cell.setBackground(Color.LIGHT_GRAY);
+        }
 
         return cell;
     }

+ 2 - 2
src/main/java/com/its/vds/UI/CtlrSttsTableModel.java → src/main/java/com/its/vds/ui/CtlrSttsTableModel.java

@@ -1,4 +1,4 @@
-package com.its.vds.UI;
+package com.its.vds.ui;
 
 import com.its.vds.entity.TbVdsCtlr;
 import com.its.vds.entity.TbVdsCtlrStts;
@@ -26,7 +26,7 @@ public class CtlrSttsTableModel extends AbstractTableModel {
             "팬",
             "히터",
             "온도",
-            "Video",
+            "영상",
             "연결 시각",
             "연결종료 시각"
     };

+ 2 - 3
src/main/java/com/its/vds/UI/JTextAreaOutputStream.java → src/main/java/com/its/vds/ui/JTextAreaOutputStream.java

@@ -1,4 +1,4 @@
-package com.its.vds.UI;
+package com.its.vds.ui;
 
 import javax.swing.*;
 import javax.swing.text.BadLocationException;
@@ -13,7 +13,6 @@ public class JTextAreaOutputStream extends OutputStream {
     public JTextAreaOutputStream(JTextArea logArea) {
         if (logArea == null)
             throw new IllegalArgumentException ("Destination is null...");
-
         this.logArea = logArea;
     }
 
@@ -56,7 +55,7 @@ public class JTextAreaOutputStream extends OutputStream {
 //                        } catch (BadLocationException e) {
 //                        }
 //                    }
-                    if (logArea.getLineCount() > 500) {
+                    if (logArea.getLineCount() > 2000) {
                         logArea.setText(null);
                     }
                     logArea.append(text);

+ 12 - 9
src/main/java/com/its/vds/UI/MainUI.form → src/main/java/com/its/vds/ui/MainUI.form

@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.its.vds.UI.MainUI">
+<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.its.vds.ui.MainUI">
   <grid id="27dc6" binding="rootPanel" layout-manager="GridLayoutManager" row-count="3" 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>
@@ -17,7 +17,7 @@
         <border type="none"/>
         <children>
           <grid id="d1b2f" binding="pnlCtlrTitle" 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="0"/>
+            <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>
@@ -67,7 +67,7 @@
                   <font name="Malgun Gothic" size="12" style="1"/>
                   <horizontalAlignment value="0"/>
                   <horizontalTextPosition value="0"/>
-                  <text value="     -"/>
+                  <text value="   -"/>
                 </properties>
               </component>
               <component id="1c841" class="javax.swing.JLabel" binding="lblError">
@@ -79,7 +79,7 @@
                   <foreground color="-65536"/>
                   <horizontalAlignment value="0"/>
                   <horizontalTextPosition value="0"/>
-                  <text value="     -"/>
+                  <text value="   -"/>
                 </properties>
               </component>
             </children>
@@ -105,16 +105,16 @@
         <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="3" anchor="0" fill="3" indent="0" use-parent-layout="false">
-            <minimum-size width="-1" height="250"/>
-            <preferred-size width="-1" height="250"/>
-            <maximum-size width="-1" height="250"/>
+            <minimum-size width="-1" height="300"/>
+            <preferred-size width="-1" height="300"/>
+            <maximum-size width="-1" height="300"/>
           </grid>
         </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="0"/>
+            <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>
@@ -183,7 +183,9 @@
             <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/>
+            <properties>
+              <font name="D2Coding" size="12" style="0"/>
+            </properties>
             <border type="none"/>
             <children>
               <component id="8ce8a" class="javax.swing.JTextArea" binding="taLog">
@@ -195,6 +197,7 @@
                   <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>

+ 50 - 7
src/main/java/com/its/vds/UI/MainUI.java → src/main/java/com/its/vds/ui/MainUI.java

@@ -1,4 +1,4 @@
-package com.its.vds.UI;
+package com.its.vds.ui;
 
 import com.intellij.uiDesigner.core.GridConstraints;
 import com.intellij.uiDesigner.core.GridLayoutManager;
@@ -14,6 +14,7 @@ import org.apache.commons.lang.StringUtils;
 
 import javax.swing.Timer;
 import javax.swing.*;
+import javax.swing.border.MatteBorder;
 import javax.swing.plaf.FontUIResource;
 import javax.swing.table.DefaultTableCellRenderer;
 import javax.swing.table.TableCellRenderer;
@@ -24,6 +25,7 @@ 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.List;
@@ -76,14 +78,38 @@ public class MainUI {
     }
 
     public MainUI() {
+        System.setProperty("awt.useSystemAAFontSettings", "false"); // AntiAliasing false
+
         if (_instance == null) {
             _instance = this;
         }
         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);
+        }
+
+//        GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
+//        String fontNames[] = ge.getAvailableFontFamilyNames();
+//        for (int ii = 0; ii < fontNames.length; ii++) {
+//            log.error("GraphicsEnvironment Fonts: {}", fontNames[ii]);
+//        }
+//        final Font fonts[] = GraphicsEnvironment.getLocalGraphicsEnvironment().getAllFonts();
+//        for (Font font : fonts) {
+//            log.error("FONTS: {}", font);
+//        }
 
         displaySystime();
         displayResource();
-        //task = new MonitoringTask();
         timer = new Timer(1000, new ActionListener() {
             public void actionPerformed(ActionEvent evt) {
                 displaySystime();
@@ -140,6 +166,14 @@ public class MainUI {
      */
     private void initTblListUI(List<TbVdsCtlr> ctlrList) {
 
+        tblCtlrList.getTableHeader().setOpaque(false);
+        tblCtlrList.getTableHeader().setBackground(Color.LIGHT_GRAY);
+        tblCtlrList.setRowMargin(1);
+        //tblCtlrList.setGridColor(Color.LIGHT_GRAY);
+        tblCtlrList.setRowHeight(tblCtlrList.getRowHeight() + 5);
+        //tblCtlrList.setRowSelectionAllowed(true);
+        //tblCtlrList.setColumnSelectionAllowed(false);
+
         ctlrSttsTableModel = new CtlrSttsTableModel(ctlrList);
         tblCtlrList.setModel(ctlrSttsTableModel);
         tblCtlrList.setBackground(Color.WHITE);
@@ -163,6 +197,12 @@ public class MainUI {
         getColumnModel.getColumn(11).setPreferredWidth(50); //  "Video",
         getColumnModel.getColumn(12).setPreferredWidth(120);
         getColumnModel.getColumn(13).setPreferredWidth(120);
+        getColumnModel.getColumn(0).setMaxWidth(30);
+        getColumnModel.getColumn(0).setMinWidth(30);
+        getColumnModel.getColumn(0).setResizable(false);
+        Color color = UIManager.getColor("Table.gridColor");
+        MatteBorder border = new MatteBorder(1, 1, 0, 0, color);
+        tblCtlrList.setBorder(border);
 
         DefaultTableCellRenderer centerAlign = new DefaultTableCellRenderer();
         centerAlign.setHorizontalAlignment(JLabel.CENTER);
@@ -243,7 +283,7 @@ public class MainUI {
         pnlCtlr.setLayout(new GridLayoutManager(2, 1, 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_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_WANT_GROW, null, null, null, 0, false));
         pnlCtlrTitle = new JPanel();
-        pnlCtlrTitle.setLayout(new GridLayoutManager(1, 6, new Insets(0, 0, 0, 0), -1, -1));
+        pnlCtlrTitle.setLayout(new GridLayoutManager(1, 6, new Insets(0, 0, 0, 2), -1, -1));
         pnlCtlr.add(pnlCtlrTitle, 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 label1 = new JLabel();
         Font label1Font = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, label1.getFont());
@@ -270,7 +310,7 @@ public class MainUI {
         if (lblTotalFont != null) lblTotal.setFont(lblTotalFont);
         lblTotal.setHorizontalAlignment(0);
         lblTotal.setHorizontalTextPosition(0);
-        lblTotal.setText("     -");
+        lblTotal.setText("   -");
         pnlCtlrTitle.add(lblTotal, new GridConstraints(0, 3, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
         lblError = new JLabel();
         Font lblErrorFont = this.$$$getFont$$$("Malgun Gothic", Font.BOLD, 12, lblError.getFont());
@@ -278,7 +318,7 @@ public class MainUI {
         lblError.setForeground(new Color(-65536));
         lblError.setHorizontalAlignment(0);
         lblError.setHorizontalTextPosition(0);
-        lblError.setText("     -");
+        lblError.setText("   -");
         pnlCtlrTitle.add(lblError, new GridConstraints(0, 5, 1, 1, GridConstraints.ANCHOR_WEST, GridConstraints.FILL_NONE, GridConstraints.SIZEPOLICY_FIXED, GridConstraints.SIZEPOLICY_FIXED, null, null, null, 0, false));
         final JScrollPane scrollPane1 = new JScrollPane();
         pnlCtlr.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));
@@ -288,9 +328,9 @@ public class MainUI {
         scrollPane1.setViewportView(tblCtlrList);
         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_CAN_GROW, GridConstraints.SIZEPOLICY_CAN_SHRINK | GridConstraints.SIZEPOLICY_CAN_GROW, new Dimension(-1, 250), new Dimension(-1, 250), new Dimension(-1, 250), 0, false));
+        rootPanel.add(pnlLog, 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, 300), new Dimension(-1, 300), new Dimension(-1, 300), 0, false));
         pnlLogTitle = new JPanel();
-        pnlLogTitle.setLayout(new GridLayoutManager(1, 6, new Insets(0, 0, 0, 0), 1, 1));
+        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 label4 = new JLabel();
         Font label4Font = this.$$$getFont$$$("Malgun Gothic", Font.PLAIN, 12, label4.getFont());
@@ -326,6 +366,8 @@ public class MainUI {
         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 scrollPane2 = new JScrollPane();
+        Font scrollPane2Font = this.$$$getFont$$$("D2Coding", Font.PLAIN, 12, scrollPane2.getFont());
+        if (scrollPane2Font != null) scrollPane2.setFont(scrollPane2Font);
         pnlLog.add(scrollPane2, 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));
@@ -335,6 +377,7 @@ public class MainUI {
         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");
         scrollPane2.setViewportView(taLog);
         pnlStatusBar = new JPanel();
         pnlStatusBar.setLayout(new GridLayoutManager(1, 7, new Insets(0, 4, 4, 4), -1, -1));

+ 1 - 1
src/main/java/com/its/vds/UI/MonitoringTask.java → src/main/java/com/its/vds/ui/MonitoringTask.java

@@ -1,4 +1,4 @@
-package com.its.vds.UI;
+package com.its.vds.ui;
 
 import javax.swing.*;
 import java.util.concurrent.atomic.AtomicBoolean;

+ 4 - 4
src/main/java/com/its/vds/xnettcp/vds/VdsTcpClient.java

@@ -1,7 +1,7 @@
 package com.its.vds.xnettcp.vds;
 
 import com.its.app.AppUtils;
-import com.its.vds.UI.MainUI;
+import com.its.vds.ui.MainUI;
 import com.its.vds.config.ControllerCommConfig;
 import com.its.vds.entity.TbVdsCtlr;
 import com.its.vds.xnettcp.vds.codec.VdsTcpClientDecoder;
@@ -47,7 +47,7 @@ public class VdsTcpClient implements Callable<Object> {
         this.ipAddress = this.controller.getVDS_CTLR_IP();
         this.port = this.controller.getVDS_CTLR_PORT();
 
-        log.info("[{}]. VdsTcpClient start: {}, {}", this.controller.getVDS_CTLR_ID(), this.ipAddress, this.port);
+        //log.info("[{}]. VdsTcpClient start: {}, {}", this.controller.getVDS_CTLR_ID(), this.ipAddress, this.port);
         if (this.bootstrap == null) {
             this.bootstrap = this.bootstrapFactory.createBootstrap();
             this.bootstrap.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, this.commConfig.getConnectTimeout() * 1000);
@@ -85,7 +85,7 @@ public class VdsTcpClient implements Callable<Object> {
                     //log.info("[{}]. VDS Controller Channel open");
                     channelOpen(future.channel());
                 } else {
-                    log.error("[{}]. VDS Controller connectFailed: {}", controller.getVDS_CTLR_ID(), future.cause().toString());
+                    log.error("[{}]. VDS Controller connect Failed: {}", controller.getVDS_CTLR_ID(), future.cause().getMessage());
                 }
             }
         });
@@ -124,9 +124,9 @@ public class VdsTcpClient implements Callable<Object> {
      * @param channel
      */
     protected synchronized void channelClosed(Channel channel) {
-        log.error("[{}]. VDS Controller closed: channel {}", this.controller.getVDS_CTLR_ID(), channel);
         TbVdsCtlr obj = this.controller;
         if (obj.getChannel() != null) {
+            log.error("[{}]. VDS Controller closed: channel {}", this.controller.getVDS_CTLR_ID(), channel);
             // 연결 되어 있다가 종료 된 경우임....
             // 클라이언트 연결 종료정보를 운영단말로 전송한다.
             CenterCommResponseService centerCommResponseService = (CenterCommResponseService) AppUtils.getBean(CenterCommResponseService.class);

+ 5 - 5
src/main/java/com/its/vds/xnettcp/vds/codec/VdsTcpClientDecoder.java

@@ -104,11 +104,11 @@ public class VdsTcpClientDecoder extends ByteToMessageDecoder {
                         byteBuf.discardReadBytes();
 
                         VdsResFramePacket frame = new VdsResFramePacket(obj, packets, msgSize);
-                        if (frame.getHead().getOpCode() == VdsProtocol.vds_Image) {
-                            log.info("[{}]. RECV: OneFramePacket: {} Bytes, vds_Image, stuffing {}", obj.getVDS_CTLR_ID(), frame.getByteBuffer().array().length, stuffing);
-                        } else {
-                            log.info("[{}]. RECV: OneFramePacket: {} Bytes, stuffing {} {}", obj.getVDS_CTLR_ID(), frame.getByteBuffer().array().length, stuffing, SysUtils.byteArrayToHex(frame.getByteBuffer().array()));
-                        }
+//                        if (frame.getHead().getOpCode() == VdsProtocol.vds_Image) {
+//                            log.info("[{}]. RECV: OneFramePacket: {} Bytes, vds_Image, stuffing {}", obj.getVDS_CTLR_ID(), frame.getByteBuffer().array().length, stuffing);
+//                        } else {
+//                            log.info("[{}]. RECV: OneFramePacket: {} Bytes, stuffing {} {}", obj.getVDS_CTLR_ID(), frame.getByteBuffer().array().length, stuffing, SysUtils.byteArrayToHex(frame.getByteBuffer().array()));
+//                        }
 
                         list.add(frame);
                         break;

+ 1 - 1
src/main/java/com/its/vds/xnettcp/vds/process/Job_Data.java

@@ -2,7 +2,7 @@ package com.its.vds.xnettcp.vds.process;
 
 import com.its.app.AppUtils;
 import com.its.app.utils.SysUtils;
-import com.its.vds.UI.MainUI;
+import com.its.vds.ui.MainUI;
 import com.its.vds.entity.TbVdsCtlr;
 import com.its.vds.entity.TbVdsDtct;
 import com.its.vds.entity.voVdsDtctClct;

+ 2 - 2
src/main/java/com/its/vds/xnettcp/vds/process/Job_Temperature.java

@@ -2,7 +2,7 @@ package com.its.vds.xnettcp.vds.process;
 
 import com.its.app.AppUtils;
 import com.its.app.utils.SysUtils;
-import com.its.vds.UI.MainUI;
+import com.its.vds.ui.MainUI;
 import com.its.vds.domain.NET;
 import com.its.vds.entity.TbVdsCtlr;
 import com.its.vds.xnettcp.vds.protocol.VdsResFramePacket;
@@ -34,7 +34,7 @@ public class Job_Temperature implements JobProtocol {
 		int CBOX_TMPR = body[0];
 		int InputVoltage = (int)(body[1] & 0xFF);
 		int OutputVoltage = (int)(body[2] & 0xFF);
-		log.info("[{}]. Job_Temperature: 온도 {}, 입력전압 {}, 출력전압 {}", obj.getVDS_CTLR_ID(), CBOX_TMPR, InputVoltage, OutputVoltage);
+		log.info("[{}]. Job_Temperature: Temperature {}, Input Voltage {}, Output Voltage {}", obj.getVDS_CTLR_ID(), CBOX_TMPR, InputVoltage, OutputVoltage);
 
 		obj.getStts().setCBOX_TMPR(CBOX_TMPR);
 		obj.getStts().setINPT_VOLT(InputVoltage);

+ 1 - 1
src/main/resources/logback-spring.xml

@@ -31,7 +31,7 @@
     <property name="LOG_PATTERN_SCHEDULE"    value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %msg%n"/>
     <property name="LOG_PATTERN_STATISTICS"  value="[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] %msg%n"/>
 <!--    <property name="LOG_PATTERN_CONSOLE"     value="[%d{HH:mm:ss.SSS}] %highlight([%5level]) %highlight(${PID:-}): %cyan(%msg) %n"/>-->
-    <property name="LOG_PATTERN_CONSOLE"     value="[%d{HH:mm:ss.SSS}] [%5level] ${PID:-}: %msg%n"/>
+    <property name="LOG_PATTERN_CONSOLE"     value="[%d{HH:mm:ss.SSS}] [%5level] %msg%n"/>
 
     <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
         <withJansi>true</withJansi>

+ 7 - 3
start.bat

@@ -1,4 +1,8 @@
-echo off
+@echo off
 chcp 65001
-javaw -jar -Dspring.profiles.active=dev vds-comm-server-0.0.1.jar
-exit
+rem start "" "C:\Program Files\Java\jdk1.8.0_25\bin\javaw" -server -jar -Dspring.profiles.active=dev vds-comm-server-0.0.1.jar  /popup
+"C:\Program Files\Java\jdk1.8.0_25\bin\javaw" -jar -Dspring.profiles.active=dev vds-comm-server-0.0.1.jar 
+rem exit
+
+rem start "" "C:\BgInfo\BgInfo.exe" /popup
+rem "C:\Program Files\Java\jdk1.8.0_25\bin\java" -server -jar -Dspring.profiles.active=dev vds-comm-server-0.0.1.jar

BIN
vds-comm-server-0.0.1.jar


BIN
vds-comm-server.exe


+ 15 - 3
vds-comm-server.txt.jsmooth

@@ -6,7 +6,7 @@
 <JVMSearchPath>jdkpath</JVMSearchPath>
 <JVMSearchPath>exepath</JVMSearchPath>
 <JVMSearchPath>jview</JVMSearchPath>
-<arguments></arguments>
+<arguments>-Dspring.profiles.active=dev</arguments>
 <currentDirectory>${EXECUTABLEPATH}</currentDirectory>
 <embeddedJar>true</embeddedJar>
 <executableName>vds-comm-server.exe</executableName>
@@ -17,13 +17,25 @@
 <maximumMemoryHeap>-1</maximumMemoryHeap>
 <maximumVersion></maximumVersion>
 <minimumVersion>1.8.0</minimumVersion>
-<skeletonName>Console Wrapper</skeletonName>
+<skeletonName>Windowed Wrapper</skeletonName>
 <skeletonProperties>
 <key>Message</key>
 <value>Java has not been found on your computer. Do you want to download it?</value>
 </skeletonProperties>
 <skeletonProperties>
-<key>PressKey</key>
+<key>URL</key>
+<value></value>
+</skeletonProperties>
+<skeletonProperties>
+<key>SingleProcess</key>
+<value>0</value>
+</skeletonProperties>
+<skeletonProperties>
+<key>SingleInstance</key>
+<value>0</value>
+</skeletonProperties>
+<skeletonProperties>
+<key>JniSmooth</key>
 <value>0</value>
 </skeletonProperties>
 <skeletonProperties>