문서번호
통제구분	Controlled Copy

비밀 구분

Version 1.0

인터페이스 정의서

공통

2016. 02.

구미시

도시지역 광역교통정보 기반확충사업(UTIS)

구미시 도시지역 광역교통정보 기반확충사업(UTIS)

인터페이스 정의서

(공통)

개정 현황
V1.0	2016. 02.	최초작성	노동수	유승계	박준식
개정 번호	일자	변경사유	작성	검토	승인

- 목 차 -

제1장 센터 시스템 간 인터페이스 정의	1

1. 개요	1

2. 통신환경 설정	1

3. 기본 프레임 형식	1

4. 시스템 정의	1

5. 프로토콜 목록	2

1) 명령어 목록	2

6. 상세 프로토콜	3

1) 가공서버-운영단말 인터페이스 정의	3

제2장 CCTV 인터페이스 정의	4

1. 개요	4

2. 통신구성	4

3. 메시지 구조	6

1) 명령 메시지 구조	6

2) 응답 메시지 구조	6

3) 제어기 기본 상태 정보 (STATUS)	6

4) 명령 코드(OPCODE)	7

5) 제어기 상태정보 요청	8

6) 제어기 H/W Reset (Power Reset)	9

7) 제어기 S/W Reset	9

8) 환경 Parameter(Fan/Heater 동작온도) 설정	10

9) 환경 Parameter(Fan/Heater 동작온도) 요구	10

10) 촬상부 제어( P/T, Lens 제어)	11

11) Preset Value 이동	12

12) Preset Value 입력	13

13) Preset Value 선택	13

14) Preset Value 삭제	14

15) Preset 조회	14

16) 고정문자 표출환경 설정	15

17) 가변문자 표출환경 설정	16

18) 설정 문자 지우기	17

제3장 VMS 인터페이스 정의	18

1. 개요	18

2. VMS PROTOCOL 개요	18

3. 메시지(Message) 구조	25

4. 통신 메시지 유형	29

1) 문자식	29

2) 도형식	47

제1장 센터 시스템 간 인터페이스 정의

구미시 도시지역 광역교통정보 기반확충사업(UTIS)

	인터페이스 정의서	문서번호 :
		개정번호 : V1.0
	공통
		쪽 번 호 : 쪽

1. 개요

센터 내부의 프로세스 간 인터페이스는 Packet통신을 이용하며, 통신 방식 및 구성은 본 문서에 정의된 형식을 따른다.

2. 통신환경 설정

- Packet의 최대 사이즈는 1024byte로 제한하며 업무의 특성상 대용량(1024byte 이상) 데이터를 전송하여야 할 경우에는 Multi Packet 구조로 나눠서 전송하도록 한다.

- Byte Ordering은 Big Endian 방식(UNIX Byte order)을 사용한다.

3. 기본 프레임 형식

항목		크기	내용
Header	송신 시스템	1 BYTE	송신 system ID
	수신 시스템	1 BYTE	수신 system ID
	전체 프레임 갯수	1 BYTE	멀티 패킷인 경우 사용. 아니면 1
	현재 프레임 번호	1 BYTE	멀티 패킷인 경우 사용. 아니면 1
	Reserved	1 BYTE	Reserved
	명령어	1 BYTE	opcode
	길이	4 BYTE	데이터의 길이
Body	데이터	N BYTE	내부 프레임 형식(각 서브시스템 별로 세부구조를 가짐)

4. 시스템 정의

- 통신대상은 시스템 ID로 구분하고, 세부 프로세스는 PORT로 구분한다.

시스템 ID	명칭	PORT	통신방식	비고
0x01	가공서버	4602	UDP
0x02	신호제어서버			본 사업에서는 사용안함
0x03	신호통신서버			본 사업에서는 사용안함
0x04	VDS 서버			본 사업에서는 사용안함
0x05	AVI 서버			본 사업에서는 사용안함
0x06	DSRC 서버	5000	TCP	본 사업에서는 사용안함
0x07	VMS 서버
0x08	CCTV 서버
0x09	WEB 서버			본 사업에서는 사용안함
0x0A	UTIS 서버			본 사업에서는 사용안함
0x0B	기상청 연계 서버			본 사업에서는 사용안함
0x0C~0x20	Reserved			서버시스템 ID 예비코드
0x21	통합운영단말
0x22	상황판운영단말
0x23	신호운영단말			본 사업에서는 사용안함
0x24	VDS운영단말			본 사업에서는 사용안함
0x25	AVI운영단말			본 사업에서는 사용안함
0x26	DSRC운영단말			본 사업에서는 사용안함
0x27	VMS운영단말
0x28	CCTV운영단말
0x29	시설물관리단말			본 사업에서는 사용안함
0X2A	UTIS관리단말			본 사업에서는 사용안함
0x2B~0x30	Reserved			운영단말시스템 ID 예비코드

5. 프로토콜 목록

1) 명령어 목록

순번	명령어	내용	송신	수신	비고
1	0x01	교통정보가공완료	가공서버	통합운영단말 상황판운영단말	UDP

6. 상세 프로토콜

1) 가공서버-운영단말 인터페이스 정의

i) 개요

가공서버에서 교통정보가공완료 시점에 각 시스템에 완료여부를 통보한다. 이를 위한 가공서버-운영단말간의 인터페이스를 정의한다.

ii) 통신환경 설정

- 기본 포트번호 : 4602

iii) 내부 프레임 형식

- 없음

iv) 상세 프로토콜

a. 교통정보가공완료

구분	항목	크기	값/내용
Header	송신 시스템	1 BYTE	0x01
	수신 시스템	1 BYTE	0x21, 0x22
	전체 프레임 갯수	1 BYTE	1
	현재 프레임 번호	1 BYTE	1
	Reserved	1 BYTE	-
	명령어	1 BYTE	0x01
	길이	4 BYTE	0
Body	데이터	N BYTE	-

제2장 CCTV 인터페이스 정의

1. 개요

본 프로토콜은 센터 제어서버와 현장 CCTV 제어기(리시버)의 인터페이스 사양과 제어 운영방식 및 그 상세 프로토콜 규약을 정의한다. 센터 제어서버와 현장 제어기는 이더넷 기반의 TCP/IP 및 시리얼 통신을 동시에 지원한다. 즉 NVR 혹은 VIEWER 서버(시리얼 인터페이스) 및 제어 서버(이더넷 인터페이스)의 제어 명령 모두를 CCTV 제어기는 수용한다. 다만 각 인터페이스의 제어 우선순위는 센터 내부적으로 결정되어야 한다. 통신 프로토콜은 본선 및 터널 공용으로 적용되며 각 특성에 따라 적용되지 않는 내용은 센터 내부적으로 배제한다.

2. 통신구성

* 에러체크

에러체크를 위한 CRC-16은 DLE Stuffing하기 이전의 어드레스, 명령코드, 데이터 SIZE 및 데이터를 이용 계산한다. IEEE의 표준 CRC-16 생성은 다음과 같다.

X16+X15+X2+1

<CRC-16 Source Code>

unsigned int Crc16(unsigned char* rdata, unsigned int len)

{

int i,n;

unsigned int wCrc = 0xffff;

unsigned int wCh;

for(i=0; i<len; i++)

{

wCh = (uword) *(rdata+i);

for( n=0;n<8;n++)

{

if((wCh^wCrc) & 0x0001)  wCrc = (wCrc >> 1) ^ 0xa001;

else wCrc >>=1;

wCh >>=1;

}

}

return wCrc;

}

* BYTE ORDERING

구성된 통신 프레임의 왼쪽부터 먼저 전송하거나 WORD의 High Byte를 먼저 전송한다. 다시 말해, 어드레스, Multi-Byte Data 및 CRC-16 등은 먼저 High-Order Byte를 전송한다.

* DLE STUFFING

HEADER와 TAIL을 제외한 데이터 영역에 DLE와 같은 데이터가 존재하면 DLE를 추가하여 전송한다.

* 프로토콜 운영방식

모든 프로토콜 운영은 CCTV 제어기(리시버)가 서버가 되고 제어서버가 클라이언트가 된다.

제어 명령은 두 가지 유형으로 상태정보 등 주기적 요청과 촬상부 제어 등 사용자 개입제어 명령으로 구분 된다. 또한 제어기의 모든 응답 프레임은 기본 상태정보를 포함한다.

제어기는 서버가 되며 Multi Listen을 제공한다. 가장 마지막 접속 및 통신성공(프로토콜에 맞는 명령을 송신 한)한 클라이언트가 주 클라이언트가 되며, 이전 클라이언트는 통신을 끊는 방식으로 운영되어야 한다

3. 메시지 구조

1) 명령 메시지 구조

HEADER		IDENTIFIER		DATA	TAIL		CRC
DLE	STX	ADDR	OPCODE	DATA	DLE	ETX	CRC
0	1	2~3	4	4+N	5+N	6+N	7&8+N

구분		내용	값	형식	크기
HEADER	DLE	Data Link Escape	0x10	Byte	1
	STX	Start Transmission	0x02	Byte	1
IDENTIFIER	ADDR	제어기 어드레스	가변	Byte	2
	CODE	명령 메시지 유형	가변	Byte	1
DATA	DATA	명령유형에 따른 데이터	가변	Byte	N
TAIL	DLE	Data Link Escape	0x10	Byte	1
	ETX	End Transmission	0x03	Byte	1
CRC	CRC	CRC-16 에러체크	가변	Byte	2

2) 응답 메시지 구조

HEADER		IDENTIFIER		STATUS	DATA	TAIL		CRC
DLE	STX	ADDR	OPCODE	STATUS	DATA	DLE	ETX	CRC
0	1	2~3	4	5~8	8+N	9+N	10+N	11&12+N

구분		내용	값	형식	크기
HEADER	DLE	Data Link Escape	0x10	Byte	1
	STX	Start Transmission	0x02	Byte	1
IDENTIFIER	ADDR	제어기 어드레스	가변	Byte	2
	CODE	명령 메시지 유형	가변	Byte	1
STATUS	STATUS	기본 제어기 상태 정보	가변	Byte	4
DATA	DATA	명령유형에 따른 데이터	가변	Byte	N
TAIL	DLE	Data Link Escape	0x10	Byte	1
	ETX	End Transmission	0x03	Byte	1
CRC	CRC	CRC-16 에러체크	가변	Byte	2

3) 제어기 기본 상태 정보 (STATUS)

구분		내용
BYTE1	Bit 0	Door 개폐상태(0:닫힘, 1:열림)
	Bit 1	Video Input(0:정상, 1:fail)
	Bit 2	Fan On(0:off, 1:on)
	Bit 3	Heater On(0:off, 1:on
	-	-
	-	-
	-	-
	-	-
BYTE2	-	Reserved 1
BYTE3	-	Reserved 2
BYTE4	-	Reserved 3

4) 명령 코드(OPCODE)

CODE	내용	구분	비고
0x20	제어기 상태정보 요청	Polling	상태정보요청, 상태정보전송 방식
0x21	제어기 H/W Reset(Power Reset)	개입제어
0x22	제어기 S/W Reset	개입제어
0x23	환경 Parameter 설정	개입제어	Fan/Heater 동작 설정
0x24	환경 Parameter 요구	개입제어	동작 설정값 요청
0x30	촬상부 제어(P/T, Lens제어)	개입제어	P/T/Z/F Go/Stop
0x31	Preset Value 이동	개입제어	P/T/Z/F Value로 이동
0x33	Preset Value 입력	개입제어	P/T/Z/F Value를 입력
0x34	Preset Value 선택	개입제어	P/T/Z/F Value를 선택
0x35	Preset Value 삭제	개입제어	P/T/Z/F Value를 삭제
0x36	Preset Value 조회	개입제어	P/T/Z/F Value를 조회
0x41	고정문자 표출 환경 설정	개입제어	-
0x42	가변문자 표출 환경 설정	개입제어	-
0x43	설정 문자 지우기	개입제어	-

O : 해당사항

△ : 해당사항에 대하여 대응 가능함

5) 제어기 상태정보 요청

이 메시지를 수신한 제어기는 현장 장비의 운영 상세정보를 전송한다. 상태정보는 제어서버(클라이언트)가 요청하는 경우 정보를 반환하는 방식(Sync)과 제어기에서 특정 이벤트 혹은 주기 시 상태정보를 반환하는 방식으로 운영된다.

* COMMAND

HEADER		IDENTIFIER		DATA	TAIL		CRC
DLE	STX	ADDR	OPCODE	Status Sync	DLE	ETX	CRC
0	1	2~3	4	5~6	7	8	9&10

- ADDR : CCTV 제어기 어드레스

- CODE :  0x20

- Status Sync : 상태정보 반환 동작 설정

- TOTAL SIZE = 11 Byte

< Status Sync >

* Event 방식의 경우 On/Off만 설정함, 함체온도/도어개폐/PTZF 상태값 변화 및 변화치 등의 Event 목록은 제어기 단에서 설정해야함

Sync Freq	Event
0: 요청 시 현재 상태정보 반환 1~250: Second 단위 주기로 상태정보 반환 255: 주기 상태정보 반환 해지	0 : Event 동작 해지 1 : Event 상태정보 동작

* RESPONSE

HEADER		IDENTIFIER		DATA		TAIL		CRC
DLE	STX	ADDR	OPCODE	STATUS	Information	DLE	ETX	CRC
0	1	2~3	4	5~8	9~20	21	22	23&24

- ADDR : CCTV제어기 어드레스

- CODE : 0x20

- STATUS : 제어기 정보(4Byte)

- Information : 각종 정보(8Byte)

- TOTAL SIZE = 25 Byte

BYTE	내용	범위	단위	비고
9~10	온도 값	-45~+127	℃	온/습도센서
11~12	전원값	-	-	-
13~14	Pan	0~1024	0점 대비 상대값	PTZF
15~16	Tilt	0~1024	0점 대비 상대값	PTZF
17~18	Zoom	0~1024	0점 대비 상대값	PTZF
19~20	Fucous	0~1024	0점 대비 상대값	PTZF

6) 제어기 H/W Reset (Power Reset)

이 메시지를 수신한 제어기는 전체 시스템 Power Reset를 수행한 후 응답 메시지를 보낸다.

HEADER		IDENTIFIER		TAIL		CRC
DLE	STX	ADDR	OPCODE	DLE	ETX	CRC
0	1	2~3	4	5	6	7&8

* COMMAND

- ADDR : CCTV 제어기 어드레스

- OPCODE :  0x21

- TOTAL SIZE = 9 Byte

* RESPONSE

HEADER		IDENTIFIER		DATA	TAIL		CRC
DLE	STX	ADDR	OPCODE	STATUS	DLE	ETX	CRC
0	1	2~3	4	5~8	9	10	11&12

- ADDR : CCTV제어기 어드레스

- CODE : 0x21

- STATUS : 상태 정보(4Byte)

- TOTAL SIZE = 13 Byte

7)  제어기 S/W Reset

이 메시지를 수신한 제어기는 S/W Reset를 수행한 후 응답 메시지를 보낸다.

HEADER		IDENTIFIER		TAIL		CRC
DLE	STX	ADDR	OPCODE	DLE	ETX	CRC
0	1	2~3	4	5	6	7&8

* COMMAND

- ADDR : CCTV 제어기 어드레스

- OPCODE :  0x22

- TOTAL SIZE = 9 Byte

* RESPONSE

HEADER		IDENTIFIER		DATA	TAIL		CRC
DLE	STX	ADDR	OPCODE	STATUS	DLE	ETX	CRC
0	1	2~3	4	5~8	9	10	11&12

- ADDR : CCTV제어기 어드레스

- CODE : 0x22

- STATUS : 상태 정보(4Byte)

- TOTAL SIZE = 13 Byte

8) 환경 Parameter(Fan/Heater 동작온도) 설정

제어기는 수신된 Parameter를 저장하고 Parameter값에 따라 현장장비의 환경을 조정한다.

* COMMAND

HEADER		IDENTIFIER		DATA	TAIL		CRC
DLE	STX	ADDR	OPCODE	Env Param	DLE	ETX	CRC
0	1	2~3	4	5~8	9	10	11&12

- ADDR : CCTV 제어기 어드레스

- CODE :  0x23

- TOTAL SIZE = 13 Byte

구분	내용
Byte 4	FAN On 온도(0~100) (Default : 30)
Byte 5	FAN Off 온도(0~100) (Default : 25)
Byte 6	Heater On 온도(0~100) (Default : 5)
Byte 7	Heater Off 온도(0~100) (Default : 10)

* RESPONSE

HEADER		IDENTIFIER		DATA		TAIL		CRC
DLE	STX	ADDR	OPCODE	Status	Env Param	DLE	ETX	CRC
0	1	2~3	4	5~8	9~12	13	14	15&16

- ADDR : CCTV제어기 어드레스

- CODE : 0x23

- STATUS : 제어기 정보(4Byte)

- TOTAL SIZE = 17 Byte

구분	내용
Byte 9	FAN On 설정 온도
Byte 10	FAN Off 설정 온도
Byte 11	Heater On 설정 온도
Byte 12	Heater Off 설정 온도

9) 환경 Parameter(Fan/Heater 동작온도) 요구

제어기는 수신된 Parameter를 저장하고 Parameter값에 따라 현장장비의 환경을 조정한다.

* COMMAND

HEADER		IDENTIFIER		TAIL		CRC
DLE	STX	ADDR	OPCODE	DLE	ETX	CRC
0	1	2~3	4	5	6	7&8

- ADDR : CCTV 제어기 어드레스

- CODE :  0x24

- TOTAL SIZE = 9 Byte

* RESPONSE

HEADER		IDENTIFIER		DATA		TAIL		CRC
DLE	STX	ADDR	OPCODE	Status	Env Param	DLE	ETX	CRC
0	1	2~3	4	5~8	9~12	13	14	15&16

- ADDR : CCTV제어기 어드레스

- CODE : 0x24

- STATUS : 제어기 정보(4Byte)

- TOTAL SIZE = 17 Byte

구분	내용
Byte 11	FAN On 설정 온도
Byte 12	FAN Off 설정 온도
Byte 13	Heater On 설정 온도
Byte 14	Heater Off 설정 온도

10) 촬상부 제어( P/T, Lens 제어)

이 메시지를 수신한 제어기는 촬상부를 요구명령에 따라 제어한다.

* COMMAND

HEADER		IDENTIFIER		DATA	TAIL		CRC
DLE	STX	ADDR	OPCODE	제어 DATA	DLE	ETX	CRC
0	1	2~3	4	5~9	10	11	12&13

- ADDR : CCTV 제어기 어드레스

- CODE :  0x30

- TOTAL SIZE = 14

BYTE	내용	설정값
5	P/T, LENS CONTROL	각 항목별 2Bit 할당
6	PAN SPEED	SPEED : 0~64
7	TILT SPEED	SPEED : 0~64
8	ZOOM SPEED	SPEED : 0~64
9	FOCUS SPEED	SPEED : 0~64

- P/T, Lens Control(Byte 5)

구분	해당 Bit	내용
Pan	Bit0~Bit1	0: Stop 1 : Left 2 : Right
Tilt	Bit2~Bit3	0: Stop 1 : Up 2 : Down
Zoom	Bit4~Bit5	0: Stop 1 : In 2 : Out
Focus	Bit6~Bit7	0: Stop 1 : Near 2 : Far

- Byte 6 ~ Byte 9

각 해당 항목별로 제어 속도 값으로 0~64 범위 내에서 가변속도를 지원한다.

* RESPONSE

HEADER		IDENTIFIER		DATA	TAIL		CRC
DLE	STX	ADDR	OPCODE	STATUS	DLE	ETX	CRC
0	1	2~3	4	5~8	9	10	11&12

- ADDR : CCTV 제어기 어드레스

- CODE :  0x30

- TOTAL SIZE = 13 Byte

11) Preset Value 이동

이 메시지를 수신한 제어기는 해당되는 PRESET 값의 위치로 촬상부를 제어한다.

* COMMAND

HEADER		IDENTIFIER		DATA	TAIL		CRC
DLE	STX	ADDR	OPCODE	Data	DLE	ETX	CRC
0	1	2~3	4	5-12	13	14	15&16

- ADDR : CCTV 제어기 어드레스

- CODE :  0x31

- TOTAL SIZE = 17 Byte

BYTE	내용	설정값
5-6	Pan Preset Value	0: Don't move, n: Preset Value
7-8	Tilt Preset	0: Don't move, n: Preset Value
9-10	Zoom Preset	0: Don't move, n: Preset Value
11-12	Focus Preset	0: Don't move, n: Preset Value

* RESPONSE

HEADER		IDENTIFIER		DATA	TAIL		CRC
DLE	STX	ADDR	OPCODE	STATUS	DLE	ETX	CRC
0	1	2~3	4	5~8	9	10	11&12

- ADDR : CCTV 제어기 어드레스

- CODE :  0x31

- TOTAL SIZE = 13 Byte

12)  Preset Value 입력

Preset 입력은 해당 CCTV의 영상을 통하여 위치를 입력하면 Preset 설정 번호와 함께 해당 CCTV제어기에 전송한다.

* COMMAND

HEADER		IDENTIFIER		DATA	TAIL		CRC
DLE	STX	ADDR	OPCODE	Data	DLE	ETX	CRC
0	1	2~3	4	5~13	14	15	16&17

- ADDR : CCTV 제어기 어드레스

- CODE :  0x33

- TOTAL SIZE = 18 Byte

- Data:

BYTE	내용	설정값
5-6	Pan Preset Value	n: Preset Value
7-8	Tilt Preset	n: Preset Value
9-10	Zoom Preset	n: Preset Value
11-12	Focus Preset	n: Preset Value
13	Preset No	프리셋 번호(1~10)

* RESPONSE

HEADER		IDENTIFIER		DATA	TAIL		CRC
DLE	STX	ADDR	OPCODE	STATUS	DLE	ETX	CRC
0	1	2~3	4	5~8	9	10	11&12

- ADDR : CCTV 제어기 어드레스

- CODE :  0x33

- TOTAL SIZE = 13 Byte

13) Preset Value 선택

CCTV　영상부의 Preset 위치를 설정하여 Preset 명령 수행시 해당 위치로 이동한다. Preset 설정은 해당 CCTV의 영상을 통하여 위치를 선정하면 Preset 설정 번호와 함께 해당 CCTV제어기에 전송한다.

* COMMAND

HEADER		IDENTIFIER		DATA	TAIL		CRC
DLE	STX	ADDR	OPCODE	Data	DLE	ETX	CRC
0	1	2~3	4	5	6	7	8&9

- ADDR : CCTV 제어기 어드레스

- CODE :  0x34

- TOTAL SIZE = 10 Byte

- DATA : Preset No(1~10)

* RESPONSE

HEADER		IDENTIFIER		DATA	TAIL		CRC
DLE	STX	ADDR	OPCODE	STATUS	DLE	ETX	CRC
0	1	2~3	4	5~8	9	10	11&12

- ADDR : CCTV 제어기 어드레스

- CODE :  0x34

- TOTAL SIZE = 13 Byte

14) Preset Value 삭제

CCTV　제어기에 해당되는 Preset 정보를 지운다.

* COMMAND

HEADER		IDENTIFIER		DATA	TAIL		CRC
DLE	STX	ADDR	OPCODE	Data	DLE	ETX	CRC
0	1	2~3	4	5	6	7	8&9

- ADDR : CCTV 제어기 어드레스

- CODE :  0x35

- TOTAL SIZE = 10 Byte

- DATA : Preset No(1~10)

* RESPONSE

HEADER		IDENTIFIER		DATA	TAIL		CRC
DLE	STX	ADDR	OPCODE	STATUS	DLE	ETX	CRC
0	1	2~3	4	5~8	9	10	11&12

- ADDR : CCTV 제어기 어드레스

- CODE :  0x35

- TOTAL SIZE = 13 Byte

15) Preset 조회

이 메시지를 수신한 CCTV 제어기는 요구 Preset 번호에 해당하는 값을 전송한다. Preset 번호가 0x00인 경우는 현재 값을 전송한다.

* COMMAND

HEADER		IDENTIFIER		DATA	TAIL		CRC
DLE	STX	ADDR	OPCODE	Data	DLE	ETX	CRC
0	1	2~3	4	5	6	7	8&9

- ADDR : CCTV 제어기 어드레스

- CODE :  0x36

- TOTAL SIZE = 10 Byte

- DATA : Preset No(1~10)

* RESPONSE

HEADER		IDENTIFIER		DATA	TAIL		CRC
DLE	STX	ADDR	OPCODE	Data	DLE	ETX	CRC
0	1	2~3	4	5~12	13	14	15&16

- ADDR : CCTV 제어기 어드레스

- CODE :  0x36

- TOTAL SIZE = 17 Byte

- Data:

BYTE	내용	설정값
5-6	Pan Preset Value	0: Don't move, n: Preset Value
7-8	Tilt Preset	0: Don't move, n: Preset Value
9-10	Zoom Preset	0: Don't move, n: Preset Value
11-12	Focus Preset	0: Don't move, n: Preset Value

16) 고정문자 표출환경 설정

이 메시지를 수신한 CCTV 제어기는 문자발생기에 고정문자 표출 환경을 설정하고 저장한다.

* COMMAND

HEADER		IDENTIFIER		DATA	TAIL		CRC
DLE	STX	ADDR	OPCODE	Data	DLE	ETX	CRC
0	1	2~3	4	n	5+n	6+n	7&8+n

- ADDR : CCTV 제어기 어드레스

- CODE :  0x41

- TOTAL SIZE = 9+n Byte

-DATA

문자초기화

구 분	내 용	범 위
Byte 5	Length	0x02
Byte 6	Command	0x01
Byte 7	Category	0x01

글자 표시

구 분	내 용	범 위
Byte 5	Length	5+N
Byte 6	Command	0x02(작은 글자) 0x03(중간 글자) 0x04(큰 글자)
Byte 7~8	X Position	0~1280
Byte 9~10	Y Position	0~720
Byte N	Character	N Byte

* RESPONSE

HEADER		IDENTIFIER		DATA	TAIL		CRC
DLE	STX	ADDR	OPCODE	STATUS	DLE	ETX	CRC
0	1	2~3	4	5~8	9	10	11&12

- ADDR : CCTV 제어기 어드레스

- CODE :  0x41

- TOTAL SIZE = 13 Byte

17) 가변문자 표출환경 설정

이 메시지를 수신한 CCTV 제어기는 문자발생기에 가변문자 표출 환경을 설정하고 저장한다.

* COMMAND

HEADER		IDENTIFIER		DATA	TAIL		CRC
DLE	STX	ADDR	OPCODE	Data	DLE	ETX	CRC
0	1	2~3	4	n	5+n	6+n	7&8+n

- ADDR : CCTV 제어기 어드레스

- CODE :  0x42

- TOTAL SIZE = 9+n Byte

-DATA

구 분	내 용	범 위
Byte 5	Sector No.	0~6
Byte 6	Start Pan High Value	0~1024
Byte 7	Start Pan Low Value
Byte 8	End Pan High Value	0~1024
Byte 9	End Pan Low Value
Byte 10	CH1 Character Size	Small: 0x02, Middle:0x03, Large:0x04
Byte 11~12	CH1 X Position Value	0~1280
Byte 13~14	CH1 Y Position Value	0~720
Byte 15	CH1 Character Length	N byte
Byte 16	CH2 Character Size	Small: 0x02, Middle:0x03, Large:0x04
Byte 17~18	CH2 X Position Value	0~1280
Byte 19~20	CH2 Y Position Value	0~720
Byte 21	CH2 Character Length	M byte
Byte N	CH1 Character	Max: 16char(kor),32char(eng)
Byte M	CH2 Character	Max: 16char(kor),32char(eng)

● Sector 0번은 Sector 1부터 Sector 6까지 지정 되어 있지 않은 영역에서 문자가 표출됩니다.

* RESPONSE

HEADER		IDENTIFIER		DATA	TAIL		CRC
DLE	STX	ADDR	OPCODE	STATUS	DLE	ETX	CRC
0	1	2~3	4	5~8	9	10	11&12

- ADDR : CCTV 제어기 어드레스

- CODE :  0x42

- TOTAL SIZE = 13 Byte

18) 설정 문자 지우기

이 메시지를 수신한 CCTV 제어기는 현재 화면상에 표출된 문자를 삭제한다.

* COMMAND

HEADER		IDENTIFIER		DATA	TAIL		CRC
DLE	STX	ADDR	OPCODE	Data	DLE	ETX	CRC
0	1	2~3	4	5~7	8	9	10&11

- ADDR : CCTV 제어기 어드레스

- CODE :  0x43

- TOTAL SIZE = 12 Byte

-DATA

구 분	내 용	범 위
Byte 5	Length	0x02
Byte 6	Command	0x01
Byte 7	Category	Sector No.

* RESPONSE

HEADER		IDENTIFIER		DATA	TAIL		CRC
DLE	STX	ADDR	OPCODE	STATUS	DLE	ETX	CRC
0	1	2~3	4	5~8	9	10	11&12

- ADDR : CCTV 제어기 어드레스

- CODE :  0x43

- TOTAL SIZE = 13 Byte

제3장 VMS 인터페이스 정의

1. 개요

가변정보 표지판(VMS)는 다음과 같은 목적을 달성하기 위하여 고속도로와 주변도로에 설치한다.

- 비 일상적이고 불안정한 도로조건 및 교통상황을 운전자에게 사전에 알려 잠재적인 문제에 주의하게 하며

- 대체도로가 있을 경우 혼잡한 도로에서 혼잡하지 않은 다른 도로로 교통류를 우회시켜 고속도로상의 교통혼잡을 원활하게 하고

- 고속도로간 또는 고속도로-국도간 교통량의 균형을 이루게 하여 안전하고 쾌적한 고속주행의 실현에 목적이 있다. 따라서, VMS는 전방의 교통상황 및 대체도로의 교통상황, 교통사고 정보, 차선 이용 안내, 기상정보등을 간단명료한 형태로 표지판에 표시하여 고속도로 이용자에게 제공하여야 한다.

2. VMS PROTOCOL 개요

가. 서론

VMS 제어기는 중앙 컴퓨터와 TCP/IP 기반으로 연결된다.

VMS제어기는 중앙컴퓨터의 클라이언트 형태로 연결되며 중앙컴퓨터는 서버가 된다.

나. 표준 통신 형식

CRC-16은 ADDRESS, OPCODE 및 DATA를 이용 계산한다.  이용하는 IEEE의 STANDARD CRC-16 생성다항식은 아래와 같다.

16    15    2

X   + X   + X  + 1

다. Byte Ordering

왼쪽 BYTE부터 먼저 전송하거나 WORD의 HIGH BYTE를 먼저 전송하는 BYTE 순서가 채택 되어야 한다.  다시말해, ADDRESS와 CRC-16 FIELD들은 먼저 그들의 HIGH-ORDER BYTE들을 전송하고 수신한다. 어떠한 MULTI-BYTE DATA형태도 동일하게 적용하여 최상위 BYTE를 먼저 송신하고 수신한다. 단 데이터 길이(DATA LENGTH)의 경우 하위 BYTE부터 송신한다.

라. 응답 처리

명령의 응답(Acknowledgement)에는  두가지가 있다.

● 어떤 MESSAGE 명령에 대한 ACK/NAK

만약 SLAVE 에서 어떤 Message 명령을 수신중에 ERROR가 감지된다면 NEGATIVE MESSAGE (NAK)를 응답하고, 만일 어떠한 ERROR도 감지되지 않는다면 POSITIVE ACKNOWLEDGEMENT(ACK)를 MASTER로 응답한다.

만약 명령어가 어떤 정보를 요청하는것일 경우 SLAVE는 요청된 정보를 포함하는 DATA PACKET으로 응답해야 한다. 전역 주소인 '0xFFFF'로 명령이 내려오면 모든 제어기는 이 명령을 실행 하지만 REPLY (ACK/NAK)는 하지 않는다.

● 상태 또는 DATA 응답을 위한 ACK/NAK

상태 또는 축척된 DATA를 MASTER로 보낼때 SLAVE는 HOST로 부터 ACK를 수신할때까지 가지고 있는 상태의 DATA를 CLEAR 또는 DATA의 RESET을 하지 말아야 한다. HOST의 ACK/NAK는 OPCODE의 최상위 Bit를 SET하여 다음 명령에 보낸다.

● 이 상황은 2개의 시나리오가 있다.

[ 시나리오 # 1 : No Transmission Error ]

Master               Slave

1 Status Occurred

0x0A

0x0B

0 Reset Cleared

0x8A

0x0B

[ 시나리오 # 2 : Transmission Error    ]

Master               Slave

1 Status Occurred

0x0A

0x0B

X

1 Status Occurred

0x0A

0x0B

0 Reset Cleared

0x8A

0x0B

The same scenario will apply for accumulated data request.

마. 메시지 표출특성

메시지의 특성은 표출될 전체 문장(Text), 그래픽 또는 복합적인 메시지의 표출방식을  정의한다.

● 복수 메시지 표출 기능 (상황이 복수로 발생하는 경우 사용)

0x00  :  단일 메시지 (1 Phase)

0x01  :  복수 메시지 (2 Phase)

● 표출 기능 - 문자식

0x00  :  좌우로 이동 (Shift)

기존화면 위에 다음화면을 겹쳐서  해당 방향으로 다음

화면만 밀면서 표출

0x01  :  상하로 이동 (Scroll)

기존 화면과 다음화면을 해당방향으로 밀면서 표출

0x02  :  소거 기능 (Wipe)

기존화면을 지우면서  해당방향으로 표출

0x03  :  커튼형 표출 (Curtain)

UP     =  수평으로 나누어 중앙을 향해  표출

DOWN   =          "       중앙에서 바깥쪽으로 표출

LEFT   =  수직으로 나누어 중앙을 향해 표출

RIGHT  =          "       중앙에서 바깥쪽으로 표출

0x04  :  트레이스 기능 (Trace)

한글자 크기에 대해  한칸씩 좌우로 표출

0x05  :  블라인드 기능 (Blind)

각 모듈별로 나누어 해당방향으로  동시에 표출

0x06  :  깜박임 (Flashing, Blinking)

0x07  :  정지 화면 (Stationary)

● 표출 방향 - 문자식

0x00  :  Up(아래에서 위로)

0x01  :  Down(위에서 아래로)

0x02  :  Left(오른쪽서 왼쪽으로)

0x03  :  Right(왼쪽에서 오른쪽으로)

● 표출 기능 - 도형식

구 분	목 록	코드	비 고
폼 표출유형	Static Normal	0x00	즉시 표출
	Shift(Up)	0x01	기존 화면 위에 다음 화면을 겹쳐서 위 방향으로 다음 화면만 밀면서 표출
	Shift(Down)	0x02	기존 화면 위에 다음 화면을 겹쳐서 아래 방향으로 다음 화면만 밀면서 표출
	Shift(Left)	0x03	기존 화면 위에 다음 화면을 겹쳐서 왼쪽 방향으로 다음 화면만 밀면서 표출
	Shift(Right)	0x04	기존 화면 위에 다음 화면을 겹쳐서 오른쪽 방향으로 다음 화면만 밀면서 표출
	Scroll(Up)	0x05	기존 화면과 다음 화면을 위 방향으로 밀면서 표출
	Scroll(Down)	0x06	기존 화면과 다음 화면을 아래 방향으로 밀면서 표출
	Scroll(Left)	0x07	기존 화면과 다음 화면을 왼쪽 방향으로 밀면서 표출
	Scroll(Right)	0x08	기존 화면과 다음 화면을 오른쪽 방향으로 밀면서 표출
	Wipe(Up)	0x09	기존 화면을 위 방향으로 지우면서 다음 화면을 표출
	Wipe(Down)	0x0a	기존 화면을 아래 방향으로 지우면서 다음 화면을 표출
	Wipe(Left)	0x0b	기존 화면을 왼쪽 방향으로 지우면서 다음 화면을 표출
	Wipe(Right)	0x0c	기존 화면을 오른쪽 방향으로 지우면서 다음 화면을 표출
	Curtain(수직 In)	0x0d	수직으로 나누어 중앙을 향해 안쪽으로 표출
	Curtain(수직 Out)	0x0e	수직으로 나누어 중앙에서 바깥쪽을 향해 표출
	urtain(수평 In)	0x0f	수평으로 나누어 중앙을 향해 안쪽으로 표출
	Curtain(수평 Out)	0x10	수평으로 나누어 중앙에서 바깥쪽을 향해 표출
	Trace(Right)	0x11	한 글자 크기에 대한 한 Line씩 오른쪽으로 표출
	Trace(Left)	0x12	한 글자 크기에 대한 한 Line씩 왼쪽으로 표출
	Blind(Up)	0x13	다음 화면을 수직 또는 몇 개의 화면으로 분할하여 위 방향으로 표출
	Blind(Down)	0x14	다음 화면을 수직 또는 몇 개의 화면으로 분할하여 아래 방향으로 표출
	Blind(Left)	0x15	다음 화면을 수직 또는 몇 개의 화면으로 분할하여 왼쪽 방향으로 표출
	Blind(Right)	0x16	다음 화면을 수직 또는 몇 개의 화면으로 분할하여 오른쪽 방향으로 표출
	Blinking	0x17	표출화면(폼) 전체 깜박임

● 표출 시간/기간

0x00 - 0xFE : 다음 메시지가 표출되기 전까지 display 해야할 시간

(0 초 ~ 254 초)

0xFF        : 다른 표출 명령이 올때까지 계속 display 한다.

사. 문자형(TEXT) 메시지 속성 정의

문자형 메시지의 속성은 아래의 Escape sequence를 사용하여 정의한다.

● Fill-IN 기능

Fill-In은  Fill-In 지정자 (3 Byte)를 미리 정의하여 처리한다

Fill-In 지정자 : @ + 번호 (2 Byte)

예) Fill-In 15번  : @(0x40) + (0x01) + (0x05)

Fill-In 02번  : @(0x40) + (0x00) + (0x02)

● Fill-In 지정자의 구분

Fill-In 지정자	비 고
@01 : 상류부 I/C 명 @02 : 하류부 I/C 명 @03 : 진출 Ramp 명 @04 : 고속도로 명 @05 : 방향 @06 : Event의 실제 이정 @07 : VMS와 Event 이정간 거리 @08 : 대기행렬 거리 @09 : 유고 조건 @10 : 권장 속도 @11 : 상류부 I/C 명 ..2 @12 : 하류부 I/C 명 ..2 @13 : 정체 조건 .. 1 @14 : 정체 조건 .. 2 @15 : 기상 조건 @16 : 공사구간 거리 @17 : 공사 개시일/시간 @18 : 공사 종료일/시간 @19 : 공사 교통상황 @20 : 정체구간 평균속도 @21 : 정체구간 주행시간 @21 - @99 : Reserved(향후 확장용)

● FILL-IN 파라미터

VMS 제어기는 Fill-In 지정자 @를 만나면  @ + 번호(2 Byte)를 전송된  Fill-In Data로 치환한다.

● Two Phase Message는 최대 6 Line을 가진다.

Fill-In 지정자는 한 Phase당 최대 10개가 들어갈 수 있으며 한개의 Fill-In 에는 최대로 한글 10자가 들어갈 수 있다.

● Centering Function [0x1b/0x61]

문자형 메시지의 중앙표시(Centering) 기능으로서, ESC/0x61을 사용하여 한 화면(phase)에 한번만 존재하며 Escape sequence의 맨처음에 위치한다. 이 Escape sequence를 만나면 각 라인별로 데이타를 중앙에서 좌.우 대칭 되게 표출한다.

● FONT 선택 기능 - 문자식(밑줄:반각)

- ESC/0x00 - 한글, 영문, 숫자, 특수문자    16 X 16 바탕체

- ESC/0x01 - 한글, 영문, 숫자, 특수문자    16 X 16 굴림체

- ESC/0x02 - 한글, 영문, 숫자, 특수문자    24 X 24 바탕체

- ESC/0x03 - 영문, 숫자                     8 X 16 바탕체

- ESC/0x04 - 한글, 영문, 숫자, 특수문자    32 X 32 바탕체

- ESC/0x05 - 한글, 영문, 숫자, 특수문자    32 X 32 굴림체

- ESC/0x06 - 영문, 숫자                    16 X 32 바탕체

- ESC/0x07 - 영문, 숫자                    12 X 24 바탕체

- ESC/0x08 - 한글, 영문, 숫자, 특수문자    24 X 24 굴림체

- ESC/0x09 - 한글, 영문, 숫자, 특수문자    48 X 48 바탕체

- ESC/0x0A - 한글, 영문, 숫자, 특수문자    48 X 48 굴림체

- ESC/0x0B - 영문, 숫자                    24 X 48 바탕체

- ESC/0x0C - 영문, 숫자                     8 X 16 굴림체

- ESC/0x0D - 영문, 숫자                    12 X 24 굴림체

- ESC/0x0E - 영문, 숫자                    16 X 32 굴림체

- ESC/0x0F - 영문, 숫자                    24 X 48 굴림체

- ESC/0x10 - 한글, 영문, 숫자, 특수문자    16 X 16 궁서체

- ESC/0x11 - 한글, 영문, 숫자, 특수문자    24 X 24 궁서체

- ESC/0x12 - 한글, 영문, 숫자, 특수문자    32 X 32 궁서체

- ESC/0x13 - 한글, 영문, 숫자, 특수문자    48 X 48 궁서체

● FONT 굵기 선택 기능

- ESC/0x51 - 굵게

- ESC/0x52 - Normal

● FONT 선택 기능 - 도형식

폰트 종류	명조체	0x20
	고딕체	0x21
	바탕체	0x22
	굴림체	0x23
	돋움체	0x24
	궁서체	0x25
폰트 굵기	굵게	0x00
	가늘게	0x01
폰트의 크기	6 폰트	0x06	6 ~ 63 폰트 범위내에서 VMS 표출 전략과 연계하여 폰트크기를 조절하여 사용한다
	7 폰트	0x07
	8 폰트	0x08
	9 폰트	0x09
	...	...
	63 폰트	0x3f

● 문자의 색상  선택 기능 - 공통

- ESC/0x30 - 흑 색 (Black)

- ESC/0x31 - 적 색 (Red)

- ESC/0x32 - 녹 색 (Green)

- ESC/0x33 - 호박색 또는 황색 (Amber)

● 배경색  선택 기능 - 공통

- ESC/0x40 - 흑 색 (Black)

- ESC/0x41 - 적 색 (Red)

- ESC/0x42 - 녹 색 (Green)

- ESC/0x43 - 호박색 또는 황색 (Amber)

● 줄(행) 분리 기능

- ESC/0x50 - 개행 문자

● 제한 사항

문자형 메시지는 KSC5601(행망표준 2 BYTE형, 특수문자 포함) 코드를 사용해서 표시한다. 문자 특성(Text Attributes)은 새로운 Escape Sequence가 나타나서 그 정의를 바꿀때까지 현재의 특성을 유지한다. 메시지 형태(Type) 별로  Library number가 구분되어야 한다.

● LIBRARY 메시지 번호의 범위

- Text Message Number                : 1000 - 5999

- Graphic Symbol Message Number      : 6000 - 7999

- 동영상 Message Number              : 8000 - 8499

- 스트리밍 영상 Message Number       : 8500 - 8999

- Full Graphic Message Number        : 9000 - 9998

- 고정 Full Graphic Message Number        : 9999

- Message Number 0는 Default Message

● LIBRARY 메시지 예

MSG-ID	1 Phase			2 Phase
	1 줄	2 줄	3 줄	1 줄	2 줄
I1101	전방 @07Km지점	사고로 @09		전방 @07Km지점	사고로
I1122	@01 - @02간	화재운전주의			@09@08Km
I1006	@11 @13	@12 @14

3. 메시지(Message) 구조

- 문자식 / 도형식

DLE	STX	ADDR	OPCODE	DATA FIELD [N]	DLE	ETX	CRC-16
0	1	2-3	4	N	5+N	6+N	7+N & 8+N

데이터 필드 부분

송신 Frame No.	전체 Frame No.	Data Length	Data
5	6	7-10	n

OP Code에 따라서 송․수신되는 데이터의 내용으로 ACK, NAK 또는 요구데이터가 들어있다.

※ VMS서버에서 생성되는 폼은 32X32을 기준으로 작성되어 VMS제어기로 전송한다.

● DLE/STX    : [FRAME HEADER]

메시지의 시작 부분 (각 1 BYTE)

DLE = 10H

STX = 02H

● ADDRESS : CONTROLLER STATION NUMBER (2 BYTE)

[BYTE 1]   GROUP NUMBER

[BYTE 2]   CONTROLLER NUMBER

● OPCODE     : COMMAND/REPLY MESSAGE TYPE

● DATA FIELD : OPCODE 의 종류별로 상이함

(DLE stuffing is conformed to BSC protocol rule.)

● DLE/ETX    : [FRAME TERMINATOR]

메시지의 끝부분 (각 1 BYTE)

DLE = 10H

ETX = 03H

● CRC-16 : IEEE'S STANDARD CYCLIC REDUNDANCY CHECK CODE(2BYTE)

Polynominal = X ^ 16 + X ^ 15 + X ^ 2 + 1

● DATA FIELD 의 크기는 OPCODE 별로  유동적임

●  OPCODE 종류

- 문자식 [ 1( 0x01) ~ 127( 0x7f ) ]

1)  Display Immediate Text                Opcode = 2  [0x02]  ⇔ Opcode = 72 [0x48]

2)  Display Immediate graphics            Opcode = 4  [0x04]  ⇔ Opcode = 72 [0x48]

3)  Display Library Message               Opcode = 6  [0x06]  ⇔ Opcode = 72 [0x48]

4)  Download  A Message Library           Opcode = 8  [0x08]  ⇔ Opcode = 72 [0x48]

5)  Download Graphics Library             Opcode = 10 [0x0A]  ⇔ Opcode = 72 [0x48]

6)  Download Graphic Symbol Library       Opcode = 12 [0x0C]  ⇔ Opcode = 72 [0x48]

7)  Display Schedule Message              Opcode = 14 [0x0E]  ⇔ Opcode = 72 [0x48]

8)  Initailize                            Opcode = 18 [0x12]  ⇔ Opcode = 72 [0x48]

9)  Display Test Pattern                  Opcode = 20 [0x14]  ⇔ Opcode = 72 [0x48]

10) Blank                                 Opcode = 22 [0x16]  ⇔ Opcode = 72 [0x48]

11) Status Request                        Opcode = 24 [0x18]  ⇔ Opcode = 64 [0x40]

12) Failed Element Data Request           Opcode = 26 [0x1A]  ⇔ Opcode = 66 [0x42]

13) Download Parameter                    Opcode = 28 [0x1C]  ⇔ Opcode = 72 [0x48]

14) Display Default Message               Opcode = 30 [0x1E]  ⇔ Opcode = 72 [0x48]

15) Set Luminance Level                   Opcode = 32 [0x20]  ⇔ Opcode = 72 [0x48]

16) Upload A Message                      Opcode = 34 [0x22]  ⇔ Opcode = 68 [0x44]

17) Upload Schedule Message               Opcode = 35 [0x23]  ⇔ Opcode = 69 [0x45]

18) Signboard Power Control               Opcode = 36 [0x24]  ⇔ Opcode = 72 [0x48]

19) Message Echo Back                     Opcode = 38 [0x26]  ⇔ Opcode = 70 [0x46]

20) Upload Module Status                  Opcode = 40 [0x28]  ⇔ Opcode = 74 [0x4A]

21) Signboard Alarm Control               Opcode = 42 [0x2A]  ⇔ Opcode = 72 [0x48]

(‘01. 4. 터널관리용으로 추가)

23) 동영상 파일 FTP 다운로드              Opcode = 44 [0x2C]  ⇔ Opcode = 72 [0x48]

24) 동영상 파일 FTP 다운로드 완료         Opcode = 46 [0x2E]

25) 함체 PAN/HEATER 온도 설정             Opcode = 49 [0x31]  ⇔ Opcode = 72 [0x48]

26) 함체 PAN/HEATER 온도 요청	Opcode = 50 [0x32]  ⇔ Opcode = 66 [0x42]

- 도형식 [ 128 ( 0x80 ) ~ (0xff) ]

OP CODE	명 칭	센터	설 명	방 향
0x80	폼 데이터 표출	송신	표출할 폼 데이터 송신	센터 → VMS
		수신	수신 여부 응답( ACK/NAK )	센터 ← VMS
0x82	데이터 다운로드	송신	INI, CFG , Bitmap , Data파일송신	센터 → VMS
		수신	수신 여부 응답( ACK/NAK )	센터 ← VMS
0x84	데이터 업로드	송신	INI, CFG , Bitmap , Data파일 업로드 요구	센터 → VMS
		수신	업로드 데이터 전송	센터 ← VMS
0x86	VMS 상태제어	송신	VMS 제어정보 송신	센터 → VMS
		수신	수신 여부 응답( ACK/NAK )	센터 ← VMS
0x88	VMS Status 요구	송신	VMS 상태정보 요구 송신	센터 → VMS
		수신	상태 데이터 응답	센터 ← VMS
0x8A	VMS 파라미터 요구	송신	VMS 로컬 상태 요구 송신	센터 → VMS
		수신	로컬 상태 데이터 응답	센터 ← VMS
0x8C	전원 모듈 상태 요구	송신	전원 모듈 상태를 검사 결과를 요청한다	센터 → VMS
		수신	전원 모듈 상태 데이터 응답	센터 ← VMS
0x8E	표출 모듈 상태 요구	송신	표출 모듈 상태를 검사 결과를 요청한다	센터 → VMS
		수신	표출 모듈 상태 데이터 응답	센터 ← VMS
0x92	VMS Pixel Image 요구	송신	VMS LED Pixel 상태요구 송신	센터 → VMS
		수신	현재표출중인 LED 상태 Pixel 송신	센터 ← VMS
0x94	현재표출폼 Upload	송신	Local에서 표출 중인 폼 Upload요구	센터 → VMS
		수신	현재표출중인 전체폼 송신	센터 ← VMS
0x96	Display Schedule Form	송신	계획된 Form 표출 요구	센터 → VMS
		수신	수신 여부 응답( ACK/NAK )	센터 ← VMS
0x98	Display Default Form	송신	디폴트 From표출 요구	센터 → VMS
		수신	수신 여부 응답( ACK/NAK )	센터 ← VMS
0x9A	Download Form	송신	Form download	센터 → VMS
		수신	수신 여부 응답( ACK/NAK )	센터 ← VMS
0x9C	Upload Schedule Form	송신	스케줄 메시지 업로드 요구	센터 → VMS
		수신	스케줄 메세지 전송	센터 ← VMS
0x9E	Blank	송신	schedule 표출	센터 → VMS
		수신	수신 여부 응답( ACK/NAK )	센터 ← VMS
0xA0	Display Form ID	송신	Form ID에 해당하는 Form 표출	센터 → VMS
		수신	수신 여부 응답( ACK/NAK )	센터 ← VMS

0xA1 : 동영상 파일 FTP 다운로드

0xA2 : 동영상 파일 FTP 다운로드 완료

나. 응답 메시지 구조

DLE	STX	ADDR	OPCODE	STATUS	DATA FIELD [N]	DLE	ETX	CRC-16
0	1	2-3	4	5 & 6	7	7+N	8+N	9+N & 10+N

● OPCODE 종류

(1) 제어기 상태 보고                    Opcode = 64 [0x40]

(2) 모듈별 고장상태 보고                Opcode = 66 [0x42]

(3) Upload A Message                    Opcode = 68 [0x44]

(4) Upload Schedule Message             Opcode = 69 [0x45]

(추가 : '96. 12. 17)

(5) Echo 메시지 Up-load                 Opcode = 70 [0x46]

(6) ACK/NAK 응답                        Opcode = 72 [0x48]

- 도형식

ACK, NAK 송신

1) ACK 전송

ACK 전송시에는 Data Field에 ACK값(0x06)을 추가하여 결과를 전송한다.

2) NAK 전송

NAK전송시에는 DataField에 NAK값(0x15)를 추가하여 전송하고 추가로 오류사유를 아래와 같이 추가하여 전송한다. DATA Field : NAK( 0x15 + 오류사유 )

NAK(0x15) + 오류사유코드(1Byte).

오류코드	오류사유	비 고
0x30	Data Length가 2,047 Byte 보다 크면 보고되는 오류
0x31	Data Length 이후의 데이터가 Data Length + 5Byte가 되지 않는 오류
0x32	데이터 크기 불일치
0x33	작업이전 작업 진행중 작업요구
0x34	파라미터 범위 초과
0x35	저장되지 않은 폼데이터 요구
0x36	업무처리 해당사항 없음	알수없는 OpCode
0x37	STN Address 틀림
0x38~9F	예비	특성에 맞게 정의함

STX 수신 후 데이터 오류 검사

OP Code가 0이면 오류로 판단하여 데이터를 버리고 다시 STX를 기다린다.

송신 Frame No > 전체 Frame No 이면  오류로 판단하여 데이터를 버리고 다시 STX를 기다린다.

ACK/NAK 또는 데이터 응답 시 OPCODE, FRAME NO는 수신 받은 데이터로 응답한다. 단, 서버에서 송신한 STN address는 로컬에서 자신의 고유 STN adress로 응답한다.

4. 통신 메시지 유형

1) 문자식

(1) Display Immediate Text

라이브러리에 존재하지 않는 메시지의 표시를 요구한다. 두 위상(Two Phase)의 메시지는 하나의 전송 Packet을 이용하여 보내지며 Escape Sequence는 뒤에 따라오는 메시지 문자열의 특성을 정의한다. 메시지 문자열은 새로운 특성(attribute)을 만날때까지 현재의 특성(current

attribute)을 유지한다.

● COMMAND

- OPCODE (MESSAGE TYPE) =   2  [0x02]

- TOTAL MESSAGE SIZE    = 655  BYTES

- DATA BYTE

[BYTE 1]        = ONE/TWO Phase

[BYTE 2]        = Display Function

[BYTE 3]        = Display Direction

[BYTE 4]        = Display Time (0xFF일 경우 계속 표출)

[BYTE 5 - 646]  = Escape Sequence/KSC5601(2byte code)

* Byte   5 - 325  :  1 Phase 데이타

* Byte 326 - 646  :  2 Phase 데이타

* 만일 1 Phase만인 경우에는 325 Byte까지만 보내도 된다.

※ Display Time 종료후  Schedule이 Display 되어야 한다.

● RESPONSE (ACK/NAK 정보)

특별한 응답이 보내지지 않을때 항상 HOST 로 보내어진다.

VMS 제어기의 상태기록기에 따라 장애의 상태를 나타낸 지정된

형태로 보낸다.

- OPCODE (MESSAGE TYPE) =    72  [0x48]

- DATA BYTE

[byte 1]  Bit 0  :  이해할 수 없는 명령 수신

Bit 1  :  이전 명령어 처리중

Bit 2  :  라이브러리에 등재되지 않은 메시지 요구

Bit 3  :  해당 Slot 없음

Bit 4  :  파라미터가 범위를 벗어남

Bit 5  :  표출 에러

Bit 6  :  CRC-16 검사 에러

Bit 7  :  Memory Overflow

(2) Display Immediate Graphics

라이브러리에 존재하지 않는 그래픽의 표시를 요구하며  BIT-MAP으로된 DATA 메시지를 송출한다. 두 위상(Two Phase)의 메시지는 하나의 전송 Packet을 이용하여 보내고, 전체가 그래픽 데이타로 구성되며 길이는 고정이다.

● COMMAND

- OPCODE (MESSAGE TYPE) =   4    [0x04]

- TOTAL MESSAGE SIZE    =   18445  BYTES (1 Phase의 경우)

=   36877  BYTES (2 Phase의 경우)

- DATA BYTE

[BYTE 1]              =   ONE/TWO Phase

[BYTE 2]              =   Display Function

[BYTE 3]              =   Display Direction

[BYTE 4]              =   Display Time

[BYTE 5     - 9220]   = Red data   (1st Phase)

[BYTE 9221  - 18436]  = Green data (1st Phase)

[BYTE 18437 - 27652]  = Red data

(2nd Phase if necessary))

[BYTE 27653 - 36868]  = Green data

(2nd Phase if necessary)

* 만일 1 Phase만인 경우에는 18436 Byte까지만  보내도 된다.

● RESPONSE (ACK/NAK 정보)

(3) Display Library Message

Library message의 표시를 요구한다. Message number는 요구시 함께 보낸다.  Dynamic 정보(Text message)는 message에 덧붙여 완벽하게 표시되어야 한다.  만약 library message가 Non fill-in message이면 download 된대로 표시한다.

만약 library message가 Fill-in message이고 escape sequence가 Fill-in data 크기만큼 제공되지 않는다면 이 명령은 거절한다. Display Time은 Forever이다.

● COMMAND

- OPCODE (MESSAGE TYPE) =    6  [0x06]

- TOTAL MESSAGE SIZE    =  431  BYTES

- DATA BYTE

[BYTE 1 - 2]    =   라이브러리 메시지 번호

[BYTE 3 - 422]  =   fill-in 데이타

(Escape Sequence/KSC5601(2byte code))

※ Fill-In을  구분하기 위해서  각 Fill-In 사이에는  0x1b/0x50

(개행문자)으로 구분한다.

0x06       :  OPCODE 6번 (라이브러리 메시지 출력 명령)

0x03 0x29  :  라이브러리 메시지 번호 #1001

양재 0x1b 0x50 서초 0x1b 0x50 0x00 ... 0x00  0x00  0x00

개행문자       개행문자

└────→  Byte 3 - 422  Fill-In 데이타  ←────┘

※ VMS 제어기는 Fill-In 지정자 @를 만나면  @ + 번호를 전송된 Fill-In 데이타로 치환한 후 Centering이 지정되어 있으면 치환된 Data를 Centering 하여 표출한다

<< Down 되어 있는 데이타 >>

0x03 0x29  :  라이브러리 메시지 번호 #1001

0x1B 0x61  :  Centering 기능

0x1B 0x40  :  검정색 배경

0x1B 0x33  :  호박색 (Amber) 문자 표시

0x03 0x00  :  한글, 영문 16 X 16 명조체

<< Library 표출 메시지 (예) >>

0x06       :  OPCODE 6번 (라이브러리 메시지 출력 명령)

0x03 0x29  :  라이브러리 메시지 번호 #1001

● RESPONSE (ACK/NAK 정보)

(4) Download A Message Library

메시지를 라이브러리에  저장하도록 요구한다. 메시지와  Slot 번호는 요구시 함께 보내며, 문자열의 양쪽 또는 한쪽에 덧붙여 표시되어야할 그래픽 심볼번호도 같이 보낸다. 그래픽 심볼 번호가 0(Zero)이면 그래픽 심볼이 없는 것으로 가정한다. 두 위상(two phase)의 메시지는 하나의 전송 Packet을 이용하여 보내진다.

● COMMAND

- OPCODE (MESSAGE TYPE) =    8  [0x08]

- TOTAL MESSAGE SIZE    =  660  BYTES

- DATA BYTE

[BYTE 1]        =   위상 구분 (One/Two Phase)

[BYTE 2]        =   표출 기능

[BYTE 3]        =   표출 방향

[BYTE 4 - 5]    =   라이브러리 메시지 번호

[BYTE 6 - 7]    =   좌측 그래픽 심볼 번호

[BYTE 8 - 9]    =   우측

[BYTE 10 - 651] =   표현하고자 하는 메시지 내용

Escape Sequence/KSC5601(2byte code)

[95/1/5 추가]

* 만일 1 Phase만인 경우에는  330 Byte까지만  보내도 된다.

* 좌측 그래픽 심볼 번호가 8000-8499번이면

해당 번호의 동영상 파일이 재생됩니다.

* 좌측 그래픽 심볼 번호가 8500-8999번이면

해당 번호의 스트리밍 영상이 재생됩니다.

스트리밍 서버 IP 주소 연결 구성은 다음과 같습니다.

8590 - 60.60.64.90    8690 - 60.60.65.90

8591 - 60.60.64.91    8691 - 60.60.65.91

...                   ...

8599 - 60.60.64.99    8699 - 60.60.65.99

8700 - 60.60.65.100

8701 - 60.60.65.101

8702 - 60.60.65.102

포트번호(2222), Username(admin), Password(1234) 고정

제어기의 Config.ini에서 수정 가능함.

* 동영상은 좌측에 2단 3열((Y)64x(X)96Pixel)로 표시한다.

● RESPONSE (ACK/NAK 정보)

(5) Download Graphics Library (Full Graphic Data)

라이브러리 메시지에  새로운  그래픽 메시지를 저장하도록 요구한다. 그래픽 메시지와  Slot 번호는 요구시 함께 보내며, 하나의 전송 PACKET을 이용하여 두위상의 전문을 송신할 수 있다

● COMMAND

- OPCODE (MESSAGE TYPE) =   10 [0x0A]

- TOTAL MESSAGE SIZE    =   18446  BYTES (1 Phase의 경우)

=   36878  BYTES (2 Phase의 경우)

- DATA BYTE

[BYTE 1]              =   위상 구분 (One/Two Phase)

[BYTE 2]              =   표출 기능

[BYTE 3]              =   표출 방향

[BYTE 4 - 5]          =   라이브러리 메시지 번호

[BYTE 6 - 9221]       =   적색 데이타 (1st Phase)

[BYTE 9222  - 18437]  =   녹색 데이타 (1st Phase)

[BYTE 18438 - 27653]  =   적색 데이타

(2nd Phase if necessary)

[BYTE 27654 - 36869]  =   녹색 데이타

(2nd Phase if necessary)

● RESPONSE (ACK/NAK 정보)

(6) Download Graphic symbol Library

Graphic Symbol의 크기는 3Module X 3Module (가로 X 새로) 이며 이 그래픽 심볼은 표지판의 양쪽 끝에 Display시킬 수 있고, 13 X 3 Module 크기의 표지판에서는 '좌' 또는 '우' 중  한쪽에만 사용할 수 있다.

특히 13 X 3 Module의 표지판에서 Graphic Symbol을 좌측에 Display 시킬 때는 동시에 Display되는 Text를 Centering해야만 하고, 우측에 Diaplay 시킬 때는 동시에 Display되는 Text를 Centering해서는 안된다. 이때 Graphic Symbol을 우측에 Display시키면 Text가 겹쳐서 Display된다.

● COMMAND

- OPCODE (MESSAGE TYPE) =   12  [0x0C]

- TOTAL MESSAGE SIZE    =  2317  BYTES

- DATA BYTE

[BYTE 1]              =   표출 기능

[BYTE 2]              =   표출 방향

[BYTE 3 - 4]          =   라이브러리 메시지 번호

[BYTE 5    - 1156]    =   적색 데이타

[BYTE 1157 - 2308]    =   녹색 데이타

● RESPONSE (ACK/NAK 정보)

(7) Display Schedule Message

이미 메세지 또는 그래픽에 정의되어진 속성, 표시방법을 정해진 요구메세지의 순서대로  교대하여 표출토록 하는 명령이다. 순서화된 메시지들은 일반 메시지(임의/라이브러리 메시지)가 BLANK 명령에 의해 지워질 때 마다 표출되어야 한다. 이 명령을 이용하여 최대 10개의 Library 메세지들을 정의할 수 있다.

일반 메시지가  BLANK 명령에 의해  지워지고  기본 메시지가 따로 정의되지 않은 상태에서, 라이브러리 메시지 번호가 제공되지 않는다면 표지판은 공백(BLANK) 상태에 있게 된다.

● COMMAND

- OPCODE (MESSAGE TYPE) =  14  [0x0E]

- TOTAL MESSAGE SIZE    =  39 BYTES (최대 10개 메시지 정의)

- DATA BYTE

[BYTE 1 - 2]        =   #1 라이브러리 메시지 번호

[BYTE 3]            =   출력 시간 (초)

[BYTE 4 - 5]        =   #2 라이브러리 메시지 번호

[BYTE 6]            =   출력 시간 (초)

.

[BYTE 28 - 29]      =   #10 라이브러리 메시지 번호

[BYTE 30]           =   출력 시간 (초)

● RESPONSE (ACK/NAK 정보)

(8) INITIALIZE

HOST가 VMS제어기를 복구시킬려고 할때 사용하며 VMS 제어기의 제어 프로그램을 재시동한다.  이때 VMS 제어기는 다음과 같이 작동한다.

- ROM & RAM 검사

- 기본 파라미터 값을  ROM에서 RAM으로 RELOAD

- 제어기의 고유 번지를 나타내는 DIP Switch 값을 RELOAD

- 통신용 제어기의  RESET

- "RESET 발생"과 "기본파라미터 이용"에 대한 ERR/STA flag를 지정

- Sign Board 의 전원을  재개시킨다

● COMMAND

- OPCODE (MESSAGE TYPE) =   18 [0x12]

- TOTAL MESSAGE SIZE    =   9  BYTES

● RESPONSE (ACK/NAK 정보)

※ Host Computer가 Power On되고  VMS 제어 프로그램이 기동되면

① Host는 모든 제어기를  Initialize 시킨다

② 기본 Parameter를 Down 시킨다

③ 라이브러리 메시지를 Down 시킨 후

④ 제어기의 통신상태가 정상이면  On-Line 상태로 들어간다

(Poll_ready)

(9) Display Test Pattern

지정된 표지판에 시험용 전문의 표시를 요구하며,  Host로 부터 명령이 주어지면 한 주기 동안만 표시하고 이전의 전문 상태로 복귀한다.

일단 명령이 주어지고 나면 다른 전문의 표시 또는 TEST 모드값이  TEST END 명령을 수신할 때까지 계속 표시된다. TEST 모드의 값이 ADDRESS 일 때의 표출 데이타 값은 항상 0xFF이어야 한다.

또한 TEST 모드값이 Pattern 인 경우의 명령은  "Failed Element Data Request" 명령을 실행하기 위한 것으로 이 명령을 주면 제어기는 약 20-30분간에 걸쳐 LED 모듈을 점검한다

● COMMAND

- OPCODE (MESSAGE TYPE) =   20  [0x14]

- TOTAL MESSAGE SIZE    =   12  BYTES

- DATA BYTE

[BYTE 1 : TEST 모드]      0   =   Test end

1   =   Address  (※)

2   =   Pattern

[BYTE 2 : 색상 지정]      0   =   흑 색

1   =   적 색

2   =   녹 색

3   =   호박색 (AMBER)

[BYTE 3 : 표시 문자]      0x00  부터  0xFF 까지 표현 가능

※  Address Test 모드는 주어진  표출 데이타를 가지고  행별로(32 dot 단위) 자기 위치에  정확히  표출되는가를  확인하려는 것으로 Off된 Dot 또는 비정상 위치등을 판별하여 유지.보수에 적용하려는 기능임

● RESPONSE (ACK/NAK 정보)

(10) Blank

임시 문안 및 라이브러리 문안, 그래픽 문안을 지우라는 명령이다. 임시 문자열 메시지 출력, 임시 그래픽 메시시 출력 및 라이브러리 메시지가 표출되고 있는 상태에서 이 명령을 보내면 현재 표출중인 내용을 지우고 스케쥴 문안(Scheldule)을 표출하고, 만약 Scheldule 메시지가 없다면 표지판은 공백상태(즉, 모든 LED가 꺼진 상태)로 되어야 한다.

만약, Schedule Message가 표출중일때 이 명령을 수신하면 현 상태를 유지함

(즉, 스케쥴 메시지를 계속 표출함)

● COMMAND

- OPCODE (MESSAGE TYPE) =   22  [0x16]

- TOTAL MESSAGE SIZE    =    9  BYTES

● RESPONSE (ACK/NAK 정보)

(11) Status Request

VMS 제어기 자신의 동작상태를 보고하라는 명령.

이 명령은 Host와 VMS 제어기간의 통신 상태에 이상이 없는한 규칙적인 간격으로 계속 상태정보를 보고한다.

※ Host Computer는 각 VMS 제어기에 대해 30초 간격으로 Polling한다.

Host Computer가 폴링할 때 보내는 명령은  Report Status이며, VMS

제어기는 이 명령을 받으면  제어기 상태를 보고한다

● COMMAND

- OPCODE (MESSAGE TYPE) =   24  [0x18]

- TOTAL MESSAGE SIZE    =    9  BYTES

● RESPONSE

- OPCODE (MESSAGE TYPE) =   64  [0x40]

- DATA BYTE

[BYTE 1 -2] Bit  0 : Local mode Active

Bit  1 : Default Parameter

Bit  2 : Reset Occurred

Bit  3 : Long Power Failure

Bit  4 : Short Power Failure

Bit  5 : Door Ajar

Bit  6 : Module Failure Rate Exceded

Bit  7 : RAM/ROM Error

Bit  8 : Message Library Checksum Error

Bit  9 : VMS Fan on/off (off=0, on=1)

Bit 10 : VMS heater on/off (off=0, on=1)

Bit 11 : Sign board power on/off command status

(off=0, on=1)

Bit 12 : Sign board power failure

Bit 13 : 공백문안이 표출될 경우 Set

Bit 14 : 함체 Fan on/off (off=0, on=1)

Bit 15 : 함체 heater on/off (off=0, on=1)

[3BYTE] VMS온도

[4BYTE] 함체온도

- 제어기가 HOST로 응답하고 다시  HOST로 부터 ACK를 받았을때 CLEAR 시켜야 BIT는 2, 3, 4, 7 (Reset Occurred, Long power failure, Short power fail, RAM/ROM Error) 등  4개 이다.

(12) Failed Element Data Reqest

VMS 제어기로 하여금 모듈의 고장에 관한 내용을 보고하라는 명령

이 명령을 보내기 전에 Display Test Pattern 명령(OPCODE=0x14)의 Pattern모드로 명령을 먼저 송신하고, 약 30분 후에 이 명령(OPCODE=0x1A)을 보내야 하며, 이 명령의 요구시 어떤 데이타도 보내지 않는다.

● COMMAND

- OPCODE (MESSAGE TYPE) =   26  [0x1A]

- TOTAL MESSAGE SIZE    =    9  BYTES

● RESPONSE

모듈 내에서의 Element의 고장상태를 나타내며 0x01 = 장애 발생이고 0x00 = 정상이라고 정한다. 모듈 장애율(파라미터 지정) 이상의 PIXEL이 장애상태라면 그 모듈을 장애상태로 처리한다.

- OPCODE (MESSAGE TYPE) =   66  [0x42]

- DATA BYTE

[byte 1 - 24]   1 행의 장애상태  Elements의  모듈

[byte 25 - 48]  2 행의 장애상태  Elements의  모듈

[byte 49 - 72]  3 행의 장애상태  Elements의  모듈

(13) Download Parameter

이명령에 의해 전송된 정보가 RAM의 실 운영 파라미터로 재 저장된다.

● COMMAND

- OPCODE (MESSAGE TYPE) =   28  [0x1C]

- TOTAL MESSAGE SIZE    =   18  BYTES

- DATA BYTE

[BYTE 1]      = 통신 장애 기본값 (0xFF : disable)

VMS 제어기가 HOST로 부터 POLL이나 명령을

받지 않고 경과할 수있는 최대시간

Default Value ( 7 초 )

[BYTE 2 - 3]  = 통신 장애 Slot 번호

통신 FAIL시 표시할 메시지 번호

Default Value ( 0 번 )

[BYTE 4 - 5]  = 전원 장애 Slot 번호

전원 장애시 표시할 메시지 번호

Default Value ( 0 번 )

[BYTE 6]      = 야간 조도 (밝 기)

야간에 사용하는 휘도값, 이 값 이하로 사용

해야함.  Default Value ( 65 )

[BYTE 7]      = 주간 조도

주간에 사용하는 휘도값, 이 값 이상으로 사용

해야함.  Default Value ( 90 )

[BYTE 8]      = Phase 시간 주기

2 phase 메시지의 교대시간 (0 - 10 초)

Default Value ( 6 초 )

[BYTE 9]      = 모듈 장애율

한개의 module을 장애로 처리하기 위한 장애

PIXEL의 백분율 값.

Default Value ( 10 % )

● RESPONSE (ACK/NAK 정보)

(14) Display Default Message

이 명령은 VMS제어기의 지정된 메시지를 표시할 때 언제나 Slot 번호 0 의 문자열 메시지 또는 그래픽 메시지를 정의한다. 만약 Slot번호가 HOST에 의해 메시지 DownLoad시 지정되지 않으면 VMS 제어기는 전광판을  BLANK(화면에 아무문안도 표출되지 않음) 처리 한다.  이 기본 메시지의 표출시간(Display Time)은 Forever동안 지속된다.

● COMMAND

- OPCODE (MESSAGE TYPE) =   30  [0x1E]

- TOTAL MESSAGE SIZE    =    9  BYTES

● RESPONSE (ACK/NAK 정보)

(15) Set luminance Level

이 명령에 의해 지정된 휘도 단계에 따라 특정 모드로 SET된다.

VMS 제어기의 초기화시 모드는 자동상태로 SET 된다.

● COMMAND

- OPCODE (MESSAGE TYPE) =   32  [0x20]

- TOTAL MESSAGE SIZE    =   10  BYTES

- DATA BYTE

[BYTE 1 : 모드 구분]     0  :  Level 1

1  :  Level 2

2  :  Level 3

● RESPONSE (ACK/NAK 정보)

(16) Upload A Message

라이브러리 메시지의 내용을 보내라는 요구. 하나의 전송 packet에 두위상의 전문이 올려 보내져야 한다. 라이브러리 메시지 번호가 "0xFFFF"이면 현재 표출중인 데이타를 upload 한다. 이때, Schedule 메시지가 표출중인 경우 명령을 수신한 시점에 표시중인 두 위상(Phase)의 라이브러리 메시지를 Upload 하여야 함

● COMMAND

- OPCODE (MESSAGE TYPE) =   34  [0x22]

- TOTAL MESSAGE SIZE    =   11  BYTES

- DATA BYTE

[BYTE 1 - 2]          =   특정 라이브러리 메시지 번호

"0xFFFF"인 경우 현재 표출중인 메시지 Upload

● RESPONSE

Upload 메시지 명령시 요구한  메시지 데이타에 대하여 응답하며, 한 전송 Packet를 이용하여 두 위상의 전문을 보낸다.

- OPCODE (MESSAGE TYPE) =   68  [0x44]

- DATA BYTE

[byte 1]      :  위상 (One : 1 /Two Phase : 2) 구분

(표출문안이 없을 경우 : 0)

[byte 2]      :  표출 기능

[byte 3]      :  표출 방향

[byte 4 - 5]  :  라이브러리 메시지 번호

[byte 6]      :  메시지 종류

(0: 문자열, 1: 그래픽, 2: 그래픽 심볼)

※ 문자열 메시지의 경우

[byte 7 - 8]    : 좌측 그래픽 심볼 번호

[byte 9 - 10]   : 우측 그래픽 심볼 번호

[byte 11 - 652] : Escape Sequence / KSC5601(2 byte code)

○ 특정 Library에 대한 요구의 경우

○ DownLoad 되어있는 Library 내용을 Upload

○ 현재 표출중인 메시지에 대한 요구의 경우

(라이브러리 번호가 "0xFFFF"일 때)

- 임시 문안 표출시 : 임시문안 내용을 Upload

- Fill-In Library메시지 표출시 : DownLoad 되어있는

Library에 Fill-in 데이타를 채운 상태로 Upload

- Schedule 메시지 표출시 : UpLoad명령을 수신받은 시점에

표출중인 두위상의 Library 메시지 내용을 Upload

※ 그래픽 메시지의 경우

[byte 7     - 9222 ]  :  적색 데이타   ( #1 Phase)

[byte 9223  - 18438]  :  녹색 데이타   ( #1 Phase)

[byte 18439 - 27654]  :  적색  ( #2 Phase if necessary)

[byte 27655 - 36870]  :  녹색  ( #2 Phase if necessary)

※ 그래픽 심볼 메시지의 경우

[byte 7     - 1158 ]  :  적색 데이타

[byte 1159  - 2310 ]  :  녹색

(17) Upload Schedule Message

현재 표출중인 문안에 관계없이(스케쥴 문안 표출, 라이브러리 문안, 임시문안 표출등) 제어기가 갖고 있는 모든 스케쥴 문안 내용을 Upload하라는 명령

● COMMAND

- OPCODE (MESSAGE TYPE) =   35  [0x23]

- TOTAL MESSAGE SIZE    =    9  BYTES

● RESPONSE

Packet size 및 전송속도를 고려하여 최대 4개의 Library 메시지의 내용을 송신하도록 정의함. (각 Library 내용중 1 Phase에 해당하는 내용만 포함)

- OPCODE (MESSAGE TYPE) =   69  [0x45]

- DATA BYTE

[byte 1]       :  정의된 Library 메시지 갯수

(스케쥴 문안이 정의되지 않은 경우 : 0)

[byte 2]       :  위상구분 (One/Two Phase)

[byte 3]       :  표출 기능

[byte 4]       :  표출 방향

[byte 5 - 6]   :  라이브러리 메시지 번호

[byte 7 - 327] :  Escape Sequence / KSC5601

[byte 328]     :  위상구분 (One/Two Phase)

[byte 329]     :  표출 기능

[byte 330]     :  표출 방향

[byte 331-332] :  라이브러리 메시지 번호

[byte 333-653] :  Escape Sequence / KSC5601

[byte 654]     :  위상구분 (One/Two Phase)

[byte 655]     :  표출 기능

[byte 656]     :  표출 방향

[byte 657-658] :  라이브러리 메시지 번호

[byte 659-979] :  Escape Sequence / KSC5601

[byte 980]     :  위상구분 (One/Two Phase)

[byte 981]     :  표출 기능

[byte 982]     :  표출 방향

[byte 983-984] :  라이브러리 메시지 번호

[byte 985-1305]:  Escape Sequence / KSC5601

(18) Sign board power control

Power Off 명령을 받으면 표지판은 꺼질 것이다. Power On 명령을 받기 전에는 어떤 표출 명령도 무시된다.

● COMMAND

- OPCODE (MESSAGE TYPE) =   36 [0x24]

- TOTAL MESSAGE SIZE    =   10  BYTES

- DATA BYTE

[BYTE 1 : 구분]          0  :  전원 차단

1  :  전원 재개

● RESPONSE (ACK/NAK 정보)

(19) Message echo back

HOST에서 보내는 데이타를, VMS 제어기가 받은 그대로 HOST로 ECHO Back 하라는 명령이다.

● COMMAND

- OPCODE (MESSAGE TYPE) =   38  [0x26]

- TOTAL MESSAGE SIZE    =   15  BYTES

- DATA BYTE

[BYTE 1]            =   7E (고정 데이타)

[BYTE 2]            =   AA (고정 데이타)

[BYTE 3]            =   BB (고정 데이타)

[BYTE 4]            =   CC (고정 데이타)

[BYTE 5]            =   DD (고정 데이타)

[BYTE 6]            =   7E (고정 데이타)

● RESP

- OPCODE (MESSAGE TYPE) =   70  [0x46]

- DATA BYTE

[BYTE 1]            =   7E (고정 데이타)

[BYTE 2]            =   AA (고정 데이타)

[BYTE 3]            =   BB (고정 데이타)

[BYTE 4]            =   CC (고정 데이타)

[BYTE 5]            =   DD (고정 데이타)

[BYTE 6]            =   7E (고정 데이터)

(20) Upload Module Status

HOST에서 요청한 각 모듈상태를 픽셀단위로 Upload하라는 명령이다.

● COMMAND

- OPCODE (MESSAGE TYPE) =   40  [0x28]

- TOTAL MESSAGE SIZE    =    9  BYTES

● RESPONSE

- OPCODE (MESSAGE TYPE) =   74  [0x4A]

- DATA BYTE

[BYTE 1 - 2]         =   가로PIXEL 수

[BYTE 3]             =   세로PIXEL 수

[BYTE 4 - 36867]     =   데이터

- TOTAL MESSAGE SIZE    =  36876 BYTES

● 1 PIXEL에 4 BIT 할당

1	2	3	4

D7	D6	D5	D4	D3	D2	D1	D0
SET ERROR	GREEN	RED	NOT USED	SET ERROR	GREEN	RED	NOT USED

2번 PIXEL                    1번PIXEL

D2, D1 : "00"이면 BLACK

: "01"이면 RED

: “10”이면 GREEN

: "11"이면 YELLOW

D3, D7 : SET이면 ERROR

(21) Sign board Alarm control (터널관리용)

Alarm On 명령이나 Speaker On 명령을 받으면 경광등 켜거나 스피커를   울린다.

● COMMAND

- OPCODE (MESSAGE TYPE) =   42 [0x2A]

- TOTAL MESSAGE SIZE    =   10  BYTES

- DATA BYTE

[BYTE 1 : 구분]          0  :  Alarm Off

1  :  Alarm On

2  :  Speaker Off

3  :  Speaker On

● RESPONSE (ACK/NAK 정보)

(22) 동영상 파일 FTP 다운로드

동영상 파일을 FTP로 다운로드를 요구한다.

● COMMAND

- OPCODE (MESSAGE TYPE) =   161 [0xA1]

- TOTAL MESSAGE SIZE    =   264  BYTES

- DATA BYTE

[BYTE 1~255 : 파일 정보]

파일이 존재하는 FTP 서버의 전체 경로

+ 파일 이름

+ 확장자

동영상 파일 이름은 MID8000.avi ~ MID8999.avi로 한다.

-. FTP 서버 관련 정보는 아래와 같으며 미리 VMS에

등록되어 있어야 합니다.

1. FTP 서버 주소

2. 포트 번호

3. Username

4. Password

● RESPONSE (ACK/NAK 정보)

(23) 동영상 파일 FTP 다운로드 완료

동영상 파일을 FTP로 다운로드가 완료되었음을 센터에 통보한다.

● COMMAND

- OPCODE (MESSAGE TYPE) =   162 [0xA2]

- TOTAL MESSAGE SIZE    =   264  BYTES

- DATA BYTE

[BYTE 1~255 : 파일 정보]

파일이 존재하는 FTP 서버의 전체 경로

+ 파일 이름

+ 확장자

동영상 파일 이름은 MID8000.avi ~ MID8999.avi로 한다.

● RESPONSE 없음

(24) 함체 PAN/HEATER 온도 설정

함체 PAN/HEATER 동작 온도를 설정한다.

● COMMAND

- OPCODE (MESSAGE TYPE) =   49 [0x31]

- TOTAL MESSAGE SIZE    =   11  BYTES

- DATA BYTE

[BYTE 1] PAN 동작 온도

[BYTE 1] HEATER 동작 온도

● RESPONSE (ACK/NAK 정보)

(25) 함체 PAN/HEATER 온도 요청

함체 PAN/HEATER 동작 온도를 설정한다.

● COMMAND

- OPCODE (MESSAGE TYPE) =   50 [0x32]

- TOTAL MESSAGE SIZE    =   10  BYTES]

● RESPONSE

- OPCODE (MESSAGE TYPE) =   66 [0x42]

- TOTAL MESSAGE SIZE    =   11  BYTES

- DATA BYTE

[BYTE 1] PAN 동작 온도

[BYTE 1] HEATER 동작 온도

2) 도형식

1) 폼데이터 표출

해당 VMS에 표출할 폼데이터를 전송한다.

<Send>

구 분	내 용
OP-Code	0x80
Total Message Size	N Bytes
Data Byte
	<아래 표 참조>

Data Byte내용

내 용		설 명	길이	비 고
폼 ID		폼 ID	2 Byte	'FID0000'과 'FID9999'를 제외한 일련번호
전체 폼 수		전체 폼의 수	2 Byte	2Byte
폼 데이터 헤더	폼 번호	폼 표출 일련번호	6 Byte	2Byte
	표출시간	폼의 표출시간을 지정		1Byte( 0x00 이면 계속 표출 )
	표출유형	폼의 표출유형을 지정		1Byte(별표 참조)
	배경색상	폼의 배경색을 지정		1Byte(RGB)
	오브젝트 수	표출할 오브젝트 전체 수		1Byte
오브젝트 1	오브젝트 데이터 헤더	오브젝트 종류	9 Byte	1Byte(별표 참조)
		오브젝트 데이터 크기		2Byte
		점멸여부		1Byte(0x00 : 고정, 0x01 : 점멸)
		좌표 X		2Byte
		좌표 Y		2Byte
		문자열 배경색을 지정		1Byte(RGB)
	오브젝트 데이터	오브젝트 데이터	n	오브젝트 종류별 형식은 아래표 참조
‥‥‥		‥‥‥
n	위와 같음

Form ID(표출할 Form ID)

표시하고자 하는 Form 데이터의 ID로서 다음과 같이파일명을 구성한다.

예) FID0001, FID0002, FID0003, FID0004...

ID 부여시 임시 표출은 "FID9999", default 표출은 "FID0000", 나머지는 일련번호로 부여

※ 오브젝트 종류

구 분	목 록	코드	비 고
오브젝트	문자열	0x00
	Bitmap	0x01
	Bitmap ID	0x02
	동영상	0x03	동영상 *.AVI (XVID)
	스트리밍 영상	0x04

문자열 오브젝트 형식 : 문자를 표출하는 오브젝트

내 용	설 명	길이	비 고
헤더 (5 Byte)	사용 폰트 색상	3 Byte	Full-Color를 위해 3Byte로 변경함
	사용 폰트 크기	1 Byte	0x11(별표 참조)
	사용 폰트 종류 Code	1 Byte	0x20(별표 참조)
	사용 폰트 굵기	1 Byte	0x00(별표 참조)
	기타	1 Byte
문자열 Data (n Byte)	표출할 문자열	n Bytes	문자열 데이터

문자열 데이터는 표시하여야할 문자열로서 문자열은 끝이 Null로 끝나지 않는다.

비트맵 오브젝트 형식 : 비트맵을 표출하는 오브젝트

내 용	설 명	길이	비 고
헤더 (6Byte)	비트맵 표시 Width	2 Byte	0 ~ 1023 : 표출 비트맵 Width
	비트맵 표시 Height	2 Byte	0 ~ 1023 : 표출 비트맵 Heitht
	그림파일 타입	1 Byte	별표 참조
	기타	1 Byte
비트맵 Data (n Byte)	표출할 비트맵 데이터	n Bytes	비트맵 데이터

비트맵 데이터 (표출할 비트맵 데이터)

표시하고자 하는 비트맵 데이터로서 파일형식은□BMP"를 기준으로 하고 색상은 16Color를 기본으로 하며 16Color 이상도 사용할 수 있다.

비트맵 ID 오브젝트 형식 : 미리 정의된 비트맵을 표출하는 오브젝트

내 용	설 명	길이	비 고
헤더 (5Byte)	비트맵 표시 Width	2 Byte	0 ~ 1023 : 표출 비트맵 Width
	비트맵 표시 Height	2 Byte	0 ~ 1023 : 표출 비트맵 Height
	그림파일 타입	1 Byte	별표 참조
비트맵 ID Data (2 Byte)	표출할 비트맵 ID	2 Byte	0～ 9999 : 표출할 비트맵 ID

비트맵 ID (표출할 비트맵  ID)

표시하고자 하는 비트맵 데이터의 ID로서 다음과 같이파일명을 구성한다.

예) BID0001, BID0002, BID0003, BID0004...

동영상 오브젝트 형식 : 미리 다운로드된 동영상을 표출하는 오브젝트

내 용	설 명	길이	비 고
헤더 (5Byte)	동영상 표시 Width	2 Byte	0 ~ 1023 : 표출 비트맵 Width
	동영상 표시 Height	2 Byte	0 ~ 1023 : 표출 비트맵 Height
	기타	1 Byte
동영상 파일 이름	파일 이름	50 Byte	확장자(*.avi) 포함

동영상 오브젝트는 폼데이터에서 오직 한번만 존재하여야 함.

두 개 이상의 동영상 오브젝트는 표출하지 않음

스트리밍 오브젝트 형식 : 스트리밍 서버의 영상을 표출하는 오브젝트

내 용	설 명	길이	비 고
헤더 (5Byte)	동영상 표시 Width	2 Byte	0 ~ 1023 : 표출 비트맵 Width
	동영상 표시 Height	2 Byte	0 ~ 1023 : 표출 비트맵 Height
	기타	1 Byte
스트리밍 서버 정보 (52Byte)	서버 IP 주소	30 Byte
	서버 포트 값	2 Byte	0 ~ 9999
	Username	10 Byte
	Password	10 Byte

스트리밍 영상 오브젝트는 폼데이터에서 오직 한번만 존재하여야 함.

두 개 이상의 스트리밍 영상 오브젝트는 표출하지 않음

포트번호(2222), Username(admin), Password(1234) 고정

<Response>

폼데이터 전송에 따른 ACK/NAK 데이터 전송함

구 분	내 용
OP-Code	0x80
Data Byte	ACK 경우	- Total 1 Byte - Data 값: 0x06
	NAK 경우	- Total 2 Bytes - Data 값: [Byte 1] : 0x15 [Byte 2] : 에러 상황에 따른 코드전송 자세한 코드는 “ NAK 전송참조”

2) 데이터 다운로드

파일을 전송할 때에 사용되는 명령이다, 수신측은 저장위치에 전송된 파일을 저장한다.

<Send>

구 분	내 용
OP-Code	0x82
Total Message Size	N Bytes
Data Byte
	<아래 표 참조>

비트맵 오브젝트 형식 : 비트맵을 표출하는 오브젝트

내 용	설 명	길이	비 고
헤더 (5Byte)	Download Data 저장위치 Code	1 Byte	아래 저장위치 표 참고
	파일명 길이	1 Byte	1～ 255
	저장하여야 할 데이터의 크기	4 Byte
파일명	저장할 파일명	n
파일Data	다운로드 데이터	n

※ 전송할 데이터를 N번으로 나누어 보낼 경우 위의 내용을 N으로 나누어 보낸다.

※ 파일명은 끝이 Null로 끝나지 않으므로 파일명의 길이만큼 사용하여야 한다.

※ 전송하는 데이터가 비트맵 ID일 경우 파일명은 다음과 같은 방식으로 생성하여 전송한다.

- 파일명 : “BID”+일련번호 4자리+□.” + 확장자명

- 예) ID가 5이고 BMP 파일인 경우 BID0005.BMP

Download Data 저장위치 상세코드

Data ID(저장위치 Code)	경로명
0	파일명에 포함
1	로컬 프로그램이 속하여 있는 디렉토리에 저장
2	로컬 프로그램이 설치된 루트 디렉토리에 저장
3	윈도우즈 디렉토리에 저장
4	윈도우즈 시스템 디렉토리에 저장
5	로컬 프로그램 이미지 디렉토리에 저장
6	로컬 프로그램 디폴트 폼 디렉토리에 저장

<Response>

전송에 따른  ACK/NAK 데이터 전송함

구 분	내 용
OP-Code	0x82
Data Byte	ACK 경우	- Total 1 Byte - Data 값: 0x06
	NAK 경우	- Total 2 Bytes - Data 값: [Byte 1] : 0x15 [Byte 2] : 에러 상황에 따른 코드전송 자세한 코드는 “ NAK 전송참조”

3) 데이터 업로드

센터에서 현장에 저장된 파일에 대한 업로드를 요구할 때 사용한다.

<Send>

구 분	내 용
OP-Code	0x84
Total Message Size	N Bytes
Data Byte
	<아래 표 참조>

파일요청 Data Byte

내 용	설 명	길이	비 고
헤더 (3Byte)	Upload Data 저장위치 Code	1 Byte	위 저장위치 표 참고
	파일명 길이	1 Byte	1～ 255
	기타	1 Byte	Reserved
파일명	업로드할 파일명	n

<Response>

로컬 제어기는 센터의 요청에 따른 파일을 전송한다.

구 분	내 용
OP-Code	0x84
Total Message Size	N Bytes
Data Byte
	<아래 표 참조>

파일전송 Data Byte

내 용	설 명	길이	비 고
헤더 (5Byte)	Upload Data 저장위치 Code	1 Byte	위 저장위치 표 참고
	파일명 길이	1 Byte	1～ 255
	전송하여야 할 데이터의 크기	2 Byte
파일명	전송할 파일명	n
파일Data	업로드 데이터	n

※ 업로드할 파일이 없으면 데이터 크기를 0으로 하여 보냄.

4) VMS 상태제어

현장 VMS에 대한 제어를 요청한다. 각 제어에 대한 Op Code가 별도로 존재하는것이 아니라, OP Code는 동일하나, 제어코드에 따라 제어형태가 구분된다.

<Send>

구 분	내 용
OP-Code	0x86
Total Message Size	N Bytes (제어 데이터에 따라 가변)
Data Byte
	<아래 표 참조>

제어에 대한 Data Byte (센터 → VMS)

내 용	설 명	길이	비 고
제어 코드	제어할 명령 Code	1	제어코드 참조
제어 데이터	제어방법 설정	n

제어 코드 및 코드에 대한 데이터

제어코드	제어데이터		제어데이터 크기 및 설명
	내 용	설 명
0x01	전광판 전원제어	0x00:꺼짐, 0x01:켜짐,	1Byte
0x02	제어기 리셋트	-	1Byte
0x03	통신 재시도 횟수	0x01 ~ 0x09	1Byte(초기값 0x03:3회)
0x04	제어기 시간설정	"YYYYMMDDHHNNSS"	14Bytes(String)
0x05	점멸시간 주기	1/10초 단위	1Byte
0x06	밝기제어	0x00:주간, 0x01:야간, 0x02:Auto	2Byte(제어값+밝기) (밝기:수동 0~100,자동 0)
0x07	Fan 제어	고정값 0xFF	고정값 0xFF
0x08	Heater 제어	고정값 0xFF	고정값 0xFF
0x09	화면 배색 제어	0x01:Red, 0x02:Green, 0x03:Amber	1Byte(제어값)
0x0A	장애모듈비율	-	에러난 픽셀의 백분율 : 0～100
0x0B	디폴트 시나리오 동작시간	초 단위	2Byte, default value : 300초

※ 제어코드(0x01 ~ 0x0A)의 Default 제어값은 기존시스템 초기설정값을 기준으로 한다

전광판 전원 제어 명령 중 꺼짐 명령을 받으면 표지판은 꺼짐. 이후 켜짐 명령이 있을 때까지는 어떤 명령도 무시한다.

숫자 0은 0x00 이며, 문자 ‘0‘은 0x30이다.

제어기 시간 셋트에서 데이터는 문자열로 구성 (예) : 2004년 3월 25일 15시 30분 45초 일때□20040325153045□

밝기 제어

주간, 야간, 자동으로 구분하여 운영 모드를 지정할 수 있으며, 동시에 밝기를 지정할 수 있다. 주간 조도 default value(90), 야간 모드 default value(65)

장애모듈비율 : 한개의 모듈을 장애로 처리하기 위한 장애 PIXEL 백분율 값.

Default 값은 10%

<Response>

제어데이터 전송에 따른 수신결과를 ACK/NAK 데이터 전송함

구 분	내 용
OP-Code	0x86
Data Byte	ACK 경우	- Total 1 Byte - Data 값: 0x06
	NAK 경우	- Total 2 Bytes - Data 값: [Byte 1] : 0x15 [Byte 2] : 에러 상황에 따른 코드전송 자세한 코드는 “p.4의 NAK 전송참조”

5) VMS Status 요구

상태 정보를 요청한다.

<Send>

구 분	내 용
OP-Code	0x88
Total Message Size	13 Bytes
Data Byte

<Response>

로컬 제어기는 센터의 상태요구에 따른 상태정보를 센터로 전송한다.

구 분	내 용
OP-Code	0x88
Total Message Size	25 Bytes
Data Byte
	<아래 표 참조>

상태 요구 응답 (센터 ← VMS)

내 용	설 명	길이	비 고
상태 데이터 ( 14 Byte )	Door Open/Close 상태	1 Byte	0x00 : Open, 0x01 : Close, 0x09 : Unknown
	전원의 ON/OFF 상태	1 Byte	0x00 : On, 0x01 : Off (Sign Board)
	VMS Fan 동작상태 함체 Fan 동작상태	1 Byte	0x00 : On, 0x01 : Off, 0x09: Unknown 0x00 : On, 0x10 : Off, 0x90: Unknown
	VMS Heater 동작상태 함체 Heater 동작상태	1 Byte	0x00 : On, 0x01 : Off, 0x09: Unknown 0x00 : On, 0x10 : Off, 0x90: Unknown
	표출 폼 번호	2 Byte	0x00 : 통신 폼, 0x01 : 디폴트 폼
	재실행 여부	1 Byte	0x00 : 정상, 0x01 : 재실행
	함체온도	1 Byte	127 ~ -127 -128 : Unknown
	화면의 밝기	4 Byte	최대를 100으로 했을 때의 백분율 값 및 기준휘도
	표출부온도	1 Byte	127 ~ -127 -128 : Unknown
	표출부습도	1 Byte	0~100%, 포항UTIS부터 추가함

센터 서버가 전원 모듈 또는 모듈의 이상을 수신 시

센터 서버는 이상 상태 요구를 현장 제어기로 송신 한다.

현장 제어기는 모듈의 이상여부가 변경되는 이벤트가 발생 시 이상여부를 셋팅하여 보내야한다.

현장 제어기는 Reset 또는 프로그램 다운으로 인한 프로그램 재실행 시 재실행 여부를 1로 셋팅하여야 하며, 이는 센터 서버가 모듈 상태를 요구하기 위함이다.

6) VMS 파라미터 요구

로컬 상태를 요청한다.

<Send>

구 분	내 용
OP-Code	0x8A
Total Message Size	13 Bytes
Data Byte
	없음

<Response>

로컬 제어기는 센터의 상태요구에 따른 상태정보를 센터로 전송한다.

구 분	내 용
OP-Code	0x8A
Total Message Size	29 Bytes
Data Byte
	<아래 표 참조>

OP Code (6) - 로컬 상태 요구 응답 (센터 ← VMS)

내 용	설 명		길이	비 고
로컬 상태 데이터 ( 16Byte )	전원제어 모드		1 Byte	0x00 : 꺼짐, 0x01 : 켜짐,
	Fan 동작모드		1 Byte	0x00 : 꺼짐,0x01 : 켜짐, 0x02 : 자동, 0x09: Unknown
	Fan의 동작개시온도		1 Byte	온도( 0x00 ~0x03f )
	Heater의 동작모드		1 Byte	0x00 : 꺼짐, 0x01 : 켜짐, 0x02 : 자동 0x09: Unknown
	Heater 의 동작개시온도		1 Byte	온도(0x00 ~ 0x3f )
	밝기 모드		2 Byte	0x0 : 수동, 0x1 : 자동, 비율 : 0-100
	깜빡이는 시간주기		1 Byte	문자 비트맵의 깜빡이는 시간주기 0x00 ~ 0x1e( 0.1 ~3.0 )
	디폴트 시나리오로 전환시간		2 Byte	디폴트 시나리오로 전환될 때까지 기다리는 시간, 단위 : 초
	기타		1 Byte
	현재 로컬 제어기의 시간	년	1 Byte	0x00 ~ 0x32
		월	1 Byte	0x01 ~ 0x0c
		일	1 Byte	0x01 ~ 0x1f
		시	1 Byte	0x00 ~ 0x17
		분	1 Byte	0x00 ~ 0x3b
		초	1 Byte	0x00 ~ 0x3b

7) 전원 모듈 상태 요구

전원 모듈의 상태를 요구한다. 로컬 제어기는 VMS모듈당 전원상태를 정상/비정상 값으로 리턴한다.

<Send>

구 분	내 용
OP-Code	0x8C
Total Message Size	13 Bytes
Data Byte
	없음

<Response>

로컬 제어기는 VMS의 전원상태를 리턴한다.

구 분	내 용
OP-Code	0x8C
Total Message Size	n Bytes
Data Byte
	<아래 표 참조>

전원 모듈 상태 응답 (센터 ← VMS)

내 용	설 명	길 이	비 고
전원 모듈 상태 데이터	VMS 전원모듈의 수	2 Byte	1Byte 전원모듈 수
			1Byte 임시영역
	VMS 전원모듈 상태 1	1 Byte	0x00 : Off, 0x01 : On, 0x02 : Unknown,
	VMS 전원모듈 상태 2	1 Byte	0x00 : Off, 0x01 : On, 0x02 : Unknown,
	.....
	VMS 전원모듈 상태 n	n Byte	0x00 : Off, 0x01 : On, 0x02 : Unknown,

전원상태 데이터에서 전원상태 감시가 이루어지지 않았을 경우 0x02를 전송한다.

8) 표출 모듈 상태 요구

표출 모듈의 상태를 요구한다. 로컬 제어기는 VMS모듈당 표출모듈의 상태를 정상/비정상 값으로 리턴한다.

<Send>

구 분	내 용
OP-Code	0x8E
Total Message Size	13 Bytes
Data Byte
	없음

<Response>

로컬 제어기는 VMS의 모듈상태를 리턴한다.

구 분	내 용
OP-Code	0x8E
Total Message Size	n Bytes
Data Byte
	<아래 표 참조>

OP Code (0x08) - 표출 모듈 상태 Upload (센터 ← VMS)

내 용	설 명	길 이	비 고
모듈 상태 데이터	VMS 모듈수	2 Byte	1 Byte(X축) VMS 모듈수
			1 Byte(Y축) VMS 모듈수
	VMS 모듈상태 1	1 Byte	0x00 : Off, 0x01 : On, 0x02 : Unknown,
	VMS 모듈상태 2	1 Byte	0x00 : Off, 0x01 : On, 0x02 : Unknown,
	...
	VMS 모듈상태 n	1 Byte	0x00 : Off, 0x01 : On, 0x02 : Unknown,
모듈 상태 백분율 (N Byte)	VMS 모듈백분율	n Byte	에러난 픽셀의 백분율 : 0～100 Unknown시 : 255

예)VMS 모듈수 : 2단 5열일 경우 모듈개수 (5(x), 2(y))를 표지한다.

10) VMS Pixel Image 요구

Pixel에 대한 정보를 요청한다. 로컬 제어기는 픽셀에 대한 정보를 수집하여 센터로 전송한다. 현재는 사용하지 않는다.

<Send>

구 분	내 용
OP-Code	0x92
Total Message Size	14 Bytes
Data Byte
	<아래참조>

LED 상태 Pixel 데이터 (센터 ← VMS)

내 용	설 명	길 이	비 고
Data ID	데이터 ID	1	현시 지정

<Response>

센터로 픽셀정보를 전송한다

구 분	내 용
OP-Code	0x92
Total Message Size	n Bytes
Data Byte
	<다음 표 참조>

LED 상태 Pixel 데이터 (센터 ← VMS)

내 용

설 명

길 이

비 고

Bit 할당

- 32x32모듈 3단 10열 일 경우.

- 1 pixel당 4비트 할당.

- pixel정보 입력 순서(Left, Top부터 정보입력)

1	2	3	4	5	..	..	..	..	..	..	317	318	319	320
321	322	323	324	325	..	..	..	..	..	..	..	..	..	..
..	..	..	..	..	..	..	..	..	..	..	..	..	..	..
..	..	..	..	..	..	..	..	..	..	..	..	..	..	..
..	..	..	..	..	..	..	..	..	..	..	..	30718	30719	30720

- 1 Byte당 2개의 Pixel정보 입력(1 pixel당 4비트 할당)

Bit7	Bit6	Bit5	Bit4	Bit3	Bit2	Bit1	Bit0
Set Error	Green	Red	Not Used	Set Error	Green	Red	Not Used

* 위의 전광판 1,2 pixel 정보가 1Byte에 입력됨.

* 첫 번째 픽셀정보는 Bit0~3까지 입력되고, 두 번째 픽셀은 Bit4~7까지 입력됨.

* Bit 1(5), Bit 2(6): "00" 이면 Black. (표출색깔 없음)

"01" 이면 Red   ( 붉은색 사용중)

"10" 이면 Green ( 초록색 사용중)

"11" 이면 Yellow( Amber 사용중)

* Bit 3(7) : "1" 이면 Error pixel(Blue 표시)

* Bit 0(4) : "1" 이면 사용하지 않음 표시(Black 표시)

* 데이터 순서: 1Byte에서는 우에서 좌로, 전체 전광판은 좌에서 우로, 위에서 아래로임.

11) 현재 표출 폼 Upload

현재의 표출폼에 대한 정보를 요청한다.

<Send>

구 분	내 용
OP-Code	0x94
Total Message Size	13 Bytes
Data Byte
	<없음>

<Response>

현재 표출중인 폼정보를 전송한다.

구 분	내 용
OP-Code	0x94
Total Message Size	n Bytes
Data Byte
	전송내용은 OpCode 0x01의 폼데이터 전송과 동일한 정보를 센터로 전송함.

12) Download Schedule Form

계획된 Form들은 일반 Form이 BLANK 명령에 의해 지워질 때 마다 표출되어야 한다. 이 명령을 이용하여 최대 10개의 폼들을 정의할 수 있음.

일반 메시지가  BLANK 명령에 의해  지워진 게획된 Form이 따로 정의되지 않은 상태에서, 표지판은 공백(BLANK) 상태에 있게 된다.

<Send>

구 분	내 용
OP-Code	0x96
Total Message Size	43 Bytes
Data Byte
	<아래 표 참조>

Data Byte내용

설 명	길이	비 고
1번 폼 ID	3 Byte	2 Byte
1번 폼 표출시간		1 Byte = default value = 0 폼 표출 시간이 0인 경우 자체 폼 표출 시간을 따른다.
2번 폼 ID	3 Byte	2 Byte
2번 폼 표출시간		1 Byte = default value = 0
	․ ․ ․
10번 폼 ID	3 Byte	2 Byte
10번 폼 표출시간		1 Byte = default value = 0

<Response>

전송에 따른  ACK/NAK 데이터 전송함

구 분	내 용
OP-Code	0x96
Data Byte	ACK 경우	- Total 1 Byte - Data 값: 0x06
	NAK 경우	- Total 2 Bytes - Data 값: [Byte 1] : 0x15 [Byte 2] : 에러 상황에 따른 코드전송 자세한 코드는 “p.4의 NAK 전송참조”

13) Display default Form

FID0000번 Form을 출력한다. 만약 제어기에 0000번 폼이 지정되어 있지 않다면 전광판은 BLANK(화면에 아무것도 출력되지 않음) 처리된다.

<Send>

구 분	내 용
OP-Code	0x98
Total Message Size	13 Bytes

<Response>

전송에 따른  ACK/NAK 데이터 전송함

구 분	내 용
OP-Code	0x98
Data Byte	ACK 경우	- Total 1 Byte - Data 값: 0x06
	NAK 경우	- Total 2 Bytes - Data 값: [Byte 1] : 0x15 [Byte 2] : 에러 상황에 따른 코드전송 자세한 코드는 “p.4의 NAK 전송참조”

14) Download Form

Form을 VMS에 저장하도록 요구한다.

<Send>

구 분	내 용
OP-Code	0x9A
Total Message Size	N Bytes
Data Byte
	전송내용은 OpCode 0x80의 폼데이터 전송과 동일한 정보를 VMS로 전송함.

15) Upload Schedule Form

VMS에 설정되어 있는 스케쥴 Form을 Upload하라는 명령

<Send>

구 분	내 용
OP-Code	0x9C
Total Message Size	13

<Response>

구 분	내 용
OP-Code	0x9C
Total Message Size	43 Bytes
Data Byte
	<아래 표 참조>

설 명	길이	비 고
1번 폼 번호	3 Byte	2 Byte
1번 폼 표출시간		1 Byte
2번 폼 번호	3 Byte	2 Byte
2번 폼 표출시간		1 Byte
	․ ․ ․
10번 폼 번호	3 Byte	2 Byte
10번 폼 표출시간		1 Byte

16) BLANK

현재 표출하는 Form을 지우고 스케쥴 from을 표출하고, 만약 Scheldule form이 없다면 표지판은 공백상태(즉, 모든 LED가 꺼진 상태)로 되어야 한다.

만약, Schedule form가 표출중일때 이 명령을 수신하면 현 상태를 유지함

(즉, 스케쥴 form를 계속 표출함)

<Send>

구 분	내 용
OP-Code	0x9E
Total Message Size	13 Bytes

<Response>

전송에 따른  ACK/NAK 데이터 전송함

구 분	내 용
OP-Code	0x9E
Data Byte	ACK 경우	- Total 1 Byte - Data 값: 0x06
	NAK 경우	- Total 2 Bytes - Data 값: [Byte 1] : 0x15 [Byte 2] : 에러 상황에 따른 코드전송 자세한 코드는 “p.4의 NAK 전송참조”

17) Display Form ID

Form의 표시를 요구한다. Form ID는 요구시 함께 보낸다.

<Send>

구 분	내 용
OP-Code	0xA0
Total Message Size	15 Bytes
Data Byte
	<아래 표 참조>

Data Byte내용

설 명	길이	비 고
폼 번호	2 Byte

※ 현장제어기에 해당 ID의 폼이 저장되어 있지 않을 경우 에러 코드를 전송하고 현장 장비는 공백문안을 출력한다.

<Response>

전송에 따른  ACK/NAK 데이터 전송함

구 분	내 용
OP-Code	0xA0
Data Byte	ACK 경우	- Total 1 Byte - Data 값: 0x06
	NAK 경우	- Total 2 Bytes - Data 값: [Byte 1] : 0x15 [Byte 2] : 에러 상황에 따른 코드전송 자세한 코드는 “p.4의 NAK 전송참조”

18) 동영상 파일 FTP 다운로드 (센터 → VMS)

동영상 파일을 FTP를 이용하여 다운로드 한다.

<Send>

구 분	내 용
OP-Code	0xA1
Total Message Size	255 Bytes
Data Byte
	<아래 표 참조>

Data Byte내용

설 명	길이	비 고
동영상 파일 이름	255 Byte	파일이 존재하는 FTP 서버의 전체 경로 + 파일 이름 + 확장자

<Response>

전송에 따른  ACK/NAK 데이터 전송함

구 분	내 용
OP-Code	0xA1
Data Byte	ACK 경우	- Total 1 Byte - Data 값: 0x06
	NAK 경우	- Total 2 Bytes - Data 값: [Byte 1] : 0x15 [Byte 2] : 에러 상황에 따른 코드전송 자세한 코드는 “p.4의 NAK 전송참조”

※ ACK 전송은 다운로드할 파일 정보를 정상적으로 수신했다는 의미이며 다운로드가 완료되었다는 의미는 아닙니다. 동영상 파일이 정상적으로 다운로드되기 전에는 해당 동영상에 대한 어떠한 표출 명령이 내려오면 안 됩니다.

19) 동영상 파일 FTP 다운로드 완료 (센터 ← VMS)

동영상 파일 다운로드 완료시 VMS에서 센터로 전송한다.

<Send>

구 분	내 용
OP-Code	0xA2
Total Message Size	255 Bytes
Data Byte
	<아래 표 참조>

Data Byte내용

설 명	길이	비 고
동영상 파일 이름	255 Byte	다운로드를 위하여 수신된 파일 정보

※ OP-Code 0xA2에 대하여 센터에서 응답할 필요는 없습니다.

<별표 #1 - 도형식>

- head file에 정의하여 사용하고, 내용이 변경되면 컴파일하여 Local 프로그램을 다운로드한다.

1) 색상 및 폰트

구 분	목 록	코드	비 고
폰트 색상	검정색	0x00
	적색	0x01
	녹색	0x02
	황색	0x03
폰트 종류	명조체	0x20
	고딕체	0x21
	바탕체	0x22
	굴림체	0x23
	돋움체	0x24
	궁서체	0x25
폰트 굵기	굵게	0x00
	가늘게	0x01
폰트의 크기	6 폰트	0x06	6 ~ 63 폰트 범위내에서 VMS 표출 전략과 연계하여 폰트크기를 조절하여 사용한다
	7 폰트	0x07
	8 폰트	0x08
	9 폰트	0x09
	...	...
	63 폰트	0x3f

2) 배경색상

구 분	목 록	코드	비 고
배경 색상	검정색	0x00
	적색	0x01
	녹색	0x02
	황색	0x03

3) 팬 동작 모드 코드 목록 및 정의서

구 분	목 록	코드	비 고
팬 동작 모드	꺼짐	0x00
	켜짐	0x01
	자동	0x02
	수동	0x03

4) 하드웨어 작동 상태

구 분	목 록	코드	비 고
도어 상태	켜짐	0x00	열림
	꺼짐	0x01	닫힘
팬 상태	켜짐	0x00	작동
	꺼짐	0x01	중지
히터 상태	켜짐	0x00	작동
	꺼짐	0x01	중지

5) 그래픽 데이터 상태

구 분	목 록	코드	비 고
그래픽 데이터 형식	Window Bitmap	0x00
	GIF	0x01
	JPG	0x02
	PCX	0x03

6) 폼 표출유형

구 분	목 록	코드	비 고
폼 표출유형	Static Normal	0x00	즉시 표출
	Shift(Up)	0x01	기존 화면 위에 다음 화면을 겹쳐서 위 방향으로 다음 화면만 밀면서 표출
	Shift(Down)	0x02	기존 화면 위에 다음 화면을 겹쳐서 아래 방향으로 다음 화면만 밀면서 표출
	Shift(Left)	0x03	기존 화면 위에 다음 화면을 겹쳐서 왼쪽 방향으로 다음 화면만 밀면서 표출
	Shift(Right)	0x04	기존 화면 위에 다음 화면을 겹쳐서 오른쪽 방향으로 다음 화면만 밀면서 표출
	Scroll(Up)	0x05	기존 화면과 다음 화면을 위 방향으로 밀면서 표출
	Scroll(Down)	0x06	기존 화면과 다음 화면을 아래 방향으로 밀면서 표출
	Scroll(Left)	0x07	기존 화면과 다음 화면을 왼쪽 방향으로 밀면서 표출
	Scroll(Right)	0x08	기존 화면과 다음 화면을 오른쪽 방향으로 밀면서 표출
	Wipe(Up)	0x09	기존 화면을 위 방향으로 지우면서 다음 화면을 표출
	Wipe(Down)	0x0a	기존 화면을 아래 방향으로 지우면서 다음 화면을 표출
	Wipe(Left)	0x0b	기존 화면을 왼쪽 방향으로 지우면서 다음 화면을 표출
	Wipe(Right)	0x0c	기존 화면을 오른쪽 방향으로 지우면서 다음 화면을 표출
	Curtain(수직 In)	0x0d	수직으로 나누어 중앙을 향해 안쪽으로 표출
	Curtain(수직 Out)	0x0e	수직으로 나누어 중앙에서 바깥쪽을 향해 표출
	urtain(수평 In)	0x0f	수평으로 나누어 중앙을 향해 안쪽으로 표출
	Curtain(수평 Out)	0x10	수평으로 나누어 중앙에서 바깥쪽을 향해 표출
	Trace(Right)	0x11	한 글자 크기에 대한 한 Line씩 오른쪽으로 표출
	Trace(Left)	0x12	한 글자 크기에 대한 한 Line씩 왼쪽으로 표출
	Blind(Up)	0x13	다음 화면을 수직 또는 몇 개의 화면으로 분할하여 위 방향으로 표출
	Blind(Down)	0x14	다음 화면을 수직 또는 몇 개의 화면으로 분할하여 아래 방향으로 표출
	Blind(Left)	0x15	다음 화면을 수직 또는 몇 개의 화면으로 분할하여 왼쪽 방향으로 표출
	Blind(Right)	0x16	다음 화면을 수직 또는 몇 개의 화면으로 분할하여 오른쪽 방향으로 표출
	Blinking	0x17	표출화면(폼) 전체 깜박임

7) 오브젝트 종류

구 분	목 록	코드	비 고
오브젝트	문자열	0x00
	Bitmap	0x01
	Bitmap ID	0x02
	동영상	0x03