HANTE 7 сар өмнө
parent
commit
e1d08c45f5

+ 1 - 0
.gitignore

@@ -7,6 +7,7 @@ target/
 ### DUMMY ###
 *.lib
 *.exe
+*.err
 *.dll
 *.zip
 *.bak

BIN
GMUTIS_DS_IFS_COM_V1.0-인터페이스정의서(수정).hwp


BIN
PHITS-CS-IFD-004 VMS 인터페이스설계서_Ver1.0.hwp


BIN
PHITS-CS-IFD-004 인터페이스설계서_Ver1.0.hwp


BIN
PHUTIS_DS_IFS_COM_Rev1.0.hwp


+ 1 - 1
RUN/Cfg/VMSCommServer.ini

@@ -54,7 +54,7 @@ TRAFFIC_CENTER =1
 3= ü
 
 [LOG]
-LOGDAY  =18
+LOGDAY  =20
 LOGLINE =1000
 INFO    =1
 DATA    =0

+ 3 - 0
RUN/Cfg/VideoVMS.inf

@@ -0,0 +1,3 @@
+;Video Support VMS
+10014
+10015

+ 392 - 477
RUN/Log/VMSCommServer_20.err

@@ -1,477 +1,392 @@
-[00:00:20] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[00:00:20] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[00:00:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[00:00:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[00:00:21] [ERROR] +SVR 10002, RECV: vms_display_module_status, 65 Bytes, [DLE Stuffing]
-[00:05:20] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[00:05:20] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[00:05:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[00:05:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[00:05:21] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[00:05:21] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10466]
-[00:10:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[00:10:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[00:10:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[00:10:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[00:15:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[00:15:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[00:15:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[00:15:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[00:15:21] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[00:15:21] [ERROR] +SVR 10015, RECV: 32 Bytes
-[00:20:20] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[00:20:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[00:20:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[00:20:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[00:20:21] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[00:20:21] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10466]
-[00:20:21] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10466]
-[00:20:21] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10466]
-[00:20:21] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10466]
-[00:20:21] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10464]
-[00:20:21] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10466]
-[00:25:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[00:25:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[00:25:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[00:25:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[00:30:20] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[00:30:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[00:30:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[00:30:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[00:30:21] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[00:30:21] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10466]
-[00:35:20] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[00:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[00:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[00:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[00:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[00:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10466]
-[00:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10466]
-[00:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10466]
-[00:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10466]
-[00:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10464]
-[00:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10466]
-[00:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[00:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[00:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[00:45:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[00:45:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[00:45:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[00:45:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[00:45:21] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[00:45:21] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10466]
-[00:45:21] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10466]
-[00:45:21] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10466]
-[00:45:21] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10466]
-[00:45:21] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10464]
-[00:45:21] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10466]
-[00:50:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[00:50:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[00:50:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[00:50:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[00:50:21] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[00:50:21] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10466]
-[00:50:21] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10466]
-[00:50:21] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10466]
-[00:50:21] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10466]
-[00:50:21] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10464]
-[00:50:21] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10466]
-[00:55:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[00:55:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[00:55:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[00:55:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[00:55:21] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[00:55:21] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10466]
-[00:55:21] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10466]
-[00:55:21] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10466]
-[00:55:21] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10466]
-[00:55:21] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10464]
-[00:55:21] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10466]
-[01:00:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[01:00:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[01:00:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[01:00:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[01:00:21] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[01:00:21] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10466]
-[01:00:21] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10466]
-[01:00:21] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10466]
-[01:00:21] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10466]
-[01:00:21] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10464]
-[01:00:21] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10466]
-[01:05:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[01:05:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[01:05:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[01:05:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[01:05:21] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[01:05:21] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10466]
-[01:05:21] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10466]
-[01:05:21] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10466]
-[01:05:21] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10466]
-[01:05:21] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10464]
-[01:05:21] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10466]
-[01:10:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[01:10:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[01:10:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[01:25:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[01:25:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[01:25:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[01:25:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[01:25:21] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[01:25:21] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10466]
-[01:25:21] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10466]
-[01:25:21] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10466]
-[01:25:21] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10466]
-[01:25:21] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10464]
-[01:25:21] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10466]
-[01:30:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[01:30:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[01:30:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[01:30:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[01:30:21] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[01:30:21] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10466]
-[01:30:21] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10466]
-[01:30:21] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10466]
-[01:30:21] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10466]
-[01:30:21] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10464]
-[01:30:21] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10466]
-[01:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[01:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[01:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[01:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[01:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[01:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10466]
-[01:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10466]
-[01:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10466]
-[01:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10466]
-[01:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10464]
-[01:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10466]
-[01:50:31] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[01:50:31] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[01:50:31] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[01:50:31] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[01:50:31] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[01:50:31] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10466]
-[01:50:31] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10466]
-[01:50:31] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10466]
-[01:50:31] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10466]
-[01:50:31] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10464]
-[01:50:31] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10466]
-[01:55:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[01:55:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[01:55:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[01:55:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[01:55:21] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[02:05:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[02:05:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[02:05:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[02:05:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[02:10:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[02:10:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[02:10:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[02:10:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[02:10:21] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[02:10:21] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10466]
-[02:10:21] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10466]
-[02:10:21] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10466]
-[02:10:21] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10466]
-[02:10:21] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10464]
-[02:10:21] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10466]
-[02:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[02:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[02:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[02:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[02:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[02:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10466]
-[02:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10466]
-[02:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10466]
-[02:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10466]
-[02:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10464]
-[02:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10466]
-[02:50:22] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[02:50:22] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[02:50:23] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[02:50:23] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[02:50:23] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[02:50:23] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10466]
-[02:50:23] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10466]
-[02:50:23] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10466]
-[02:50:23] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10466]
-[02:50:23] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10464]
-[02:50:23] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10466]
-[02:55:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[02:55:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[02:55:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[02:55:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[02:55:21] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[02:55:21] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10466]
-[02:55:21] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10466]
-[02:55:21] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10466]
-[02:55:21] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10466]
-[02:55:21] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10464]
-[02:55:21] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10466]
-[02:58:19] [ERROR] +SVR Socket Select Client Event Error: 10053.An established connection was aborted by the software in your host machine
-[02:58:19] [ERROR] 192.168.1.220.1588, VMS 0000010014 disconnected.
-[02:58:40] [ERROR] +SVR Socket Select Client Event Error: 10053.An established connection was aborted by the software in your host machine
-[02:58:40] [ERROR] 192.168.1.220.1944, VMS 0000010014 disconnected.
-[03:00:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[03:00:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[03:00:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[03:00:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[03:00:21] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[03:00:21] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10466]
-[03:00:21] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10466]
-[03:00:21] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10466]
-[03:00:21] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10466]
-[03:00:21] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10464]
-[03:00:21] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10466]
-[03:00:42] [ERROR] +SVR Socket Select Client Event Error: 10053.An established connection was aborted by the software in your host machine
-[03:00:42] [ERROR] 192.168.1.201.1888, VMS 0000010006 disconnected.
-[03:02:02] [ERROR] +SVR Socket Select Client Event Error: 10053.An established connection was aborted by the software in your host machine
-[03:02:03] [ERROR] 172.16.120.31.1948, VMS 0000010012 disconnected.
-[03:02:09] [ERROR] +SVR Socket Select Client Event Error: 10053.An established connection was aborted by the software in your host machine
-[03:02:09] [ERROR] 192.168.22.50.1040, VMS 0000010015 disconnected.
-[03:02:26] [ERROR] +SVR Socket Select Client Event Error: 10053.An established connection was aborted by the software in your host machine
-[03:02:26] [ERROR] 172.16.120.31.1552, VMS 0000010012 disconnected.
-[03:10:23] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[03:10:23] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[03:10:23] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[03:10:23] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[03:10:23] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[03:10:23] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10466]
-[03:10:23] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10466]
-[03:10:23] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10466]
-[03:10:23] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10466]
-[03:10:23] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10464]
-[03:10:23] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10466]
-[03:20:23] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[03:20:23] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[03:20:23] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[03:20:23] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[03:20:23] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[03:20:23] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10466]
-[03:20:23] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10466]
-[03:20:23] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10466]
-[03:20:23] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10466]
-[03:20:23] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10464]
-[03:20:23] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10466]
-[03:28:10] [ERROR] +SVR Socket Select Client Event Error: 10053.An established connection was aborted by the software in your host machine
-[03:28:10] [ERROR] 172.16.120.25.1300, VMS 0000010008 disconnected.
-[03:28:10] [ERROR] +SVR Socket Select Client Event Error: 10053.An established connection was aborted by the software in your host machine
-[03:28:10] [ERROR] 192.168.22.50.2016, VMS 0000010015 disconnected.
-[03:28:11] [ERROR] +SVR Socket Select Client Event Error: 10053.An established connection was aborted by the software in your host machine
-[03:28:11] [ERROR] 172.16.120.23.1088, VMS 0000010007 disconnected.
-[03:28:11] [ERROR] +SVR Socket Select Client Event Error: 10053.An established connection was aborted by the software in your host machine
-[03:28:11] [ERROR] 172.16.120.31.1340, VMS 0000010012 disconnected.
-[03:28:11] [ERROR] +SVR Socket Select Client Event Error: 10053.An established connection was aborted by the software in your host machine
-[03:28:11] [ERROR] +SVR Socket Select Client Event Error: 10053.An established connection was aborted by the software in your host machine
-[03:28:11] [ERROR] 192.168.1.220.1272, VMS 0000010014 disconnected.
-[03:28:11] [ERROR] 192.168.1.201.1828, VMS 0000010006 disconnected.
-[03:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[03:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[03:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[03:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[03:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[03:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10466]
-[03:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10466]
-[03:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10466]
-[04:04:23] [ERROR] +SVR Socket Select Client Event Error: 10053.An established connection was aborted by the software in your host machine
-[04:04:23] [ERROR] 172.16.120.23.1376, VMS 0000010007 disconnected.
-[04:04:44] [ERROR] +SVR Socket Select Client Event Error: 10053.An established connection was aborted by the software in your host machine
-[04:04:44] [ERROR] 172.16.120.23.1028, VMS 0000010007 disconnected.
-[04:05:48] [ERROR] +SVR Session  SendFlush: 172.16.120.23[1588], already closed
-[04:05:48] [ERROR] 172.16.120.23.1588, disconnected.
-[04:05:48] [ERROR] 172.16.120.23.1588, disconnected.
-[04:05:51] [ERROR] +SVR Session  SendFlush: 172.16.120.23[1588], already closed
-[04:05:51] [ERROR] 172.16.120.23.1588, disconnected.
-[04:05:51] [ERROR] 172.16.120.23.1588, disconnected.
-[04:10:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[04:10:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[04:10:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[04:20:23] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[04:20:23] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[04:20:23] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[04:20:23] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[04:20:23] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[04:20:23] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10466]
-[04:20:23] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10466]
-[04:20:23] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10466]
-[04:20:23] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10466]
-[04:20:23] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10464]
-[04:20:23] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10466]
-[04:25:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[04:25:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[04:40:23] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[04:40:23] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[04:40:23] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[04:40:23] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[04:40:23] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[04:40:23] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10466]
-[04:40:23] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10466]
-[04:40:23] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10466]
-[04:40:23] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10466]
-[04:40:23] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10464]
-[04:40:23] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10466]
-[04:45:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[04:45:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[04:45:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[04:45:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[04:45:21] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[06:45:23] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[06:45:23] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[06:45:23] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[06:45:23] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[06:45:23] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[06:45:23] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10466]
-[06:45:23] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10466]
-[06:45:23] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10466]
-[06:45:23] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10466]
-[06:45:23] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10464]
-[06:45:23] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10466]
-[16:06:54] [ERROR] MAIN Program terminated start
-[16:06:55] [ERROR] MAIN Program terminated end
-[21:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[21:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[21:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[21:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[21:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[21:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[21:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[21:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10466]
-[21:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10466]
-[21:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10466]
-[21:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10466]
-[21:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10464]
-[21:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10466]
-[21:45:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[21:45:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[21:45:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[21:45:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[21:45:21] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[21:45:21] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10466]
-[21:45:21] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10466]
-[21:45:21] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10466]
-[21:45:21] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10466]
-[21:45:21] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10464]
-[21:45:21] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10466]
-[22:20:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[22:20:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[22:20:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[22:20:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[22:20:21] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[22:20:21] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10466]
-[22:20:21] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10466]
-[22:20:21] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10466]
-[22:20:21] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10466]
-[22:25:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[22:25:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[22:25:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[22:25:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[22:25:21] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[22:25:21] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10466]
-[22:25:21] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10466]
-[22:25:21] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10466]
-[22:25:21] [ERROR] +SVR 10004, RECV: vms_display_module_status, 65 Bytes, [DLE Stuffing]
-[22:30:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[22:30:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[22:30:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[22:30:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[22:30:21] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[22:30:21] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10466]
-[22:30:21] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10466]
-[22:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[22:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[22:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[22:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[22:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[22:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[22:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[22:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[22:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[22:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[22:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10466]
-[22:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10466]
-[22:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10466]
-[22:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10466]
-[22:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10464]
-[22:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10466]
-[22:45:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[22:45:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[22:50:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[22:50:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[22:50:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[22:50:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[22:50:21] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[22:55:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[22:55:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[22:55:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[22:55:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[22:55:21] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[22:55:21] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10466]
-[23:00:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[23:00:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[23:00:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[23:00:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[23:00:21] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[23:00:21] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10466]
-[23:00:21] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10466]
-[23:05:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[23:05:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[23:05:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[23:05:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[23:05:21] [ERROR] +SVR 10005, RECV: vms_display_module_status, 65 Bytes, [DLE Stuffing]
-[23:10:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[23:10:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[23:15:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[23:15:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[23:20:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[23:20:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[23:20:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[23:20:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[23:20:21] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[23:20:21] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10466]
-[23:20:21] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10466]
-[23:20:21] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10466]
-[23:20:21] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10466]
-[23:20:21] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10464]
-[23:20:21] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10466]
-[23:25:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[23:30:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[23:30:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[23:30:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[23:30:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[23:30:21] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[23:30:21] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10466]
-[23:30:21] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10466]
-[23:30:21] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10466]
-[23:30:21] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10466]
-[23:30:21] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10464]
-[23:30:21] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10466]
-[23:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[23:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[23:35:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[23:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[23:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[23:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[23:40:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[23:42:19] [ERROR] +SVR Socket Select Client Event Error: 10053.An established connection was aborted by the software in your host machine
-[23:42:19] [ERROR] 172.16.120.25.992, VMS 0000010008 disconnected.
-[23:45:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[23:45:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[23:45:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[23:45:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[23:45:21] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[23:45:21] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10466]
-[23:45:21] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10466]
-[23:50:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[23:50:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
-[23:50:21] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10466]
-[23:50:21] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10466]
-[23:50:21] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10466]
-[23:50:21] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10466]
-[23:50:21] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10466]
-[23:50:21] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10466]
-[23:50:21] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10466]
-[23:50:21] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10464]
-[23:50:21] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10466]
-[23:55:21] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10466]
-[23:55:21] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10466]
+[12:42:47] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10425]
+[12:42:47] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10426]
+[12:42:47] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10425]
+[12:42:47] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10426]
+[12:42:47] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10425]
+[12:42:47] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10426]
+[12:42:47] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10425]
+[12:42:47] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10426]
+[12:42:47] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10425]
+[12:42:47] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10426]
+[12:42:47] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10425]
+[12:42:47] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10426]
+[12:42:47] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10425]
+[12:42:47] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10426]
+[12:42:47] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10425]
+[12:42:47] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10426]
+[12:42:47] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10425]
+[12:42:47] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10426]
+[12:42:47] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10423]
+[12:42:47] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10424]
+[12:42:47] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10425]
+[12:42:47] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10426]
+[12:42:47] [ERROR] VMS PARKING Failed: VmsNmbr(10014)-[10427]
+[12:43:38] [ERROR] +SVR Socket Select Client Event Error: 10053.An established connection was aborted by the software in your host machine
+[12:43:38] [ERROR] 192.168.20.99.1580, VMS 0000010015 disconnected.
+[12:45:23] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10425]
+[12:45:23] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10426]
+[12:45:23] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10425]
+[12:45:23] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10426]
+[12:45:23] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10425]
+[12:45:23] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10426]
+[12:45:23] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10425]
+[12:45:23] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10426]
+[12:45:23] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10425]
+[12:45:23] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10426]
+[12:45:23] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10425]
+[12:45:23] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10426]
+[12:45:23] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10425]
+[12:45:23] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10426]
+[12:45:23] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10425]
+[12:45:23] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10426]
+[12:45:23] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10425]
+[12:45:23] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10426]
+[12:45:23] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10423]
+[12:45:23] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10424]
+[12:45:23] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10425]
+[12:45:23] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10426]
+[12:45:23] [ERROR] VMS PARKING Failed: VmsNmbr(10014)-[10427]
+[12:45:24] [ERROR] +SVR Socket Select Client Event Error: 10053.An established connection was aborted by the software in your host machine
+[12:45:24] [ERROR] 192.168.20.99.1580, VMS 0000010015 disconnected.
+[12:47:09] [ERROR] MAIN Program terminated start
+[12:47:16] [ERROR] MAIN Program terminated end
+[12:52:42] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10425]
+[12:52:42] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10426]
+[12:52:42] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10425]
+[12:52:42] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10426]
+[12:52:42] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10425]
+[12:52:42] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10426]
+[12:52:42] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10425]
+[12:52:42] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10426]
+[12:52:42] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10425]
+[12:52:42] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10426]
+[12:52:42] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10425]
+[12:52:42] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10426]
+[12:52:42] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10425]
+[12:52:42] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10426]
+[12:52:42] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10425]
+[12:52:42] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10426]
+[12:52:42] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10425]
+[12:52:42] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10426]
+[12:52:42] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10423]
+[12:52:42] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10424]
+[12:52:42] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10425]
+[12:52:42] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10426]
+[12:52:42] [ERROR] VMS PARKING Failed: VmsNmbr(10014)-[10427]
+[12:55:04] DB Error Occured. FILE: CDSProcessF.cpp LINE: 177 FUNC: TCDSProcessManager::SaveUnitStts
+Title: TCDSProcessManager::SaveUnitStts
+Class: EOleException
+Error: 
+
+TBR-10007 (23000): UNIQUE constraint violation ('PHUTIS'.'IX_UNIT_SYST_STTS_HS_PK')
+SQL  :
+INSERT INTO TB_UNIT_SYST_STTS_HS(CRTN_DT, SYST_ID, SYST_STTS_CD) 

+   VALUES(:p03, :p01, :p02)      

+
+
+[12:55:04] [ERROR] DCOM TCDSProcessManager::SaveUnitStts
+
+TBR-10007 (23000): UNIQUE constraint violation ('PHUTIS'.'IX_UNIT_SYST_STTS_HS_PK')
+[12:55:04] [ERROR] Database job error: 3
+[12:55:15] [ERROR] MAIN Program terminated start
+[12:55:23] [ERROR] MAIN Program terminated end
+[13:48:27] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10425]
+[13:48:27] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10426]
+[13:48:27] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10425]
+[13:48:27] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10426]
+[13:48:27] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10425]
+[13:48:27] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10426]
+[13:48:27] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10425]
+[13:48:27] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10426]
+[13:48:27] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10425]
+[13:48:27] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10426]
+[13:48:27] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10425]
+[13:48:27] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10426]
+[13:48:27] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10425]
+[13:48:27] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10426]
+[13:48:27] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10425]
+[13:48:27] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10426]
+[13:48:27] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10425]
+[13:48:27] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10426]
+[13:48:58] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10425]
+[13:48:58] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10426]
+[13:48:58] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10425]
+[13:48:58] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10426]
+[13:48:58] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10425]
+[13:48:58] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10426]
+[13:48:58] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10425]
+[13:48:58] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10426]
+[13:48:58] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10425]
+[13:48:58] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10426]
+[13:48:58] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10425]
+[13:48:58] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10426]
+[13:48:58] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10425]
+[13:48:58] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10426]
+[13:48:58] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10425]
+[13:48:58] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10426]
+[13:48:58] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10425]
+[13:48:58] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10426]
+[13:48:58] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10423]
+[13:48:58] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10424]
+[13:48:58] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10425]
+[13:48:58] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10426]
+[13:48:58] [ERROR] VMS PARKING Failed: VmsNmbr(10014)-[10427]
+[13:48:58] [ERROR] +SVR Socket Select Client Event Error: 10053.An established connection was aborted by the software in your host machine
+[13:48:58] [ERROR] 192.168.20.99.1564, VMS 0000010015 disconnected.
+[13:51:41] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10425]
+[13:51:41] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10426]
+[13:51:41] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10425]
+[13:51:41] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10426]
+[13:51:41] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10425]
+[13:51:41] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10426]
+[13:51:41] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10425]
+[13:51:41] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10426]
+[13:51:41] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10425]
+[13:51:41] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10426]
+[13:51:41] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10425]
+[13:51:41] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10426]
+[13:51:41] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10425]
+[13:51:41] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10426]
+[13:51:41] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10425]
+[13:51:41] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10426]
+[13:51:41] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10425]
+[13:51:41] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10426]
+[13:51:41] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10423]
+[13:51:41] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10424]
+[13:51:41] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10425]
+[13:51:41] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10426]
+[13:51:41] [ERROR] VMS PARKING Failed: VmsNmbr(10014)-[10427]
+[13:53:49] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10425]
+[13:53:49] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10426]
+[13:53:49] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10425]
+[13:53:49] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10426]
+[13:53:49] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10425]
+[13:53:49] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10426]
+[13:53:49] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10425]
+[13:53:49] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10426]
+[13:53:49] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10425]
+[13:53:49] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10426]
+[13:53:49] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10425]
+[13:53:49] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10426]
+[13:53:49] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10425]
+[13:53:49] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10426]
+[13:53:49] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10425]
+[13:53:49] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10426]
+[13:53:49] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10425]
+[13:53:49] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10426]
+[13:53:49] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10423]
+[13:53:49] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10424]
+[13:53:49] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10425]
+[13:53:49] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10426]
+[13:53:49] [ERROR] VMS PARKING Failed: VmsNmbr(10014)-[10427]
+[14:06:44] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10425]
+[14:06:44] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10426]
+[14:35:31] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10425]
+[14:35:31] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10426]
+[14:35:31] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10425]
+[14:35:31] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10426]
+[14:35:31] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10425]
+[14:35:31] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10426]
+[14:35:31] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10425]
+[14:35:31] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10426]
+[14:35:31] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10425]
+[14:35:31] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10426]
+[14:35:31] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10425]
+[14:35:31] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10426]
+[14:35:31] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10425]
+[14:35:31] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10426]
+[14:35:31] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10425]
+[14:35:31] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10426]
+[14:35:31] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10425]
+[14:35:31] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10426]
+[14:35:31] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10423]
+[14:35:31] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10424]
+[14:35:31] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10425]
+[14:35:31] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10426]
+[14:35:31] [ERROR] VMS PARKING Failed: VmsNmbr(10014)-[10427]
+[14:35:34] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10425]
+[14:35:34] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10426]
+[14:35:35] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10425]
+[14:35:35] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10426]
+[14:35:35] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10425]
+[14:35:35] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10426]
+[14:35:35] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10425]
+[14:35:35] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10426]
+[14:35:35] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10425]
+[14:35:35] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10426]
+[14:35:35] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10425]
+[14:35:35] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10426]
+[14:35:35] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10425]
+[14:35:35] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10426]
+[14:35:35] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10425]
+[14:35:35] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10426]
+[14:35:35] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10425]
+[14:35:35] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10426]
+[14:35:35] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10423]
+[14:35:35] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10424]
+[14:35:35] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10425]
+[14:35:35] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10426]
+[14:35:35] [ERROR] VMS PARKING Failed: VmsNmbr(10014)-[10427]
+[14:40:23] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10425]
+[14:40:23] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10426]
+[14:40:23] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10425]
+[14:40:23] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10426]
+[14:40:23] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10425]
+[14:40:23] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10426]
+[14:40:23] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10425]
+[14:40:23] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10426]
+[14:40:23] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10425]
+[14:40:23] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10426]
+[14:40:23] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10425]
+[14:40:23] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10426]
+[14:40:23] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10425]
+[14:40:23] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10426]
+[14:40:23] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10425]
+[14:40:23] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10426]
+[14:40:23] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10425]
+[14:40:23] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10426]
+[14:40:23] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10423]
+[14:40:23] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10424]
+[14:40:23] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10425]
+[14:40:23] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10426]
+[14:40:23] [ERROR] VMS PARKING Failed: VmsNmbr(10014)-[10427]
+[14:42:41] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10425]
+[14:42:41] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10426]
+[14:42:41] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10425]
+[14:42:41] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10426]
+[14:42:41] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10425]
+[14:42:41] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10426]
+[14:42:41] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10425]
+[14:42:41] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10426]
+[14:42:41] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10425]
+[14:42:41] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10426]
+[14:42:41] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10425]
+[14:42:41] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10426]
+[14:42:41] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10425]
+[14:42:41] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10426]
+[14:42:41] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10425]
+[14:42:41] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10426]
+[14:42:41] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10425]
+[14:42:41] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10426]
+[14:42:41] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10423]
+[14:42:41] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10424]
+[14:42:41] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10425]
+[14:42:41] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10426]
+[14:42:41] [ERROR] VMS PARKING Failed: VmsNmbr(10014)-[10427]
+[14:44:24] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10425]
+[14:44:24] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10426]
+[14:44:24] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10425]
+[14:44:24] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10426]
+[14:44:24] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10425]
+[14:44:24] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10426]
+[14:44:24] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10425]
+[14:44:24] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10426]
+[14:44:24] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10425]
+[14:44:24] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10426]
+[14:44:24] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10425]
+[14:44:24] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10426]
+[14:44:24] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10425]
+[14:44:24] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10426]
+[14:44:24] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10425]
+[14:44:24] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10426]
+[14:44:24] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10425]
+[14:44:24] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10426]
+[14:44:24] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10423]
+[14:44:24] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10424]
+[14:44:24] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10425]
+[14:44:24] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10426]
+[14:44:24] [ERROR] VMS PARKING Failed: VmsNmbr(10014)-[10427]
+[14:48:12] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10425]
+[14:48:12] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10426]
+[14:48:12] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10425]
+[14:48:12] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10426]
+[14:48:12] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10425]
+[14:48:12] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10426]
+[14:48:12] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10425]
+[14:48:12] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10426]
+[14:48:12] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10425]
+[14:48:12] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10426]
+[14:48:12] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10425]
+[14:48:12] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10426]
+[14:48:12] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10425]
+[14:48:12] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10426]
+[14:48:12] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10425]
+[14:48:12] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10426]
+[14:48:12] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10425]
+[14:48:12] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10426]
+[14:48:12] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10423]
+[14:48:12] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10424]
+[14:48:12] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10425]
+[14:48:12] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10426]
+[14:48:12] [ERROR] VMS PARKING Failed: VmsNmbr(10014)-[10427]
+[14:49:03] [ERROR] +SVR Socket Select Client Event Error: 10053.An established connection was aborted by the software in your host machine
+[14:49:03] [ERROR] 192.168.20.99.1528, VMS 0000010015 disconnected.
+[14:50:23] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10425]
+[14:50:23] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10426]
+[14:50:23] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10425]
+[14:50:23] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10426]
+[14:50:23] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10425]
+[14:50:23] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10426]
+[14:50:23] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10425]
+[14:50:23] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10426]
+[14:50:23] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10425]
+[14:50:23] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10426]
+[14:50:23] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10425]
+[14:50:23] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10426]
+[14:50:23] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10425]
+[14:50:23] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10426]
+[14:50:23] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10425]
+[14:50:23] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10426]
+[14:50:23] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10425]
+[14:50:23] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10426]
+[14:50:23] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10423]
+[14:50:23] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10424]
+[14:50:23] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10425]
+[14:50:23] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10426]
+[14:50:23] [ERROR] VMS PARKING Failed: VmsNmbr(10014)-[10427]
+[14:51:18] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10425]
+[14:51:18] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10426]
+[14:51:18] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10425]
+[14:51:18] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10426]
+[14:51:18] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10425]
+[14:51:18] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10426]
+[14:51:18] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10425]
+[14:51:18] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10426]
+[14:51:18] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10425]
+[14:51:18] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10426]
+[14:51:18] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10425]
+[14:51:18] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10426]
+[14:51:18] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10425]
+[14:51:18] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10426]
+[14:51:19] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10425]
+[14:51:19] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10426]
+[14:51:19] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10425]
+[14:51:19] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10426]
+[14:51:19] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10423]
+[14:51:19] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10424]
+[14:51:19] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10425]
+[14:51:19] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10426]
+[14:51:19] [ERROR] VMS PARKING Failed: VmsNmbr(10014)-[10427]
+[14:55:23] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10425]
+[14:55:23] [ERROR] VMS PARKING Failed: VmsNmbr(10001)-[10426]
+[14:55:23] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10425]
+[14:55:23] [ERROR] VMS PARKING Failed: VmsNmbr(10002)-[10426]
+[14:55:23] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10425]
+[14:55:23] [ERROR] VMS PARKING Failed: VmsNmbr(10003)-[10426]
+[14:55:23] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10425]
+[14:55:23] [ERROR] VMS PARKING Failed: VmsNmbr(10004)-[10426]
+[14:55:23] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10425]
+[14:55:23] [ERROR] VMS PARKING Failed: VmsNmbr(10005)-[10426]
+[14:55:23] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10425]
+[14:55:23] [ERROR] VMS PARKING Failed: VmsNmbr(10006)-[10426]
+[14:55:23] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10425]
+[14:55:23] [ERROR] VMS PARKING Failed: VmsNmbr(10007)-[10426]
+[14:55:23] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10425]
+[14:55:23] [ERROR] VMS PARKING Failed: VmsNmbr(10008)-[10426]
+[14:55:23] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10425]
+[14:55:23] [ERROR] VMS PARKING Failed: VmsNmbr(10009)-[10426]
+[14:55:23] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10423]
+[14:55:23] [ERROR] VMS PARKING Failed: VmsNmbr(10012)-[10424]
+[14:55:23] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10425]
+[14:55:23] [ERROR] VMS PARKING Failed: VmsNmbr(10013)-[10426]
+[14:55:23] [ERROR] VMS PARKING Failed: VmsNmbr(10014)-[10427]

+ 36 - 2
SRC/FrmMainF.cpp

@@ -324,6 +324,10 @@ bool __fastcall TVmsCommMain::InitApplication()
             }
         }
 
+        // 제어기 정보를 로딩한 후 바로 부가 정보를 로딩해서 설정해 놓는다.
+        LoadStuffingVms();
+        LoadVideoVms();
+
         if (CDSFontManager)
         {
             MINFO("MAIN VMS Font Information initialize...");
@@ -406,8 +410,6 @@ bool __fastcall TVmsCommMain::InitApplication()
         SAFE_DELETE(FDb);
     }
 
-    LoadStuffingVms();
-
     ClientSessionManager->Init(CDSCtlrManager->FLists.Size()*2);
     FrmControllerInfo->UpdateCtlrList();
 
@@ -515,6 +517,38 @@ void __fastcall TVmsCommMain::LoadStuffingVms()
 }
 //---------------------------------------------------------------------------
 
+void __fastcall TVmsCommMain::LoadVideoVms()
+{
+    TStringList *slFile = NULL;
+
+    String sCfgFile = g_sCfgDir + "VideoVMS.inf";
+    try
+    {
+        slFile = new TStringList;
+
+        slFile->Clear();
+        slFile->LoadFromFile(sCfgFile);
+
+        for (int ii = 0; ii < slFile->Count; ii++)
+        {
+            AnsiString CTLR_NMBR = slFile->Strings[ii].Trim();
+            if (CTLR_NMBR == "") continue;
+            if (CTLR_NMBR == "\r\n") continue;
+
+            TCDSCtlr* pObj = CDSCtlrManager->FLists.Find(CTLR_NMBR);
+            if (pObj)
+            {
+                pObj->IsVideo = true;
+            }
+        }
+    }
+    catch(Exception &e)
+    {
+    }
+    delete slFile;
+}
+//---------------------------------------------------------------------------
+
 void __fastcall TVmsCommMain::tmrAppStateTimer(TObject *Sender)
 {
     tmrAppState->Enabled = false;

+ 1 - 0
SRC/FrmMainF.h

@@ -119,6 +119,7 @@ private:	// User declarations
 
 	bool __fastcall InitApplication();
     void __fastcall LoadStuffingVms();
+    void __fastcall LoadVideoVms();
 	void __fastcall CommClose();
 
     void __fastcall AbnormalTerminate(char* AMsg);

+ 23 - 1
SRC/LIB/CDSCtlrF.h

@@ -284,6 +284,24 @@ public:
 public:
 };
 //---------------------------------------------------------------------------
+class TFtpFile
+{
+public:
+    TFtpFile()
+    {
+        IsFtpOk = false;
+    }
+    ~TFtpFile()
+    {
+    }
+
+public:
+    AnsiString  FtpFileName;
+    AnsiString  LocalFileName;
+    bool        IsFtpOk;
+    TDateTime   UpdateTm;
+};
+//---------------------------------------------------------------------------
 
 class TCDSCtlr
 {
@@ -348,11 +366,13 @@ public:
     AnsiString  ParamResTime;
 
     int         PROTOCOL_VER;       // 구미시 텍스트, 도형식 프로토콜 구분을 위해 추가
-    bool        IsDle;
+    bool        IsDle;              // DLE Stuffing protocol support
+    bool        IsVideo;            // Video Support VMS
 
     AnsiString          DownloadFormId;
     VMS_DOWNLOAD_DATA   FormDownload;
     TItsMap<AnsiString, TDownloadForm*> FDownloadLists;
+    TItsMap<AnsiString, TFtpFile*>      FFtpFileLists;
 
     //////////////////////////////
     struct
@@ -435,6 +455,8 @@ public:
     void InitSafe();
 
     void InitDownloadFileInfo();
+    void InitFtpFileInfo();
+    bool RemainFtpFile();
 };
 //---------------------------------------------------------------------------
 

+ 1 - 0
SRC/LIB/ClientSessionF.h

@@ -139,6 +139,7 @@ public:
     int ReqStatusControl(char *ACmd, int ALen);
     int ReqSendPacket(char *ACmd, int ALen);
 
+    int download_ftp_file();
     int download_form_schedule(bool ASchedule=true);
     int download_form_schedule_complete();
     int download_default_form_0x9A();

+ 67 - 32
SRC/LIB/PacketHandllingF.h

@@ -144,13 +144,13 @@ typedef enum _e_vms_protocol
     // 사용하지 않음
     e_vms_display_form_id           = 0xA0, //    Display Form ID                         송신    Form ID에 해당하는 Form 표출                센터 → VMS
                                             //                                            수신    수신 여부 응답( ACK/NAK )                   센터 ← VMS
+    // TODO: 202411219
+    e_vms_video_ftp_download_req    = 0xA1, //    동영상 파일 FTP 다운로드 요청                                                               센터 → VMS
+    e_vms_video_ftp_download_completed    = 0xA2, //    동영상 파일 FTP 다운로드 완료                                                               센터 ← VMS
+
     e_vms_MAX                       = 0xFF+1,
 } E_VMS_PROTOCOL;
 
-#if 0
-0xA1 : 동영상 파일 FTP 다운로드
-0xA2 : 동영상 파일 FTP 다운로드 완료
-#endif
 
 
 /*
@@ -201,18 +201,6 @@ typedef struct _vms_head
     DWORD   Length;
 } VMS_HEAD;
 
-typedef struct _vms_data
-{
-    _vms_data()
-    {
-        Curr   = 1;
-        Total  = 1;
-        Length = 0;
-    }
-    BYTE    Curr;
-    BYTE    Total;
-    DWORD   Length;
-} VMS_DATA;
 
 typedef struct _vms_tail
 {
@@ -333,13 +321,13 @@ typedef struct _vms_parameter
     BYTE    HeaterRunMode;  // Heater의 동작모드            1 Byte  0x00 : 꺼짐, 0x01 : 켜짐, 0x02 : 자동, 0x09: Unknown
     BYTE    HeaterRunTemp;  // Heater 의 동작개시온도       1 Byte  온도(0x00 ~ 0x3f )
     BYTE    BrightMode;     // 밝기 모드                    2 Byte  0x0 : 수동, 0x1 : 자동, 비율 : 0-100
-    BYTE    BrightRate;     // 밝기 모드                    2 Byte  0x0 : 수동, 0x1 : 자동, 비율 : 0-100
+    BYTE    BrightRate;     // 현재 밝기 비율 : 0-100
     BYTE    BlinkTime;      // 깜빡이는 시간주기            1 Byte  문자 비트맵의 깜빡이는 시간주기 0x00 ~ 0x1e( 0.1 ~3.0 )
     WORD    ScnTurnTime;    // 디폴트 시나리오로 전환시간   2 Byte  디폴트 시나리오로 전환될 때까지 기다리는 시간, 단위 : 초
     BYTE    Reserved;       // 기타                         1 Byte
 
     //현재 로컬 제어기의 시간
-    BYTE    Year;           // 년       1 Byte  0x00 ~ 0x32
+    BYTE    Year;           // 년       1 Byte  0x00 ~ 0x32 (현재년도 - 2000)
     BYTE    Mon;            // 월       1 Byte  0x01 ~ 0x0c
     BYTE    Day;            // 일       1 Byte  0x01 ~ 0x1f
     BYTE    Hour;           // 시       1 Byte  0x00 ~ 0x17
@@ -443,7 +431,7 @@ typedef enum _e_obj_type
     e_obj_text     = 0x00,      //문자열        0x00
     e_obj_bitmap   = 0x01,      //Bitmap        0x01
     e_obj_bitmapid = 0x02,      //Bitmap ID     0x02
-    e_obj_avi      = 0x03,      //동영상        0x03      동영상 *.AVI (XVID)
+    e_obj_video    = 0x03,      //동영상        0x03      동영상 *.AVI (XVID)
     e_obj_stream   = 0x04,      //스트리밍 영상 0x04
 } e_obj_type;
 
@@ -512,6 +500,16 @@ typedef struct _vms_form_obj_head
 
 // ▷ 비트맵 데이터 (표출할 비트맵 데이터)
 // 표시하고자 하는 비트맵 데이터로서 파일형식은󰡒BMP"를 기준으로 하고 색상은 16Color를 기본으로 하며 16Color 이상도 사용할 수 있다.다.
+typedef struct _vms_obj_text
+{
+    BYTE COLOR[3];  // 사용 폰트 색상, Full-Color를 위해 3Byte로 변경함
+    BYTE SIZE;      // 사용 폰트 크기, (별표 참조)
+    BYTE TYPE;      // 사용 폰트 종류 Code, (별표 참조)
+    BYTE BOLD;      // 사용 폰트 굵기, (별표 참조)
+    BYTE ETC;       // 기타
+    char *DATA;     // 표출할 문자열, N Bytes
+} VMS_OBJ_TEXT;
+
 typedef struct _vms_obj_bitmap
 {
     WORD    WIDTH;          // 비트맵 표시 Width,  2 Byte, 0 ~ 1023 : 표출 비트맵 Width
@@ -528,13 +526,22 @@ typedef struct _vms_obj_bitmapid
     WORD    BITMAP_ID;      // 표출할 비트맵 ID,   2 Byte, 0~ 9999 : 표출할 비트맵 ID
 } VMS_OBJ_BITMAPID;
 
-typedef struct _vms_form_data
+typedef struct _vms_obj_video
 {
-    VMS_FORM_HEAD       head;
-    VMS_FORM_DATA_HEAD  data;
-    VMS_FORM_OBJ_HEAD   obj;
-    VMS_OBJ_BITMAP      bitmap;
-} VMS_FORM_DATA;
+    WORD    WIDTH;          // 동영상 표시 Width,  2 Byte, 0 ~ 1023 : 표출 비트맵 Width
+    WORD    HEIGHT;         // 동영상 표시 Heitht, 2 Byte, 0 ~ 1023 : 표출 비트맵 Width
+    BYTE    ETC;            // reserved: 0x00
+    BYTE    FILE_NM[50];    // 확장자가 포함된 파일이름(*.avi)
+} VMS_OBJ_VIDEO;
+
+typedef struct _vms_obj_stream
+{
+    WORD    WIDTH;          // 동영상 표시 Width,  2 Byte, 0 ~ 1023 : 표출 비트맵 Width
+    WORD    HEIGHT;         // 동영상 표시 Heitht, 2 Byte, 0 ~ 1023 : 표출 비트맵 Width
+    BYTE    ETC;            // reserved: 0x00
+    char    STREAM_ADDR[];
+} VMS_OBJ_STREAM;
+
 
 typedef struct _vms_schedule_form_info
 {
@@ -549,12 +556,21 @@ typedef struct _vms_schedule_form
 // 내부적으로 사용할 구조체
 typedef struct _vms_file_download
 {
+    //////////////////////////////////////////////////////////////////////
+    //// 프로토콜 적용을 위해서
+    BYTE    fileType;                   // 0x01 : 이미지 (JPG)
+                                        // 0x02 : 동영상 (AVI)
+                                        // 0x03 : URL(스트리밍)
+                                        // 0x04 : 소통 이미지
+                                        // 0x05 : 표출문구 이미지
+    //////////////////////////////////////////////////////////////////////
     AnsiString  VMS_FORM_ID;
     bool        IsDownload;
     int         FormIdx;
     int         BitmapId;
     WORD        FormNo;
     BYTE        DispSec;
+    AnsiString  STRM_ADDR;
 } VMS_FILE_DOWNLOAD;
 
 typedef struct _vms_download_data
@@ -565,6 +581,11 @@ typedef struct _vms_download_data
     VMS_FILE_DOWNLOAD   Info[MAX_VMS_SCENARIO_FORM];
 } VMS_DOWNLOAD_DATA;
 
+typedef struct _vms_file_ftp_data
+{
+    char FILE_NM[255];
+} VMS_FILE_FTP_DATA;
+
 /*
 *****************************************************************************
 *  Download Data 저장위치 상세코드
@@ -594,18 +615,32 @@ typedef struct _vms_file_data
     VMS_FILE_HEAD       head;
 } VMS_FILE_DATA;
 
-//VMS_FORM_HEAD       head;
-typedef struct _vms_form_id_info
+//===== Bitmap ID Object
+typedef struct _vms_form_bmpid_info
+{
+    VMS_FORM_DATA_HEAD  data;
+    VMS_FORM_OBJ_HEAD   obj;
+    VMS_OBJ_BITMAPID    bmpid;
+} VMS_FORM_BMPID_INFO;
+
+typedef struct _vms_form_bmpid_data
+{
+    VMS_FORM_BMPID_INFO     INFO[MAX_VMS_SCENARIO_FORM];
+} VMS_FORM_BMPID_DATA;
+
+//===== Video Object
+typedef struct _vms_form_video_info
 {
     VMS_FORM_DATA_HEAD  data;
     VMS_FORM_OBJ_HEAD   obj;
-    VMS_OBJ_BITMAPID    bid;
-} VMS_FORM_ID_INFO;
+    VMS_OBJ_VIDEO       video;
+} VMS_FORM_VIDEO_INFO;
 
-typedef struct _vms_form_id_data
+typedef struct _vms_form_video_data
 {
-    VMS_FORM_ID_INFO    INFO[MAX_VMS_SCENARIO_FORM];
-} VMS_FORM_ID_DATA;
+    VMS_FORM_VIDEO_INFO     INFO[MAX_VMS_SCENARIO_FORM];
+} VMS_FORM_VIDEO_DATA;
+
 
 #define MAX_TXT_FULL_RGB_BIT 9216
 typedef struct _vms_full_graphic_lib

+ 1 - 0
SRC/LIB/VMSCommLibF.h

@@ -346,6 +346,7 @@ typedef enum _e_tcp_msg
     eVmsStatusControl,
 
     eVmsFormDownload,
+    eVmsFtpFileDownload,
     eVmsScenarioDownload,
     eVmsScenarioContinue,
     eVmsDownloadSchedule,

+ 21 - 0
SRC/VMSCommLib/CDS/CDSCtlrF.cpp

@@ -87,6 +87,7 @@ TCDSCtlr::TCDSCtlr()
     Client.Init();
     dwConnectCnt = 0;
     IsDle = true;
+    IsVideo = false;
     //LOGIN_IPADDR = "";
 }
 //---------------------------------------------------------------------------
@@ -285,6 +286,26 @@ void TCDSCtlr::InitDownloadFileInfo()
 }
 //---------------------------------------------------------------------------
 
+void TCDSCtlr::InitFtpFileInfo()
+{
+    FOR_STL(TFtpFile*, pInfo, FFtpFileLists)
+    {
+        pInfo->IsFtpOk = false;
+    }
+}
+//---------------------------------------------------------------------------
+bool TCDSCtlr::RemainFtpFile()
+{
+    FOR_STL(TFtpFile*, pInfo, FFtpFileLists)
+    {
+        if (!pInfo->IsFtpOk) {
+            return true;
+        }
+    }
+    return false;
+}
+//---------------------------------------------------------------------------
+
 //---------------------------------------------------------------------------
 TCDSCtlrManager *CDSCtlrManager = NULL;
 //---------------------------------------------------------------------------

+ 23 - 1
SRC/VMSCommLib/CDS/CDSCtlrF.h

@@ -284,6 +284,24 @@ public:
 public:
 };
 //---------------------------------------------------------------------------
+class TFtpFile
+{
+public:
+    TFtpFile()
+    {
+        IsFtpOk = false;
+    }
+    ~TFtpFile()
+    {
+    }
+
+public:
+    AnsiString  FtpFileName;
+    AnsiString  LocalFileName;
+    bool        IsFtpOk;
+    TDateTime   UpdateTm;
+};
+//---------------------------------------------------------------------------
 
 class TCDSCtlr
 {
@@ -348,11 +366,13 @@ public:
     AnsiString  ParamResTime;
 
     int         PROTOCOL_VER;       // 구미시 텍스트, 도형식 프로토콜 구분을 위해 추가
-    bool        IsDle;
+    bool        IsDle;              // DLE Stuffing protocol support
+    bool        IsVideo;            // Video Support VMS
 
     AnsiString          DownloadFormId;
     VMS_DOWNLOAD_DATA   FormDownload;
     TItsMap<AnsiString, TDownloadForm*> FDownloadLists;
+    TItsMap<AnsiString, TFtpFile*>      FFtpFileLists;
 
     //////////////////////////////
     struct
@@ -435,6 +455,8 @@ public:
     void InitSafe();
 
     void InitDownloadFileInfo();
+    void InitFtpFileInfo();
+    bool RemainFtpFile();
 };
 //---------------------------------------------------------------------------
 

+ 29 - 2
SRC/VMSCommLib/CDS/CDSImageF.cpp

@@ -245,8 +245,35 @@ int TCDSImageManager::LoadVmsSymbolInfo(TADOConnection *ADbConn)
                 {
                     //위에서 이미지저장하기 위해 파일명을 변경하기 때문에 여기서 동영상 파일명을 다시 읽어온다
                     pVmsImg->SYMB_FILE_NM  = pADO->FieldByName("SYMB_FILE_NM")->AsString.Trim(); //동영상인 경우 동영상 파일명
-                    pVmsImg->LocalFileName = g_sFtpVideoDir + pVmsImg->SYMB_FILE_NM;
-                    pVmsImg->FtpFileName   = AnsiString(FTP_VIDEO) + "\\" + pVmsImg->SYMB_FILE_NM; // Ftp 다운로드 명을 설정
+
+                    String VIDEO_FILE_NAME = SYMB_LIB_NMBR + "." + pADO->FieldByName("SYMB_IMAG_TYPE")->AsString.Trim();
+                    pVmsImg->LocalFileName = g_sFtpVideoDir + VIDEO_FILE_NAME;
+                    pVmsImg->FtpFileName   = VIDEO_FILE_NAME; // Ftp 다운로드 명을 설정
+
+
+                    if (CDSCtlrManager)
+                    {
+                        CtlrItr it;
+                        for(it=CDSCtlrManager->FLists.FObjects.begin(); it != CDSCtlrManager->FLists.FObjects.end(); ++it)
+                        {
+                            TCDSCtlr *pObj = (TCDSCtlr*)it->second;
+                            if (!pObj->IsVideo) continue;
+
+                            TFtpFile *ftpFile = pObj->FFtpFileLists.Find(VIDEO_FILE_NAME);
+                            if (!ftpFile) {
+                                ftpFile = new TFtpFile();
+                                ftpFile->FtpFileName = VIDEO_FILE_NAME;
+                                ftpFile->LocalFileName = pVmsImg->LocalFileName;
+                                ftpFile->IsFtpOk = false;
+                                ftpFile->UpdateTm = Now();
+                                pObj->FFtpFileLists.Push(VIDEO_FILE_NAME, ftpFile);
+                            }
+
+                        }
+                    }
+
+                    //pVmsImg->LocalFileName = g_sFtpVideoDir + pVmsImg->SYMB_FILE_NM;
+                    //pVmsImg->FtpFileName   = AnsiString(FTP_VIDEO) + "\\" + pVmsImg->SYMB_FILE_NM; // Ftp 다운로드 명을 설정
 #if 0
                     if (FileExists(pVmsImg->LocalFileName))
                     {

+ 1 - 0
SRC/VMSCommLib/COMMON/ClientSessionF.h

@@ -139,6 +139,7 @@ public:
     int ReqStatusControl(char *ACmd, int ALen);
     int ReqSendPacket(char *ACmd, int ALen);
 
+    int download_ftp_file();
     int download_form_schedule(bool ASchedule=true);
     int download_form_schedule_complete();
     int download_default_form_0x9A();

+ 233 - 49
SRC/VMSCommLib/COMMON/PacketHandllingF.cpp

@@ -850,6 +850,12 @@ bool TClientSession::InfoPacket(BYTE AOpCode, int ALen, bool ASend, int AResult/
     case e_vms_display_form_id://       = 0xA0,//    Display Form ID                         송신    Form ID에 해당하는 Form 표출                센터 → VMS
         sCmd = "vms_display_form_id";
         break;
+    case e_vms_video_ftp_download_req://    = 0xA1, //    동영상 파일 FTP 다운로드 요청                                                               센터 → VMS
+        sCmd = "e_vms_video_ftp_download_req";
+        break;
+    case e_vms_video_ftp_download_completed://    = 0xA2, //    동영상 파일 FTP 다운로드 완료                                                               센터 ← VMS
+        sCmd = "e_vms_video_ftp_download_completed";
+        break;
     default:
         sCmd.printf("UNKNOWN Packet: %02X", AOpCode);
         return false;
@@ -1401,7 +1407,7 @@ REGISTER_HANDLER(e_vms_power_module_status)
 
     BYTE *pData = &AData[sizeof(VMS_RES_HEAD)];
     int nModCnt = pData[0];
-    // pData[0] ==> Reserved area
+    // pData[1] ==> Reserved area
 
     int nReqSize =  (nModCnt+2);
 	if (nLength != nReqSize)
@@ -1620,6 +1626,13 @@ REGISTER_HANDLER(e_vms_parameter)
         POST_MSG(MAINHANDLE, WM_TCP_THREAD, WM_CTLR_STATE_STTS, (int)ASession->CDSCtlr);    // 상태정보 업데이트
     }
 
+    // TODO: 동영상 파일을 다운로드 하도록 명령을 전송한다.
+    if (AObj->IsVideo && AObj->RemainFtpFile()) {
+        TDEBUG("ftp-file-download request to jobQ-1.");
+        RequestJob(ASession, eVmsFtpFileDownload, NULL, 0);
+    }
+
+
     if (ASession->State == eSS_LoginReq)
     {
         ASession->State = eSS_Connected;
@@ -2007,6 +2020,70 @@ REGISTER_HANDLER(e_vms_blank)
 }
 //---------------------------------------------------------------------------
 
+
+// TODO: 20241220 ==> FTP 다운로드 전송 메시지를 VMS에서 정상적으로 수신하였다는 메시지
+/////////////////////////////////////////////////////////
+REGISTER_HANDLER(e_vms_video_ftp_download_req)
+{
+    int nLength = APktLen-sizeof(VMS_RES_HEAD)-sizeof(VMS_TAIL);
+    TDEBUG("e_vms_video_ftp_download_req Length: %d", nLength);
+
+    VMS_RESULT *pRes = (VMS_RESULT*)&AData[sizeof(VMS_RES_HEAD)];
+    if (pRes->Result != VMS_ACK)
+    {
+        TERROR("%s.%d, e_vms_video_ftp_download_req Result Error. Error: 0x%02X.", ASession->IpAddress.c_str(), ASession->Socket, pRes->Error);
+        MERROR("%s.%d, e_vms_video_ftp_download_req Result Error. Error: 0x%02X.", ASession->IpAddress.c_str(), ASession->Socket, pRes->Error);
+        ASession->DisplayResponseError(AData);
+        return -2;
+    }
+    else
+    {
+        TINFO("e_vms_video_ftp_download_req : OK...");
+    }
+
+    return 0;
+}
+//---------------------------------------------------------------------------
+
+// TODO: 20241220 ==> FTP 다운로드 전송 메시지를 VMS에서 정상적으로 수신 후 FTP  까지 완료하였다는 메시지
+/////////////////////////////////////////////////////////
+REGISTER_HANDLER(e_vms_video_ftp_download_completed)
+{
+    int nLength = APktLen-sizeof(VMS_RES_HEAD)-sizeof(VMS_TAIL);
+	if (nLength < (int)sizeof(VMS_FILE_FTP_DATA))
+	{
+        TERROR("%s.%d, e_vms_video_ftp_download_completed Data Length error(%d). will be closed.", ASession->IpAddress.c_str(), ASession->Socket, nLength);
+        MERROR("%s.%d, e_vms_video_ftp_download_completed Data Length error(%d). will be closed.", ASession->IpAddress.c_str(), ASession->Socket, nLength);
+		return -1;
+	}
+
+    VMS_FILE_FTP_DATA *pFtpFile = (VMS_FILE_FTP_DATA*)&AData[sizeof(VMS_RES_HEAD)];
+    AnsiString sFtpFileName = AnsiString(pFtpFile->FILE_NM);
+
+    TINFO("e_vms_video_ftp_download_completed: %s", sFtpFileName.c_str());
+
+
+    TCDSCtlr *AObj = ASession->CDSCtlr;
+    if (AObj)
+    {
+        TFtpFile *ftpFile = AObj->FFtpFileLists.Find(sFtpFileName);
+        if (ftpFile != NULL) {
+            ftpFile->IsFtpOk = true;
+            ftpFile->UpdateTm = Now();
+        }
+
+        // TODO: 동영상 파일을 다운로드 하도록 명령을 전송한다.
+        if (AObj->RemainFtpFile()) {
+            TDEBUG("ftp-file-download request to jobQ-2.");
+            RequestJob(ASession, eVmsFtpFileDownload, NULL, 0);
+        }
+    }
+
+    return 0;
+}
+//---------------------------------------------------------------------------
+
+
 int TClientSession::ReqStauts()
 {
     TCDSCtlr *AObj = FCDSCtlr;
@@ -2371,15 +2448,25 @@ int TClientSession::download_form_schedule(bool ASchedule/*=true*/)
             {
                 continue;
             }
-            if (pForm->fileType == P_FILE_TYPE_VIDEO  || pForm->fileType == P_FILE_TYPE_STREAM)
+            // TODO: 20241220
+            //if (pForm->fileType == P_FILE_TYPE_VIDEO  || pForm->fileType == P_FILE_TYPE_STREAM)
+            if (pForm->fileType == P_FILE_TYPE_STREAM)
+            {
+                continue;
+            }
+            if (AObj->PROTOCOL_VER == 1 && pForm->fileType == P_FILE_TYPE_VIDEO)
             {
+                // 문자식이면서 동영상 폼이면 표출하지 못함
                 continue;
             }
+
             if (!pForm->pStream || pForm->pStream->Size == 0)
             {
                 continue;
             }
 
+            AObj->FormDownload.Info[nForms].fileType    = pForm->fileType;
+            AObj->FormDownload.Info[nForms].STRM_ADDR   = pForm->STRM_ADDR;
             AObj->FormDownload.Info[nForms].VMS_FORM_ID = pForm->VMS_FORM_ID;
             AObj->FormDownload.Info[nForms].IsDownload  = true;
             AObj->FormDownload.Info[nForms].FormIdx     = ii;                       // 리스트상의 순서
@@ -2526,6 +2613,64 @@ int TClientSession::download_form_schedule(bool ASchedule/*=true*/)
 }
 //---------------------------------------------------------------------------
 
+// TODO: 20241220
+int TClientSession::download_ftp_file()
+{
+    IPC_JOB_MESSAGE *pMsg = g_jobBuff.GetBuff();
+    TCDSCtlr *AObj = FCDSCtlr;
+    if (!AObj) return -1;
+
+    if (!AObj->RemainFtpFile()) return -2;
+
+    TFtpFile *pFtpFile = NULL;
+    FOR_STL(TFtpFile*, pInfo, AObj->FFtpFileLists)
+    {
+        if (!pInfo->IsFtpOk) {
+            pFtpFile = pInfo;
+            break;
+        }
+    }
+    if (pFtpFile == NULL) return -3;
+
+
+    BYTE               *msgPtr;
+    VMS_HEAD           *pHead;
+    VMS_FILE_FTP_DATA  *pData;
+
+    WORD crc;
+    int  nPktSize;
+
+    msgPtr = (BYTE*)pMsg->Buff;
+    pHead  = (VMS_HEAD*)&msgPtr[0];
+    pData  = (VMS_FILE_FTP_DATA*)&msgPtr[sizeof(VMS_HEAD)];
+
+    pHead->Dle    = VMS_DLE;
+    pHead->Stx    = VMS_STX;
+    pHead->Group  = AObj->GROUP_NO;
+    pHead->Ctlr   = AObj->CTLR_LOCAL_NO;
+    pHead->OpCode = e_vms_video_ftp_download_req;
+    pHead->Curr   = 1;
+    pHead->Total  = 1;
+    pHead->Length = 0;
+
+    sprintf(pData->FILE_NM, "%s", pFtpFile->FtpFileName.c_str());
+
+    LDEBUG("download_ftp_file_0xA1: %s, %s", pFtpFile->FtpFileName.c_str(), pData->FILE_NM);
+
+    pHead->Length = sizeof(VMS_FILE_FTP_DATA);
+
+    nPktSize = sizeof(VMS_HEAD)+pHead->Length-2; //DLE/STX
+    crc  = GETCRC16((char*)&pHead->Group, nPktSize);
+    msgPtr[sizeof(VMS_HEAD)+pHead->Length+0] = VMS_DLE;
+    msgPtr[sizeof(VMS_HEAD)+pHead->Length+1] = VMS_ETX;
+    msgPtr[sizeof(VMS_HEAD)+pHead->Length+2] = HIBYTE(crc);
+    msgPtr[sizeof(VMS_HEAD)+pHead->Length+3] = LOBYTE(crc);
+
+    SendPacketDLE((char*)msgPtr, nPktSize+6, AObj->IsDle);
+    return 1;
+}
+//---------------------------------------------------------------------------
+
 int TClientSession::download_default_form_0x9A()
 {
     IPC_JOB_MESSAGE *pMsg = g_jobBuff.GetBuff();
@@ -2536,11 +2681,10 @@ int TClientSession::download_default_form_0x9A()
     // 파일다운로드
     VMS_HEAD           *pHead;
     VMS_FILE_DATA      *pFile;
-    char               *pStrm;
 
     // 폼다운로드
-    VMS_FORM_HEAD      *pForm;
-    VMS_FORM_ID_DATA   *pData;
+    VMS_FORM_HEAD       *pForm;
+    VMS_FORM_BMPID_DATA *pBmpIdData;
 
     WORD crc;
     int  nPktSize;
@@ -2548,7 +2692,7 @@ int TClientSession::download_default_form_0x9A()
     msgPtr = (BYTE*)pMsg->Buff;
     pHead  = (VMS_HEAD*)&msgPtr[0];
     pForm  = (VMS_FORM_HEAD*)&msgPtr[sizeof(VMS_HEAD)];
-    pData  = (VMS_FORM_ID_DATA*)&msgPtr[sizeof(VMS_HEAD)+sizeof(VMS_FORM_HEAD)];
+    pBmpIdData  = (VMS_FORM_BMPID_DATA*)&msgPtr[sizeof(VMS_HEAD)+sizeof(VMS_FORM_HEAD)];
 
     pHead->Dle    = VMS_DLE;
     pHead->Stx    = VMS_STX;
@@ -2567,27 +2711,27 @@ int TClientSession::download_default_form_0x9A()
     pForm->FORM_ID  = htons(nFormId);
     pForm->FORM_CNT = htons(nFormCnt);
 
-    pHead->Length = sizeof(VMS_FORM_HEAD)+(sizeof(VMS_FORM_ID_INFO)*nFormCnt);
+    pHead->Length = sizeof(VMS_FORM_HEAD)+(sizeof(VMS_FORM_BMPID_INFO)*nFormCnt);
 
     for (int ii = 0; ii < nFormCnt; ii++)
     {
-        pData->INFO[ii].data.FORM_SEQ     = htons(ii);                                  // 폼 표출 일련번호,        2Byte
-        pData->INFO[ii].data.DISPLAY_TIME = 4;                                          // 폼의 표출시간을 지정,    1Byte( 0x00 이면 계속 표출 ) ==> 제어기에서 사용안함
-        pData->INFO[ii].data.DISPLAY_TYPE = e_static_normal;                            // 폼의 표출유형을 지정,    1Byte
-        pData->INFO[ii].data.BG_RGB       = e_bg_black;                                 // 폼의 배경색을 지정,      1Byte
-        pData->INFO[ii].data.OBJ_CNT      = 1;                                          // 표출할 오브젝트 전체 수, 1Byte
+        pBmpIdData->INFO[ii].data.FORM_SEQ     = htons(ii);                                  // 폼 표출 일련번호,        2Byte
+        pBmpIdData->INFO[ii].data.DISPLAY_TIME = 4;                                          // 폼의 표출시간을 지정,    1Byte( 0x00 이면 계속 표출 ) ==> 제어기에서 사용안함
+        pBmpIdData->INFO[ii].data.DISPLAY_TYPE = e_static_normal;                            // 폼의 표출유형을 지정,    1Byte
+        pBmpIdData->INFO[ii].data.BG_RGB       = e_bg_black;                                 // 폼의 배경색을 지정,      1Byte
+        pBmpIdData->INFO[ii].data.OBJ_CNT      = 1;                                          // 표출할 오브젝트 전체 수, 1Byte
 
-        pData->INFO[ii].obj.OBJ_TYPE    = e_obj_bitmapid;                               // 오브젝트 종류
-        pData->INFO[ii].obj.OBJ_SIZE    = htons(sizeof(VMS_OBJ_BITMAPID));              // 오브젝트 데이터 크기
-        pData->INFO[ii].obj.FLASH       = 0x00;                                         // 점멸여부, 1Byte(0x00 : 고정, 0x01 : 점멸)
-        pData->INFO[ii].obj.X           = htons(0);                                     // 좌표 X
-        pData->INFO[ii].obj.Y           = htons(0);                                     // 좌표 Y
-        pData->INFO[ii].obj.TEXT_BG_RGB = e_bg_black;                                   // 문자열 배경색을 지정
+        pBmpIdData->INFO[ii].obj.OBJ_TYPE    = e_obj_bitmapid;                               // 오브젝트 종류
+        pBmpIdData->INFO[ii].obj.OBJ_SIZE    = htons(sizeof(VMS_OBJ_BITMAPID));              // 오브젝트 데이터 크기
+        pBmpIdData->INFO[ii].obj.FLASH       = 0x00;                                         // 점멸여부, 1Byte(0x00 : 고정, 0x01 : 점멸)
+        pBmpIdData->INFO[ii].obj.X           = htons(0);                                     // 좌표 X
+        pBmpIdData->INFO[ii].obj.Y           = htons(0);                                     // 좌표 Y
+        pBmpIdData->INFO[ii].obj.TEXT_BG_RGB = e_bg_black;                                   // 문자열 배경색을 지정
 
-        pData->INFO[ii].bid.WIDTH     = htons(AObj->WIDTH);                             // 비트맵 표시 Width,  2 Byte, 0 ~ 1023 : 표출 비트맵 Width
-        pData->INFO[ii].bid.HEIGHT    = htons(AObj->HEIGHT);                            // 비트맵 표시 Heitht, 2 Byte, 0 ~ 1023 : 표출 비트맵 Width
-        pData->INFO[ii].bid.IMG_TYPE  = e_img_bitmap;                                   // e_img_type
-        pData->INFO[ii].bid.BITMAP_ID = htons(AObj->FormDownload.Info[ii].BitmapId);    // 표출할 비트맵 ID,   2 Byte, 0~ 9999 : 표출할 비트맵 ID
+        pBmpIdData->INFO[ii].bmpid.WIDTH     = htons(AObj->WIDTH);                             // 비트맵 표시 Width,  2 Byte, 0 ~ 1023 : 표출 비트맵 Width
+        pBmpIdData->INFO[ii].bmpid.HEIGHT    = htons(AObj->HEIGHT);                            // 비트맵 표시 Heitht, 2 Byte, 0 ~ 1023 : 표출 비트맵 Width
+        pBmpIdData->INFO[ii].bmpid.IMG_TYPE  = e_img_bitmap;                                   // e_img_type
+        pBmpIdData->INFO[ii].bmpid.BITMAP_ID = htons(AObj->FormDownload.Info[ii].BitmapId);    // 표출할 비트맵 ID,   2 Byte, 0~ 9999 : 표출할 비트맵 ID
 
         LDEBUG("download_default_form_0x9A: FormSeq: %d, FormId: %d", ii, AObj->FormDownload.Info[ii].BitmapId);
     }
@@ -2624,11 +2768,11 @@ int TClientSession::download_form_0x9A()
     // 파일다운로드
     VMS_HEAD           *pHead;
     VMS_FILE_DATA      *pFile;
-    char               *pStrm;
 
     // 폼다운로드
-    VMS_FORM_HEAD      *pForm;
-    VMS_FORM_ID_DATA   *pData;
+    VMS_FORM_HEAD       *pForm;
+    VMS_FORM_BMPID_DATA *pBmpIdData;
+    VMS_FORM_VIDEO_DATA *pVideoData;
 
     WORD crc;
     int  nPktSize;
@@ -2636,7 +2780,8 @@ int TClientSession::download_form_0x9A()
     msgPtr = (BYTE*)pMsg->Buff;
     pHead  = (VMS_HEAD*)&msgPtr[0];
     pForm  = (VMS_FORM_HEAD*)&msgPtr[sizeof(VMS_HEAD)];
-    pData  = (VMS_FORM_ID_DATA*)&msgPtr[sizeof(VMS_HEAD)+sizeof(VMS_FORM_HEAD)];
+    pBmpIdData  = (VMS_FORM_BMPID_DATA*)&msgPtr[sizeof(VMS_HEAD)+sizeof(VMS_FORM_HEAD)];
+    pVideoData  = (VMS_FORM_VIDEO_DATA*)&msgPtr[sizeof(VMS_HEAD)+sizeof(VMS_FORM_HEAD)];
 
     pHead->Dle    = VMS_DLE;
     pHead->Stx    = VMS_STX;
@@ -2649,36 +2794,69 @@ int TClientSession::download_form_0x9A()
 
     // 폼아이디는 제어기가 최초에 접속했을때 한번만 내려보내기 때문에
     // 폼아이디를 여기서 설정해 주어야 한다.
+    BYTE fileType        = AObj->FormDownload.Info[AObj->FormDownload.DownloadCnt].fileType;
+    AnsiString STRM_ADDR = AObj->FormDownload.Info[AObj->FormDownload.DownloadCnt].STRM_ADDR;
+
     int nFormId   = AObj->FormDownload.Info[AObj->FormDownload.DownloadCnt].FormNo;
     int nBitmapId = AObj->FormDownload.Info[AObj->FormDownload.DownloadCnt].BitmapId;
     int nFormCnt  = 1;   // 폼정보는 하나만 내려보내야 한다. 제어기에서 수용하지 못함
 
-    LDEBUG("download_form_0x9A: DownloadCnt: %d, FormId: %d, BitmapId: %d", AObj->FormDownload.DownloadCnt, nFormId, nBitmapId);
-
     pForm->FORM_ID  = htons(nFormId);
     pForm->FORM_CNT = htons(nFormCnt);
 
-    pHead->Length = sizeof(VMS_FORM_HEAD)+(sizeof(VMS_FORM_ID_INFO)*nFormCnt);
+    if (fileType == P_FILE_TYPE_VIDEO) {
+        // 동영상 표출
+        LDEBUG("download_form_0x9A: DownloadCnt: %d, FormId: %d, VideoId: %s", AObj->FormDownload.DownloadCnt, nFormId, STRM_ADDR.c_str());
+        pHead->Length = sizeof(VMS_FORM_HEAD)+(sizeof(VMS_FORM_VIDEO_INFO)*nFormCnt);
+    }
+    else {
+        LDEBUG("download_form_0x9A: DownloadCnt: %d, FormId: %d, BitmapId: %d", AObj->FormDownload.DownloadCnt, nFormId, nBitmapId);
+        pHead->Length = sizeof(VMS_FORM_HEAD)+(sizeof(VMS_FORM_BMPID_INFO)*nFormCnt);
+    }
+
 
     for (int ii = 0; ii < nFormCnt; ii++)
     {
-        pData->INFO[ii].data.FORM_SEQ     = htons(nFormId);                         // 폼 표출 일련번호,        2Byte
-        pData->INFO[ii].data.DISPLAY_TIME = 1;                                      // 폼의 표출시간을 지정,    1Byte( 0x00 이면 계속 표출 ) ==> 제어기에서 사용안함
-        pData->INFO[ii].data.DISPLAY_TYPE = e_static_normal;                        // 폼의 표출유형을 지정,    1Byte
-        pData->INFO[ii].data.BG_RGB       = e_bg_black;                             // 폼의 배경색을 지정,      1Byte
-        pData->INFO[ii].data.OBJ_CNT      = 1;                                      // 표출할 오브젝트 전체 수, 1Byte
-
-        pData->INFO[ii].obj.OBJ_TYPE    = e_obj_bitmapid;                           // 오브젝트 종류
-        pData->INFO[ii].obj.OBJ_SIZE    = htons(sizeof(VMS_OBJ_BITMAPID));          // 오브젝트 데이터 크기
-        pData->INFO[ii].obj.FLASH       = 0x00;                                     // 점멸여부, 1Byte(0x00 : 고정, 0x01 : 점멸)
-        pData->INFO[ii].obj.X           = htons(0);                                 // 좌표 X
-        pData->INFO[ii].obj.Y           = htons(0);                                 // 좌표 Y
-        pData->INFO[ii].obj.TEXT_BG_RGB = e_bg_black;                               // 문자열 배경색을 지정
-
-        pData->INFO[ii].bid.WIDTH     = htons(AObj->WIDTH);                         // 비트맵 표시 Width,  2 Byte, 0 ~ 1023 : 표출 비트맵 Width
-        pData->INFO[ii].bid.HEIGHT    = htons(AObj->HEIGHT);                        // 비트맵 표시 Heitht, 2 Byte, 0 ~ 1023 : 표출 비트맵 Width
-        pData->INFO[ii].bid.IMG_TYPE  = e_img_bitmap;                               // e_img_type
-        pData->INFO[ii].bid.BITMAP_ID = htons(nBitmapId);                           // 표출할 비트맵 ID,   2 Byte, 0~ 9999 : 표출할 비트맵 ID
+        if (fileType == P_FILE_TYPE_VIDEO) {
+            // 동영상 표출
+            memset(pVideoData, 0x00, sizeof(VMS_FORM_VIDEO_DATA));
+            pVideoData->INFO[ii].data.FORM_SEQ     = htons(nFormId);                         // 폼 표출 일련번호,        2Byte
+            pVideoData->INFO[ii].data.DISPLAY_TIME = 1;                                      // 폼의 표출시간을 지정,    1Byte( 0x00 이면 계속 표출 ) ==> 제어기에서 사용안함
+            pVideoData->INFO[ii].data.DISPLAY_TYPE = e_static_normal;                        // 폼의 표출유형을 지정,    1Byte
+            pVideoData->INFO[ii].data.BG_RGB       = e_bg_black;                             // 폼의 배경색을 지정,      1Byte
+            pVideoData->INFO[ii].data.OBJ_CNT      = 1;                                      // 표출할 오브젝트 전체 수, 1Byte
+
+            pVideoData->INFO[ii].obj.OBJ_TYPE    = e_obj_video;                              // 오브젝트 종류
+            pVideoData->INFO[ii].obj.OBJ_SIZE    = htons(sizeof(VMS_OBJ_VIDEO));             // 오브젝트 데이터 크기
+            pVideoData->INFO[ii].obj.FLASH       = 0x00;                                     // 점멸여부, 1Byte(0x00 : 고정, 0x01 : 점멸)
+            pVideoData->INFO[ii].obj.X           = htons(0);                                 // 좌표 X
+            pVideoData->INFO[ii].obj.Y           = htons(0);                                 // 좌표 Y
+            pVideoData->INFO[ii].obj.TEXT_BG_RGB = e_bg_black;                               // 문자열 배경색을 지정
+
+            pVideoData->INFO[ii].video.WIDTH     = htons(AObj->WIDTH);                         // 비트맵 표시 Width,  2 Byte, 0 ~ 1023 : 표출 비트맵 Width
+            pVideoData->INFO[ii].video.HEIGHT    = htons(AObj->HEIGHT);                        // 비트맵 표시 Heitht, 2 Byte, 0 ~ 1023 : 표출 비트맵 Width
+            pVideoData->INFO[ii].video.ETC       = 0x00;                                       // 기타
+            sprintf(pVideoData->INFO[ii].video.FILE_NM, "%s", STRM_ADDR.c_str());              // 동영상 파일 이름
+        }
+        else {
+            pBmpIdData->INFO[ii].data.FORM_SEQ     = htons(nFormId);                         // 폼 표출 일련번호,        2Byte
+            pBmpIdData->INFO[ii].data.DISPLAY_TIME = 1;                                      // 폼의 표출시간을 지정,    1Byte( 0x00 이면 계속 표출 ) ==> 제어기에서 사용안함
+            pBmpIdData->INFO[ii].data.DISPLAY_TYPE = e_static_normal;                        // 폼의 표출유형을 지정,    1Byte
+            pBmpIdData->INFO[ii].data.BG_RGB       = e_bg_black;                             // 폼의 배경색을 지정,      1Byte
+            pBmpIdData->INFO[ii].data.OBJ_CNT      = 1;                                      // 표출할 오브젝트 전체 수, 1Byte
+
+            pBmpIdData->INFO[ii].obj.OBJ_TYPE    = e_obj_bitmapid;                           // 오브젝트 종류
+            pBmpIdData->INFO[ii].obj.OBJ_SIZE    = htons(sizeof(VMS_OBJ_BITMAPID));          // 오브젝트 데이터 크기
+            pBmpIdData->INFO[ii].obj.FLASH       = 0x00;                                     // 점멸여부, 1Byte(0x00 : 고정, 0x01 : 점멸)
+            pBmpIdData->INFO[ii].obj.X           = htons(0);                                 // 좌표 X
+            pBmpIdData->INFO[ii].obj.Y           = htons(0);                                 // 좌표 Y
+            pBmpIdData->INFO[ii].obj.TEXT_BG_RGB = e_bg_black;                               // 문자열 배경색을 지정
+
+            pBmpIdData->INFO[ii].bmpid.WIDTH     = htons(AObj->WIDTH);                         // 비트맵 표시 Width,  2 Byte, 0 ~ 1023 : 표출 비트맵 Width
+            pBmpIdData->INFO[ii].bmpid.HEIGHT    = htons(AObj->HEIGHT);                        // 비트맵 표시 Heitht, 2 Byte, 0 ~ 1023 : 표출 비트맵 Width
+            pBmpIdData->INFO[ii].bmpid.IMG_TYPE  = e_img_bitmap;                               // e_img_type
+            pBmpIdData->INFO[ii].bmpid.BITMAP_ID = htons(nBitmapId);                           // 표출할 비트맵 ID,   2 Byte, 0~ 9999 : 표출할 비트맵 ID
+        }
     }
 
     nPktSize = sizeof(VMS_HEAD)+pHead->Length-2; //DLE/STX
@@ -2724,8 +2902,8 @@ int TClientSession::download_file_0x82()
     char               *pStrm;
 
     // 폼다운로드
-    VMS_FORM_HEAD      *pForm;
-    VMS_FORM_ID_DATA   *pData;
+    VMS_FORM_HEAD       *pForm;
+    VMS_FORM_BMPID_DATA *pData;
 
     WORD crc;
     int  nPktSize;
@@ -2760,7 +2938,8 @@ int TClientSession::download_file_0x82()
                 continue;
             }
 
-            if (pForm->fileType == P_FILE_TYPE_VIDEO  || pForm->fileType == P_FILE_TYPE_STREAM)
+            // TODO: 20241220
+            if (pForm->fileType == P_FILE_TYPE_STREAM)
             {
                 continue;
             }
@@ -2768,6 +2947,11 @@ int TClientSession::download_file_0x82()
             {
                 continue;
             }
+            if (pForm->fileType == P_FILE_TYPE_VIDEO)
+            {
+                // 필요에 따라서 동영상 FTP 다운로드 프로토콜을 여기서도 사용하자.....
+                continue;
+            }
 
             isEndDownload = false;
             AObj->DownloadFormId = AObj->FormDownload.Info[ii].VMS_FORM_ID;

+ 67 - 32
SRC/VMSCommLib/COMMON/PacketHandllingF.h

@@ -144,13 +144,13 @@ typedef enum _e_vms_protocol
     // 사용하지 않음
     e_vms_display_form_id           = 0xA0, //    Display Form ID                         송신    Form ID에 해당하는 Form 표출                센터 → VMS
                                             //                                            수신    수신 여부 응답( ACK/NAK )                   센터 ← VMS
+    // TODO: 202411219
+    e_vms_video_ftp_download_req    = 0xA1, //    동영상 파일 FTP 다운로드 요청                                                               센터 → VMS
+    e_vms_video_ftp_download_completed    = 0xA2, //    동영상 파일 FTP 다운로드 완료                                                               센터 ← VMS
+
     e_vms_MAX                       = 0xFF+1,
 } E_VMS_PROTOCOL;
 
-#if 0
-0xA1 : 동영상 파일 FTP 다운로드
-0xA2 : 동영상 파일 FTP 다운로드 완료
-#endif
 
 
 /*
@@ -201,18 +201,6 @@ typedef struct _vms_head
     DWORD   Length;
 } VMS_HEAD;
 
-typedef struct _vms_data
-{
-    _vms_data()
-    {
-        Curr   = 1;
-        Total  = 1;
-        Length = 0;
-    }
-    BYTE    Curr;
-    BYTE    Total;
-    DWORD   Length;
-} VMS_DATA;
 
 typedef struct _vms_tail
 {
@@ -333,13 +321,13 @@ typedef struct _vms_parameter
     BYTE    HeaterRunMode;  // Heater의 동작모드            1 Byte  0x00 : 꺼짐, 0x01 : 켜짐, 0x02 : 자동, 0x09: Unknown
     BYTE    HeaterRunTemp;  // Heater 의 동작개시온도       1 Byte  온도(0x00 ~ 0x3f )
     BYTE    BrightMode;     // 밝기 모드                    2 Byte  0x0 : 수동, 0x1 : 자동, 비율 : 0-100
-    BYTE    BrightRate;     // 밝기 모드                    2 Byte  0x0 : 수동, 0x1 : 자동, 비율 : 0-100
+    BYTE    BrightRate;     // 현재 밝기 비율 : 0-100
     BYTE    BlinkTime;      // 깜빡이는 시간주기            1 Byte  문자 비트맵의 깜빡이는 시간주기 0x00 ~ 0x1e( 0.1 ~3.0 )
     WORD    ScnTurnTime;    // 디폴트 시나리오로 전환시간   2 Byte  디폴트 시나리오로 전환될 때까지 기다리는 시간, 단위 : 초
     BYTE    Reserved;       // 기타                         1 Byte
 
     //현재 로컬 제어기의 시간
-    BYTE    Year;           // 년       1 Byte  0x00 ~ 0x32
+    BYTE    Year;           // 년       1 Byte  0x00 ~ 0x32 (현재년도 - 2000)
     BYTE    Mon;            // 월       1 Byte  0x01 ~ 0x0c
     BYTE    Day;            // 일       1 Byte  0x01 ~ 0x1f
     BYTE    Hour;           // 시       1 Byte  0x00 ~ 0x17
@@ -443,7 +431,7 @@ typedef enum _e_obj_type
     e_obj_text     = 0x00,      //문자열        0x00
     e_obj_bitmap   = 0x01,      //Bitmap        0x01
     e_obj_bitmapid = 0x02,      //Bitmap ID     0x02
-    e_obj_avi      = 0x03,      //동영상        0x03      동영상 *.AVI (XVID)
+    e_obj_video    = 0x03,      //동영상        0x03      동영상 *.AVI (XVID)
     e_obj_stream   = 0x04,      //스트리밍 영상 0x04
 } e_obj_type;
 
@@ -512,6 +500,16 @@ typedef struct _vms_form_obj_head
 
 // ▷ 비트맵 데이터 (표출할 비트맵 데이터)
 // 표시하고자 하는 비트맵 데이터로서 파일형식은󰡒BMP"를 기준으로 하고 색상은 16Color를 기본으로 하며 16Color 이상도 사용할 수 있다.다.
+typedef struct _vms_obj_text
+{
+    BYTE COLOR[3];  // 사용 폰트 색상, Full-Color를 위해 3Byte로 변경함
+    BYTE SIZE;      // 사용 폰트 크기, (별표 참조)
+    BYTE TYPE;      // 사용 폰트 종류 Code, (별표 참조)
+    BYTE BOLD;      // 사용 폰트 굵기, (별표 참조)
+    BYTE ETC;       // 기타
+    char *DATA;     // 표출할 문자열, N Bytes
+} VMS_OBJ_TEXT;
+
 typedef struct _vms_obj_bitmap
 {
     WORD    WIDTH;          // 비트맵 표시 Width,  2 Byte, 0 ~ 1023 : 표출 비트맵 Width
@@ -528,13 +526,22 @@ typedef struct _vms_obj_bitmapid
     WORD    BITMAP_ID;      // 표출할 비트맵 ID,   2 Byte, 0~ 9999 : 표출할 비트맵 ID
 } VMS_OBJ_BITMAPID;
 
-typedef struct _vms_form_data
+typedef struct _vms_obj_video
 {
-    VMS_FORM_HEAD       head;
-    VMS_FORM_DATA_HEAD  data;
-    VMS_FORM_OBJ_HEAD   obj;
-    VMS_OBJ_BITMAP      bitmap;
-} VMS_FORM_DATA;
+    WORD    WIDTH;          // 동영상 표시 Width,  2 Byte, 0 ~ 1023 : 표출 비트맵 Width
+    WORD    HEIGHT;         // 동영상 표시 Heitht, 2 Byte, 0 ~ 1023 : 표출 비트맵 Width
+    BYTE    ETC;            // reserved: 0x00
+    BYTE    FILE_NM[50];    // 확장자가 포함된 파일이름(*.avi)
+} VMS_OBJ_VIDEO;
+
+typedef struct _vms_obj_stream
+{
+    WORD    WIDTH;          // 동영상 표시 Width,  2 Byte, 0 ~ 1023 : 표출 비트맵 Width
+    WORD    HEIGHT;         // 동영상 표시 Heitht, 2 Byte, 0 ~ 1023 : 표출 비트맵 Width
+    BYTE    ETC;            // reserved: 0x00
+    char    STREAM_ADDR[];
+} VMS_OBJ_STREAM;
+
 
 typedef struct _vms_schedule_form_info
 {
@@ -549,12 +556,21 @@ typedef struct _vms_schedule_form
 // 내부적으로 사용할 구조체
 typedef struct _vms_file_download
 {
+    //////////////////////////////////////////////////////////////////////
+    //// 프로토콜 적용을 위해서
+    BYTE    fileType;                   // 0x01 : 이미지 (JPG)
+                                        // 0x02 : 동영상 (AVI)
+                                        // 0x03 : URL(스트리밍)
+                                        // 0x04 : 소통 이미지
+                                        // 0x05 : 표출문구 이미지
+    //////////////////////////////////////////////////////////////////////
     AnsiString  VMS_FORM_ID;
     bool        IsDownload;
     int         FormIdx;
     int         BitmapId;
     WORD        FormNo;
     BYTE        DispSec;
+    AnsiString  STRM_ADDR;
 } VMS_FILE_DOWNLOAD;
 
 typedef struct _vms_download_data
@@ -565,6 +581,11 @@ typedef struct _vms_download_data
     VMS_FILE_DOWNLOAD   Info[MAX_VMS_SCENARIO_FORM];
 } VMS_DOWNLOAD_DATA;
 
+typedef struct _vms_file_ftp_data
+{
+    char FILE_NM[255];
+} VMS_FILE_FTP_DATA;
+
 /*
 *****************************************************************************
 *  Download Data 저장위치 상세코드
@@ -594,18 +615,32 @@ typedef struct _vms_file_data
     VMS_FILE_HEAD       head;
 } VMS_FILE_DATA;
 
-//VMS_FORM_HEAD       head;
-typedef struct _vms_form_id_info
+//===== Bitmap ID Object
+typedef struct _vms_form_bmpid_info
+{
+    VMS_FORM_DATA_HEAD  data;
+    VMS_FORM_OBJ_HEAD   obj;
+    VMS_OBJ_BITMAPID    bmpid;
+} VMS_FORM_BMPID_INFO;
+
+typedef struct _vms_form_bmpid_data
+{
+    VMS_FORM_BMPID_INFO     INFO[MAX_VMS_SCENARIO_FORM];
+} VMS_FORM_BMPID_DATA;
+
+//===== Video Object
+typedef struct _vms_form_video_info
 {
     VMS_FORM_DATA_HEAD  data;
     VMS_FORM_OBJ_HEAD   obj;
-    VMS_OBJ_BITMAPID    bid;
-} VMS_FORM_ID_INFO;
+    VMS_OBJ_VIDEO       video;
+} VMS_FORM_VIDEO_INFO;
 
-typedef struct _vms_form_id_data
+typedef struct _vms_form_video_data
 {
-    VMS_FORM_ID_INFO    INFO[MAX_VMS_SCENARIO_FORM];
-} VMS_FORM_ID_DATA;
+    VMS_FORM_VIDEO_INFO     INFO[MAX_VMS_SCENARIO_FORM];
+} VMS_FORM_VIDEO_DATA;
+
 
 #define MAX_TXT_FULL_RGB_BIT 9216
 typedef struct _vms_full_graphic_lib

+ 1 - 0
SRC/VMSCommLib/MAIN/MainCommF.cpp

@@ -425,6 +425,7 @@ MINFO("MAIN MakeVmsProvideForm: Start");
 
                             pVmsObj->TextData = pCDSObj->VMS_DSPL_TXT;  // ftp µ¿¿µ»ó ÆÄÀϸí
                             pVmsForm->FtpFileName = pCDSObj->VMS_DSPL_TXT;
+                            pVmsForm->STRM_ADDR   = pCDSObj->VMS_DSPL_TXT;
 
                             TCDSImage* pTmpImg = CDSImageManager->FLists.Find(pVmsObj->ImageId);
                             if (pTmpImg)

+ 8 - 0
SRC/VMSCommLib/THREAD/JobThreadF.cpp

@@ -127,6 +127,14 @@ DWORD __fastcall TJobThread::Process(LPVOID AParam)
                     break;
 
 
+                //TODO: 20241220, FTP DOWNLOAD
+                case eVmsFtpFileDownload:
+                    if (pSession->download_ftp_file() > 0)
+                    {
+                        pSession->SendFlush();
+                    }
+                    break;
+
                 // 폼 다운로드 시작
                 case eVmsScenarioDownload: // 개별 명령에 의한 시나리오 다운로드
                     if (pSession->download_form_schedule(false) > 0)

+ 1 - 0
SRC/VMSCommLib/VMSCommLibF.h

@@ -346,6 +346,7 @@ typedef enum _e_tcp_msg
     eVmsStatusControl,
 
     eVmsFormDownload,
+    eVmsFtpFileDownload,
     eVmsScenarioDownload,
     eVmsScenarioContinue,
     eVmsDownloadSchedule,

+ 1 - 0
VMS-FTP-INFO.SQL

@@ -46,5 +46,6 @@ ITS_OP.exe
 VmsOprMain.exe
 VmsCommServer.exe
 
+VideoVMS.inf 파일 업데이트
 
 

BIN
구미UTIS VMS 프로토콜(거제 포항).hwp


+ 6 - 6
구미시 VMS 통신코드값.cpp

@@ -1,8 +1,8 @@
 ※ 오브젝트 종류
-문자열          0x00
-Bitmap          0x01
-Bitmap ID       0x02
-동영상          0x03    동영상 *.AVI (XVID)
+문자열        0x00
+Bitmap      0x01
+Bitmap ID   0x02
+동영상        0x03    동영상 *.AVI (XVID)
 스트리밍 영상   0x04
 
 
@@ -11,7 +11,7 @@ Bitmap ID       0x02
 사용 폰트 크기          1 Byte      0x11(별표 참조)
 사용 폰트 종류 Code     1 Byte      0x20(별표 참조)
 사용 폰트 굵기          1 Byte      0x00(별표 참조)
-기타                    1 Byte
+기타                 1 Byte
 
 ● 비트맵 오브젝트 형식 : 비트맵을 표출하는 오브젝트
 그림파일 타입           1 Byte      별표 참조
@@ -39,7 +39,7 @@ Bitmap ID       0x02
 
 *** 폰트 굵기
 굵게    0x00
-가늘게  0x01
+가늘게   0x01
 
 *** 폰트의 크기
 6 폰트  0x06    6 ~ 63 폰트 범위내에서 VMS 표출 전략과

+ 89 - 0
프로토콜 시퀀스.TXT

@@ -0,0 +1,89 @@
+14:24:04.04 [INF] +SVR 10015, SEND: vms_status, 15 Bytes, [DLE Stuffing]
+14:24:04.04 [INF] +SVR 10015, RECV: vms_status, 29 Bytes, [DLE Stuffing]
+
+14:24:04.04 [INF] +SVR 10015, SEND: vms_power_module_status, 15 Bytes, [DLE Stuffing]
+14:24:04.05 [INF] +SVR 10015, RECV: vms_power_module_status, 21 Bytes, [DLE Stuffing]
+
+14:24:04.05 [INF] +SVR 10015, SEND: vms_display_module_status, 15 Bytes, [DLE Stuffing]
+14:24:04.05 [INF] +SVR 10015, RECV: vms_display_module_status, 118 Bytes, [DLE Stuffing]
+
+14:24:04.05 [INF] +SVR 10015, SEND: vms_parameter, 15 Bytes, [DLE Stuffing]
+14:24:04.05 [INF] +SVR 10015, RECV: vms_parameter, 32 Bytes, [DLE Stuffing]
+
+14:24:04.05 [DBG] +SVR 10015, Download Form Schedule by user control...
+14:24:04.05 [DBG] +SVR 10015, Form schedule( 0), VMS_FORM_ID: 10421, FormIdx: 0, FormId: 9000, BitmapId: 1421, IsDownload: true
+14:24:04.05 [DBG] +SVR 10015, Form schedule( 1), VMS_FORM_ID: 10428, FormIdx: 1, FormId: 9001, BitmapId: 1428, IsDownload: true
+14:24:04.05 [DBG] +SVR 10015, Form schedule( 2), VMS_FORM_ID: 10429, FormIdx: 2, FormId: 9002, BitmapId: 1429, IsDownload: true
+14:24:04.05 [DBG] +SVR 10015, Form schedule( 3), VMS_FORM_ID: 10430, FormIdx: 3, FormId: 9003, BitmapId: 1430, IsDownload: true
+14:24:04.05 [DBG] +SVR 10015, Form schedule( 4), VMS_FORM_ID: 10431, FormIdx: 4, FormId: 9004, BitmapId: 1431, IsDownload: true
+
+14:24:04.05 [DBG] +SVR 10015, download_form_0x9A: DownloadCnt: 0, FormId: 9000, BitmapId: 1421
+14:24:04.05 [INF] +SVR 10015, SEND: vms_download_form, 41 Bytes, [DLE Stuffing]
+14:24:04.05 [INF] +SVR 10015, RECV: vms_download_form, 16 Bytes, [DLE Stuffing]
+
+14:24:04.05 [DBG] +SVR 10015, download_form_0x9A: DownloadCnt: 1, FormId: 9001, BitmapId: 1428
+14:24:05.05 [INF] +SVR 10015, SEND: vms_download_form, 41 Bytes, [DLE Stuffing]
+14:24:05.05 [INF] +SVR 10015, RECV: vms_download_form, 16 Bytes, [DLE Stuffing]
+
+14:24:05.05 [DBG] +SVR 10015, download_form_0x9A: DownloadCnt: 2, FormId: 9002, BitmapId: 1429
+14:24:05.05 [INF] +SVR 10015, SEND: vms_download_form, 41 Bytes, [DLE Stuffing]
+14:24:05.05 [INF] +SVR 10015, RECV: vms_download_form, 16 Bytes, [DLE Stuffing]
+
+14:24:05.05 [DBG] +SVR 10015, download_form_0x9A: DownloadCnt: 3, FormId: 9003, BitmapId: 1430
+14:24:05.05 [INF] +SVR 10015, SEND: vms_download_form, 41 Bytes, [DLE Stuffing]
+14:24:05.05 [INF] +SVR 10015, RECV: vms_download_form, 16 Bytes, [DLE Stuffing]
+
+14:24:05.05 [DBG] +SVR 10015, download_form_0x9A: DownloadCnt: 4, FormId: 9004, BitmapId: 1431
+14:24:05.05 [INF] +SVR 10015, SEND: vms_download_form, 41 Bytes, [DLE Stuffing]
+14:24:05.05 [INF] +SVR 10015, RECV: vms_download_form, 16 Bytes, [DLE Stuffing]
+
+14:24:05.05 [DBG] +SVR 10015, download_file_0x82: DownloadCnt: 0, FormId: 9000, BitmapId: 1421, VMS_FORM_ID: 10421
+14:24:05.05 [INF] +SVR 10015, SEND: vms_file_download, 147542 Bytes, [DLE Stuffing]
+14:24:05.05 [INF] +SVR 10015, RECV: vms_file_download, 16 Bytes, [DLE Stuffing]
+
+14:24:05.05 [DBG] +SVR 10015, download_file_0x82: DownloadCnt: 1, FormId: 9001, BitmapId: 1428, VMS_FORM_ID: 10428
+14:24:05.05 [INF] +SVR 10015, SEND: vms_file_download, 147542 Bytes, [DLE Stuffing]
+14:24:05.05 [INF] +SVR 10015, RECV: vms_file_download, 16 Bytes, [DLE Stuffing]
+
+14:24:05.05 [DBG] +SVR 10015, download_file_0x82: DownloadCnt: 2, FormId: 9002, BitmapId: 1429, VMS_FORM_ID: 10429
+14:24:05.05 [INF] +SVR 10015, SEND: vms_file_download, 147542 Bytes, [DLE Stuffing]
+14:24:05.05 [INF] +SVR 10015, RECV: vms_file_download, 16 Bytes, [DLE Stuffing]
+
+14:24:05.05 [DBG] +SVR 10015, download_file_0x82: DownloadCnt: 3, FormId: 9003, BitmapId: 1430, VMS_FORM_ID: 10430
+14:24:05.05 [INF] +SVR 10015, SEND: vms_file_download, 147542 Bytes, [DLE Stuffing]
+14:24:05.05 [INF] +SVR 10015, RECV: vms_file_download, 16 Bytes, [DLE Stuffing]
+
+14:24:05.05 [DBG] +SVR 10015, download_file_0x82: DownloadCnt: 4, FormId: 9004, BitmapId: 1431, VMS_FORM_ID: 10431
+14:24:05.05 [INF] +SVR 10015, SEND: vms_file_download, 147542 Bytes, [DLE Stuffing]
+14:24:05.05 [INF] +SVR 10015, RECV: vms_file_download, 16 Bytes, [DLE Stuffing]
+
+14:24:05.05 [DBG] +SVR 10015, download_schedule_form_0x96: 0, FormId: 9000, DispSec: 4
+14:24:05.05 [DBG] +SVR 10015, download_schedule_form_0x96: 1, FormId: 9001, DispSec: 4
+14:24:05.05 [DBG] +SVR 10015, download_schedule_form_0x96: 2, FormId: 9002, DispSec: 4
+14:24:05.05 [DBG] +SVR 10015, download_schedule_form_0x96: 3, FormId: 9003, DispSec: 4
+14:24:05.05 [DBG] +SVR 10015, download_schedule_form_0x96: 4, FormId: 9004, DispSec: 4
+
+14:24:05.05 [INF] +SVR 10015, SEND: vms_download_schedule_form, 45 Bytes, [DLE Stuffing]
+14:24:05.05 [INF] +SVR 10015, RECV: vms_download_schedule_form, 16 Bytes, [DLE Stuffing]
+
+14:24:05.05 [DBG] +SVR 10015, download_blank_0x9E: .................
+14:24:05.05 [INF] +SVR 10015, SEND: vms_blank, 15 Bytes, [DLE Stuffing]
+14:24:05.05 [INF] +SVR 10015, RECV: vms_blank, 16 Bytes, [DLE Stuffing]
+
+
+0x80
+0x82
+0x84
+0x86
+0x88
+0x8A
+0x8C
+0x8E
+0x92 - x
+0x94 - x
+0x96
+0x98 - ack
+0x9A
+0x9C - x
+0x9E - ack
+0xA0 -