프로토콜 정의서

(VMS 시스템)

과 제 명	통합 노드-링크 보완 및 표준 S/W 기능 고도화
주관기관	도로교통공단
주관부서	첨단교통실

디에스지엔 컨소시엄

승인 내역

문서번호 400S-393-S001		작성년월일 2010.04.30		변경코드 1.0
작성자 이경민	검토자 이건우		승인자 강석이		문서관리자 이용오
통합 노드-링크보완 및 표준 S/W 기능고도화		TASK명 메시지 및 프로세싱 흐름 정의		문서명 프로토콜 정의서

구분	소속/직책	성명	일자	서명

개정 이력

개정 번호	개정범위	개정내역	개정자	개정일자
1.0		최초작성

목    차

1.  센터 내부 통신 프로토콜	1

1.1  센터 내부 통신	2

1.1.1  프로토콜 개요	2

1.1.2  노드 및 타스크 정의	2

1.1.3  통신 규격	2

1.1.4  메시지 구조	2

2.  VMS 인터페이스 정의	16

2.1  유선통신	16

2.1.1  통신방법	16

2.1.2  통신절차	16

2.1.3  정보 구성	20

2.1.4  최종 응용메시지 구조 정의	29

2.2  무선통신	33

2.2.1  통신 방법	33

2.2.2  통신 절차	33

2.2.3  패킷 구조	33

1. 센터 내부 통신 프로토콜

통합 노드-링크 보완 및 표준 S/W 기능 고도화	작성년월일 2010.04.30	문서번호 400S-393-S001	변경코드 1.0
	문서명 프로토콜 정의서

	- -

1.1 센터 내부 통신

1.1.1 프로토콜 개요

센터 내부 통신 프로토콜은 센터 내부 운영단말과 운영서버간의 인터페이스를 구성하며 본 문서에서는 VMS 시스템으로 한정한다. 운영단말시스템이 현장 시스템을 운용하기 위해서는 각 운영단말과 현장시스템을 연계하는 운영 서버 및 현장 제어 서버를 통한 통신 프로토콜이 필요하며 본 문서에서는 운영단말과 운영서버간의 통신 프로토콜 정의로 한정한다.

센터내의 통신 프로토콜은 기본적으로 UDP통신을 하며 업무의 특성에 따라 TCP통신을 할 수도 있다.

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

Byte Ordering은 Little Endian 방식을 사용한다.

모든 통신대상은 노드 및 타스크로 정의하고 각각의 통신포트를 부여한다.

1.1.2 노드 및 타스크 정의

노드		타스크			참고사항
명칭	ID	명칭	ID	포트
운영단말	1	VMS 운영단말 시스템	2	5020
운영 서버 시스템	2	VMS 통신 시스템	2	5040

1.1.3 통신 규격

통신 방식	: UDP

운영서버:  VMS 통신 시스템       Port : 5040

운영단말:  VMS 운영단말

1.1.4 메시지 구조

(1) 프레임 구성

Header									Body
Sequence	Msg C/L	Response Value	송신 Node ID	송신 Task ID	Task Sequence	OP Code		Payload Length	Data
						Type	Kind
1	1	1	1	1	1	1	1	2	n

(단위: byte)

(2) 프레임 형식

필드	기능	길이	비고
Msg Seq	통신 일련번호	9(1)	범위(1,,255)
Msg C/L	Multi Packet 구분	9(1)	0x11:데이터 전송 시작 0x01:데이터 전송 계속 0x00:데이터 전송 종료 (Single Packet일 경우 기본값 0x00을 설정함)
Res Flag	Packet응답 여부	9(1)	0:응답필요없음 1:수신결과요청
Send Node ID	데이터를 전송하는 노드ID	9(1)	노드 및 타스크 정의 참조
Send Task ID	데이터를 전송하는 타스크ID	9(1)	노드 및 타스크 정의 참조
Task Seq No	데이터를 전송하는 타스크의 일련번호	9(1)
OP Code	데이터 내용을 구분하는 업무코드	9(2)	OP Code 정의 참조
Data Length	Data필드의 크기	X(2)	상위바이트에 데이터 크기를 128로 나눈 몫, 하위바이트에 데이터 크기를 128로 나눈 나머지를 기입함
Data	데이터 내용	n

[9(n) nByte의 Number, X(n) nByte의 Binary]

• 노드/Task ID : 모든 프로세스는 고유의 번호를 할당받게 되며 프로세스 번호로 노드 및 Task ID를 계산한다.

(예) 노드 ID = 프로세스번호 / 10000,  Task ID = 프로세스번호 % 100

VMS 운영단말 프로세스 번호 10202

노드 ID	: 10202 / 10000 = 1

타스크 ID	: 10202 % 100  = 2

• 데이터 전송 순서 : Little Endian 정렬

예) Length 4128byte일 경우 Hex 값은 0x1020

MSB       LSB

10	20

(3) Data 프레임 형식

Data 프레임은 통신 패킷 중 헤더를 제외한 데이터 패킷(Payload data)를 의미한다.

항목	설명	길이	비고
Data	추가 Data 정보	n	사용하지 않는 경우 생략함

(4) OP 코드 정의

OPCode는 256개의 명령을 전송하도록 1바이트로 구성하였으며 향후 운영시스템의 추가 확장을 고려하여 OPTYPE으로 namespace를 구분하도록 구성하였다.

업무구분	Type	설명	Kind	비고
공통기능	0x01	프로그램 동작상태 요청	0x01
		프로그램 동작상태 응답	0x02
		마스터정보 변경 알림	0x03
		ACK	0x04
		NACK	0x05
VMS 서버	0x03	VMS시설물 상태정보 요청	0x01
		VMS시설물 상태정보 전송	0x02
		VMS 전광판 On/Off 제어	0x03
		실시간 VMS 정보제공 요청	0x04
		실시간 VMS 제공정보 준비	0x05
		실시간 VMS 제공정보 전송준비 결과	0x06
		실시간 VMS 제공 폼 전송	0x07
		VMS 사용자 메시지 전송	0x08
		VMS 상태정보 전송	0x09
		VMS 모듈전원 상태정보 전송	0x0A
		VMS 정지영상 요청	0x11

VMS 서버	0x03	VMS 파라미터 변경 알림	0x12
		VMS 운영모드 변경	0x13
		VMS 제어기 리셋	0x0F

(5) OPCode 별 프레임 구성

① 공통 기능

● 프로그램 동작 상태 요청

인터페이스 정의
I/F ID		OP Code	Type	0x01	I/F 방식	UDP	발생 빈도	17280/일
			Kind	0x01
송신 정보	프로그램명	전체 시스템			수신 정보	프로그램명	전체 시스템
업무 설명	운영서버 및 운영단말의 프로그램에 대한 현재의 동작상태(DB연결, 통신상태 등) 정보를 요청한다. Packet을 수신한 모든 프로그램은 요청 시스템으로 ‘프로그램 동작상태 전송’ Packet을 즉시 전송하여야 한다.

인터페이스 명세

없음

● 프로그램 동작 상태 응답

인터페이스 정의
I/F ID		OP Code	Type	0x01	I/F 방식	UDP	발생 빈도	17280/일
			Kind	0x02
송신 정보	프로그램명	전체 시스템			수신 정보	프로그램명	전체 시스템
업무 설명	모든 운영서버 및 운영단말 프로그램은 동작상태정보(DB연결, 통신상태 등)를 메모리 관리하고 있어야 하며, ‘프로그램 동작상태 요청’ Packet을 수신하면 즉시 상태정보를 전송하여야 한다.

인터페이스 명세
속성명	길이	단위	내용	비고
DB상태	9(1)		데이터베이스 연결 상태 또는 마스터 데이터 설정 상태	0:장애 1:정상 2:해당 없음
통신상태	9(1)		현장장비 또는 정보 수집 및 제공과 관련된 통신 상태	0:장애 1:정상 2:해당 없음
동작상태	9(1)			0 : Standby 1 : Active2 : Change

● 마스터 정보 변경 알림

인터페이스 정의
I/F ID		OP Code	Type	0x01	I/F 방식	UDP	발생 빈도	수시
			Kind	0x03
송신 정보	프로그램명	운영단말			수신 정보	프로그램명	운영 통신서버
업무 설명	주요 마스터정보가 변경되면 관련 프로그램으로 변경 정보를 전송하고, 수신측 프로그램은 즉시 해당 마스터정보와 관련된 메모리 데이터를 업데이트 해야 한다.

인터페이스 명세
속성명		길이	단위	내용	비고
정보 유형		9(1)		마스터정보 유형	1:VMS관련정보 2:CCTV관련정보
대상 프로그램 개수		9(1)		변경 정보와 관련된 대상 프로그램 개수
대상 프로 그램 개수 만큼 반복	대상 노드ID	9(1)		변경된 마스터정보와 관련된 노드ID	노드 및 타스크 정의 참조
	대상 타스크ID	9(1)		변경된 마스터정보와 관련된 타스크ID	노드 및 타스크 정의 참조

● ACK

인터페이스 정의
I/F ID		OP Code	Type	0x01	I/F 방식	UDP	발생 빈도	수시
			Kind	0x04
송신	프로그램명	전체 시스템			수신	프로그램명	전체 시스템
업무 설명	Packet의 Header부에 있는 Res Flag 값이 ‘1’인 경우에 Packet수신 결과가 정상(긍정)일 때 송신측 프로그램으로 전송한다.

인터페이스 명세
속성명		길이	단위	내용	비고
수신OPCode	Type	9(1)		수신 Packet의 OPCode Type
	Kind	9(1)		수신 Packet의 OPCode Kind
수신 일련번호		9(1)		수신 Packet의 통신일련번호

● NACK

인터페이스 정의
I/F ID		OP Code	Type	0x01	I/F 방식	UDP	발생 빈도	수시
			Kind	0x05
송신	프로그램명	전체시스템			수신	프로그램명	전체시스템
업무 설명	Packet의 Header부에 있는 Res Flag 값이 ‘1’인 경우에 Packet수신 결과가 비정상(부정)일 때 송신측 프로그램으로 전송한다.

인터페이스 명세
속성명		길이	단위	내용	비고
수신OPCode	Type	9(1)		수신 Packet의 OPCode Type
	Kind	9(1)		수신 Packet의 OPCode Kind
수신 일련번호		9(1)		수신 Packet의 통신일련번호
오류 코드		9(1)		오류에 대한 결과 코드	0:기타 1:length 2:unKnown

② VMS 기능

● VMS시설물 상태정보 요청

인터페이스 정의
I/F ID		OP Code	Type	0x03	I/F 방식	UDP	발생 빈도	1440/일
			Kind	0x01
송신 정보	프로그램명	VMS서버			수신 정보	프로그램명	VMS운영단말
업무 설명	1분주기로 Local VMS로부터 수집된 VMS의 시설물 상태정보를 VMS운영단말에서 전송요청을 한다.

인터페이스 명세
속성명	길이	단위	내용	비고
VMS ID	X(10)		VMS 제어기ID
제공여부	9(1)		제고여부	0: 제공종료 1: 제공시작

● VMS시설물 상태정보 전송

인터페이스 정의
I/F ID		OP Code	Type	0x03	I/F 방식	UDP	발생 빈도	1440/일
			Kind	0x02
송신 정보	프로그램명	VMS서버			수신 정보	프로그램명	VMS운영단말
업무 설명	VMS의 시설물 상태정보를 1분주기로 Local VMS로부터 수집하여 VMS운영단말로 전송한다. 제어기 통신 상태가 장애인 경우에는 다른 상태정보는 모두 무시한다.

인터페이스 명세
속성명	길이	단위	내용	비고
VMS ID	X(10)		VMS 제어기ID
유선통신상태	9(1)		유선통신상태	0: 장애 1: 정상
무선통신상태	9(1)		무선통신상태	0: 장애 1: 정상
전압	9(1)	Volt	제어기 전압	범위(0,,255)
온도	9(1)	C	함체 내부 온도	범위(-127,,126)
도어	9(1)		함체 문 상태	0:열림 1:닫힘
히터 상태	9(1)		히터 동작 상태	0:동작안함 1:동작중
팬 상태	9(1)		팬 동작 상태	0:동작안함 1:동작중
모듈 상태	9(1)		모듈 상태	0:장애 1:정상
모듈 전원 상태	9(1)		모듈 전원 상태	0:장애 1:정상
모듈 휘도값	9(1)		최대 휘도값을100으로 했을 때의 백분율 값	범위(0,,100)

● VMS 전광판 On/Off 제어

인터페이스 정의
I/F ID		OP Code	Type	0x03	I/F 방식	UDP	발생 빈도	수시
			Kind	0x03
송신	프로그램명	VMS운영단말			수신	프로그램명	VMS서버
업무 설명	VMS 전광판을 On/Off 제어시VMS통신P/G으로 전송하고, VMS통신P/G은 Packet을 수신 후 즉시 해당 VMS제어기에 제어 메시지를 전송한다.

인터페이스 명세
속성명	길이	단위	내용	비고
VMS ID	X(10)		VMS 제어기ID
운영자 ID	X(10)		운영자 ID
구분	9(1)		제어 구분	0:Off 1:ON

● 실시간 VMS 정보 제공 요청

인터페이스 정의
I/F ID		OP Code	Type	0x03	I/F 방식	UDP	발생 빈도	수시
			Kind	0x04
송신	프로그램명	VMS운영단말			수신	프로그램명	VMS서버
업무 설명	VMS서버에서 현장의 VMS로 제공하고 있는 실시간 정보 요청을 시작/종료 하기 위해 전송한다. VMS통신P/G에서는 Packet수신 후 해당 VMS로 제공되는 정보를 송신측 프로그램으로 전송 시작 또는 종료를 해야 한다.

인터페이스 명세
속성명	길이	단위	내용	비고
VMS ID	X(10)		VMS 제어기ID	‘ALL’로 설정하면 전체 VMS를 의미함
구분	9(1)		제공 여부	0:제공 종료 1:제공 시작

● 실시간 VMS 제공정보 준비

인터페이스 정의
I/F ID		OP Code	Type	0x03	I/F 방식	UDP	발생 빈도	수시
			Kind	0x05
송신	프로그램명	VMS서버			수신	프로그램명	VMS운영단말
업무 설명	VMS서버에서 현장의 VMS로 제공하고 있는 실시간 폼 정보를 ‘실시간 VMS정보제공 요청’ Packet을 수신하여 정보를 제공하여야 할 프로그램으로 전송한다.

인터페이스 명세
속성명	길이	단위	내용	비고
VMS ID	X(10)		VMS ID
Form Count	9(1)		VMS 폼 갯수	범위(1,,20)

● 실시간 VMS 제공정보 전송준비결과

인터페이스 정의
I/F ID		OP Code	Type	0x03	I/F 방식	UDP	발생 빈도	수시
			Kind	0x06
송신	프로그램명	VMS서버			수신	프로그램명	VMS운영단말
업무 설명	VMS서버에서 현장의 VMS로 제공하고 있는 실시간 시나리오 정보를 ‘실시간 VMS정보제공 요청’ Packet을 수신하여 정보를 제공하여야 할 프로그램으로 전송한다.

인터페이스 명세
속성명	길이	단위	내용	비고
Result	X(10)		준비결과

● 실시간 VMS제공 폼 전송

인터페이스 정의
I/F ID		OP Code	Type	0x03	I/F 방식	UDP	발생 빈도	수시
			Kind	0x07
송신 정보	프로그램명	VMS 운영단말			수신 정보	프로그램명	VMS서버
업무 설명	ITS운영단말에서 현장의 VMS로 사용자 메시지를 제공하기 위해 VMS 사용자 메시지 전송요청 Packet을 전송한다.

인터페이스 명세
속성명	길이	단위	내용	비고
VMS ID	X(10)		VMS 제어기ID
일련번호	X(2)		폼일련번호	1~20
폼표출시간	X(2)	초	폼 표출시간	1~60
폼배경색	X(1)		폼배경의 색	0:Black 1:Red 2:Green 3:Amber
폼배경폭	X(1)		폼배경의 폭
폼배경높이			폼배경의 높이
폼표출효과			폼배경의 효과
폼표출방향			폼표출의 방향	1:UP 2:Down 3:Left 4:Right
도형식소통상황표출여부			도형식 소통상황 표출
Object갯수			Object갯수

● VMS 사용자 메시지 전송

인터페이스 정의
I/F ID		OP Code	Type	0x03	I/F 방식	UDP	발생 빈도	수시
			Kind	0x08
송신 정보	프로그램명	VMS서버			수신 정보	프로그램명	VMS운영단말
업무 설명	VMS서버에서 현장의 VMS로 제공하고 있는 실시간 도형식 제공정보를 ‘실시간 VMS정보제공 요청’ Packet을 수신하여 정보를 제공하여야 할 프로그램으로 전송한다.

인터페이스 명세
속성명	길이	단위	내용	비고
VMS ID	X(10)		VMS 제어기ID
메시지등록	9(14)		메시지등록일시

● VMS 상태설정정보 전송

인터페이스 정의
I/F ID		OP Code	Type	0x03	I/F 방식	UDP	발생 빈도	수시
			Kind	0x09
송신	프로그램명	VMS운영단말			수신	프로그램명	VMS서버
업무 설명	운영관리 단말 프로그램에서 함체정보 설정을 변경하였을 경우, VMS통신 P/G으로 전송한다. VMS통신 P/G는 수신 즉시 현장 VMS로 상태정보 설정메시지를 전송한다.

인터페이스 명세
속성명	길이	단위	내용	비고
VMS ID	X(10)		VMS 제어기ID
계획된메시지동작시간	9(4)		계획된 메시지 동작시간	초
모듈전원 OFF 온도	9(1)		모듈전원 OFF 온도
Fan동작 기준온도	9(1)		Fan동작 기준온도
Heater동작 기준온도	9(1)		Heater동작 기준온도
모듈장애 판단율	9(1)		모듈장애 판단율	%
최대 재시도 횟수	9(1)		재시도 횟수
최대응답대기시간	9(4)		최대응답대기시간	초

● VMS 모듈전원 상태정보 전송

인터페이스 정의
I/F ID		OP Code	Type	0x03	I/F 방식	UDP	발생 빈도	수시
			Kind	0x0A
송신 정보	프로그램명	VMS 통신서버			수신 정보	프로그램명	VMS 운영단말
업무 설명	현장 VMS 모듈의 전원 상태정보를 VMS운영단말 P/G으로 전송한다.

인터페이스 명세
속성명	길이	단위	내용	비고
VMS ID	X(10)		VMS 제어기ID
모듈전원상태정보	9(1)		VMS 모듈전원 상태정보	0 : 장애 1 : 정상

● VMS 제어기 리셋 정보전송

인터페이스 정의
I/F ID		OP Code	Type	0x03	I/F 방식	UDP	발생 빈도	수시
			Kind	0x0F
송신 정보	프로그램명	VMS 통신서버			수신 정보	프로그램명	VMS 운영단말
업무 설명	현장 VMS 제어기를 리셋 한다.

인터페이스 명세
속성명	길이	단위	내용	비고
VMS ID	X(10)		VMS 제어기ID
운영자ID	9(10)		VMS 모듈전원 상태정보

● VMS 정지영상 요청

인터페이스 정의
I/F ID		OP Code	Type	0x03	I/F 방식	UDP	발생 빈도	수시
			Kind	0x11
송신 정보	프로그램명	VMS 통신서버			수신 정보	프로그램명	VMS 운영단말
업무 설명	Local VMS의 현재 표출중인 메시지의 정지영상을 수신하기 위해 전송한다. VMS통신P/G은 Local VMS로부터 수신된 정지영상 파일을 ‘파일전송’ Packet으로 송신측 프로그램으로 전송한다.

인터페이스 명세
속성명	길이	단위	내용	비고
VMS ID	X(10)		VMS 제어기ID

● VMS 파라미터 변경 알림

인터페이스 정의
I/F ID		OP Code	Type	0x03	I/F 방식	UDP	발생 빈도	수시
			Kind	0x12
송신 정보	프로그램명	VMS 통신서버			수신 정보	프로그램명	VMS 운영단말
업무 설명	VMS 파라메터(전광판 On/Off 설정, 조도 설정 등)가 변경되면 전송한다. VMS통신P/G은 Packet 수신 후 해당 VMS로 파라메터 설정 Packet을 전송한다.

인터페이스 명세
속성명	길이	단위	내용	비고
VMS ID	X(10)		VMS 제어기ID

● VMS 운영모드 변경

인터페이스 정의
I/F ID		OP Code	Type	0x03	I/F 방식	UDP	발생 빈도	수시
			Kind	0x13
송신 정보	프로그램명	VMS 통신서버			수신 정보	프로그램명	VMS 운영단말
업무 설명	VMS의 운영모드(자동, 수동, 긴급)가 변경되면 전송한다. VMS통신P/G은 Packet 수신 후 변경된 모드에 해당하는 시나리오를 즉시 전송한다.

인터페이스 명세
속성명	길이	단위	내용	비고
VMS ID	X(10)		VMS 제어기ID
운영모드	9(1)		VMS 운영자모드	1:자동 2:수동 3:긴급

2. VMS 인터페이스 정의

지역센터와 현장VMS간 인터페이스는 Packet통신을 이용하며, 통신 방식 및 구성은 본 문서에 정의된 형식을 따른다.

2.1 유선통신

2.1.1 통신방법

- 통신 프로토콜은 TCP/IP를 기본으로 이용하며 파일 전송의 경우 FTP를 이용한다.

- Server는 센터가 되고 Client는 현장 VMS가 된다.

- Client는 Server 최초 접속시 및 통신 절단 후 재접속시에는 접속요청 및 요청수락 절차를 1회 수행한다.

- Client는 Server에 접속 유지하여 데이터를 전송하며, Server는 Client의 데이터를 연결 유지한 생태로 처리한다.

- 데이터 패킷의 최대 Diagram Size는 1024Kbytes로 한다.

- 실시간 정보처리 및 신속성을 고려하여 비동기 통신을 한다.

- 연계 데이터 항목 및 정의, 통신절차, Encoding/Decoding 방법은 국토해양부에서 정의된 ‘기본교통정보 교환 기술기준Ⅲ(안)’에서 제시한 기준을 준수한다. (별첨 자료 참조)

- Heartbeat 전송 주기는 Client에서 적정한 시간을 정하되 10~30초 주기를 권장한다.

- Response Time은 Client에서 통신환경에 맞게 설정하되 5초 정도를 권장한다.

- 패킷전송에 대한 보장(Subscribe_Gaurantee_bool)은 True로 설정한다.

2.1.2 통신절차

① 세션 설정

- Server는 ‘개시 요청(initiate request)’ 데이터 패킷을 전송하여 세션을 설정할 수 있다.

- Client는 Server로부터 ‘개시 요청’ 데이터 패킷을 수신 받았을 경우, 또는 Client가 세션을 설정하려 할 경우에는 ‘로그인(Log-in)’ 데이터 패킷을 전송하여야 한다.

- 로그인’ 데이터 패킷의 수신 후 Server는 ‘로그인’ 데이터 패킷의 유효성을 판단해야 한다. 만약 요청이 유효하다면 ‘수용(Accept)’ 데이터 패킷으로 응답하고, 그렇지 않을 경우에는 ‘거부(Reject)’ 데이터 패킷으로 응답한다. (보안상의 이유가 있을 경우 응답하지 않는다.)

- 자세한 내용은 국가표준(KS X ISO 14827-2)을 참조한다.

② 세션 유지

- 세션들은 ‘FrED’ 데이터 패킷을 교환하는 Client와 Server에 의해 유지된다.

- 세션 중 어느 시점에서라도 최대 Heartbeat duration을 초과하는 기간 동안 다른 시스템으로부터 아무런 데이터 패킷의 수신이 이루어지지 않으면 아무런 데이터의 교환 없이 Client와 Server에 의해 즉각 연결이 종료되어야 한다.

- 자세한 내용은 국가표준(KS X ISO 14827-2)을 참조한다.

[그림] 세션 유지 절차

③ 세션 종료

- 세션은 Client 또는 Server에 의해 능동적으로 종료될 수 있다.

- Server가 세션을 종료하려 할 경우에는 ‘종료 요청(terminate-request)’ 데이터 패킷을 전송해야 한다. 만약 서버가 두 번의 시도 후에도 아무런 응답을 받지 못하였을 때 서버는 세션을 종료시켜야 한다.

- Client는 유효한 ‘종료 요청(terminte-request)’ 데이터 패킷을 수신하였거나 세션을 종료하려할 때에는 서브스크립션 cancellations를 전송해야 한다. 계속되는 서브스크립션들을 취소하려 한다면 로그아웃 데이터 패킷을 참조한다.

- 유효한 로그아웃 데이터 패킷을 수신 후에는 Server는 이에 관련된 세션을 종료하고 ‘FrED’ 데이터 패킷을 발생시켜야 한다.

- Client는 ‘FrED’의 수신 후 세션을 종료해야 한다.

- 자세한 내용은 국가표준(KS X ISO 14827-2)을 참조한다.

[그림] 세션 종료 절차

④ 정보의 요청

- Client는 ‘서브스크립션’ 데이터 패킷 전송 기능을 지원해야 한다.

- Server는 처리된 온라인 요청을 처리하기 위해 서브스크립션 데이터 패킷을 수용할 수 있어야 한다.

- 서브스크립션 데이터 패킷의 수신 후 Server는 ‘수용’ 또는 ‘거부’ 데이터 패킷을 보내 응답해야 한다. 이 때 ‘수용’은 단지 데이터가 제대로 수신되고 시스템에 의해 해석되었음만을 나타낼 뿐 최종 응용 프로그램이 요청 서브스크립션을 받아들일 것인지에 대해서는 보증하지 않는다.

- 자세한 내용은 국가표준(KS X ISO 14827-2)을 참조한다.

[그림] 정보 요청 절차

⑤ 정보의 공개

- Client가 데이터그램 공개를 요청한 경우,  생성되는(resulting) 데이터그램이 교환 협정(Interchange Agreement)에 정의된 최대 데이터그램 크기보다 작은 경우에는 퍼블리케이션 데이터 패킷은 퍼블리케이션 데이터를 포함해야 한다.

- Client가 퍼블리케이션이 부적절하게 인코딩되었다 판단되었을 경우에는 ‘거부’ 데이터 패킷을 발생시켜야만 한다.(다만 퍼블리케이션 데이터 구조인 경우를 제외하고) 그렇지 않다면 datexPublish-Guarantee-bool이 ‘true’로 설정된 경우라면 ‘수용’ 데이터 패킷을 생성해야 한다.퍼블리케이션이 유효하고 datexPublish-Guarantee-bool이 ‘false’로 설정된 경우에는 아무런 응답이 송신되지 않는다.

- 자세한 내용은 국가표준(KS X ISO 14827-2)을 참조한다.

[그림] 정보 공개 절차

ID	정보명	정보내용	정보교환주기	인터페이스
301	실시간정보 표출메시지	메시지ID, 표출유지시간, 표출모드, 표출방향, 배경색, 오브젝트 정보	5분	센터->로컬
302	계획된 정보 표출메시지	메시지 개수, 메시지ID	5분	센터->로컬
303	그래픽다운로드메시지	그래픽ID, 그래픽 데이터	발생시	센터->로컬
304	상태제어 메시지	모듈전원제어코드, 휘도 제어코드, Heater동작 제어코드, 외부 조명 동작 제어코드, 경광등 동작 제어코드, 스피커 동작 제어코드, 제어기 리셋 여부, 제어기 시간리셋	변경시	센터->로컬
305	상태설정 메시지	계획된 메시지 동작시간, 모듈전원Off온도값, Fan동작 기준 온도값, Heater동작 기준 온도값, 외부전등 동작 기준 휘도값, 모듈 장애율, 최대 재시도 횟수, 최대 응답대기 시간, 점멸 시간주기	변경시	센터->로컬
306	기본상태 정보 메시지	도어상태정보, 모듈전원상태정보, 함체온도값, Fan 동작상태, Heater 동작상태, 외부조명 동작상태, 경광등 동작상태정보, 스피커 동작상태정보, 제어기 시각, 계획된 메시지 동작시간, 모듈전원 Off 온도값, Fan 동작기준 온도값, Heater 동작기준 온도값, 외부전등 동작기준 휘도값, 모듈 장애율, 최대 재시도 횟수, 최대응답대기시간, 점멸시간 주기	1분	로컬->센터
307	전원상태 정보 메시지	파워 개수, 파워 On/Off상태	1분	로컬->센터
308	모듈상태 정보 메시지	가로 모듈수, 세로 모듈수, 모듈 On/Off 상태	1분	로컬->센터
309	도트상태 정보 메시지	가로 도트수, 세로 도트수, 도트상태정보	1분	로컬->센터
310	표출상태 정보 메시지	촬영시간, VMS영상정보	요청시	로컬->센터
311	표출정보 메시지	실시간정보표출메시지와 동일	요청시	로컬->센터
312	도형식정보 표출메시지	메시지 ID, 모듈번호, 표출정보코드	5분	센터->로컬

2.1.3 정보 구성

정보교환주기, 인터페이스에 따라 다음과 같이 정보별ID와 정보내용을 구분한다.

① 전체 패킷 구조

Header부	Data부					Tail부
Datex Version No	Authentication Info	Data Packet No.	Data PacketPriority No.	Header Option	PDU	CRC

② Header부 패킷 구조

순번	표준안 명칭	타입	설명	비고
1	Datex-version-number	ENUMERATED	Datex버전 번호	Version 1
2	Datex-AuthenticationInfo-txt	OCTET STRING	각 시스템간의 연결을 위해 메시지에 포함하기로 동의한 인증정보	SIZE(0,,255)
3	Datex-DataPacket-number	INTEGER	데이터의 패킷번호	Range(0,,4294967295)
4	Datex-PacketPriority-number	INTEGER	메시지 우선순위	Range(0,,10)
5	Datex-OriginAddress-location	OCTET STRING	송신부 시스템의 주소
6	Datex-DestinationAddress-location	OCTET STRING	수신부 시스템의 주소
7	Datex-DataPcket-time	TIME	데이터 패킷이 생성된 시각

③ Tail부 패킷 구조

순번	표준안 명칭	타입	설명	비고
1	Datex-Crc-nbr	OCTET STRING	Error를 체크하기 위해 사용되는 코드 (ISO 3309에 정의된 CRC16 알고리즘을 적용하여 결정된 코드값 사용)	SIZE(2)

④ Data부 패킷

센터에서 표출하고자 하는 정보를 VMS로 송출할 때 사용하는 메시지 구조는 다음과 같이 한다.

● 실시간 표출 메시지

필드명	변수형	필수여부	설명
Message-serialID	OCTET STRING	필수	메시지 고유식별ID
Display-DurationQty	INTEGER	필수	정보를 표출하여 유지하는 표출시간 - 단위 : 초
Display-ModeCode	ENUMERATED	필수	표출기능코드 ※[표 - 1] 참조
Display-DirectionCode	ENUMERATED	필수	표출방향코드 ※[표 - 2] 참조
Background-ColorCode	ENUMERATED	필수	배경색상 ※[표 - 3] 참조
Object-Nbr	INTEGER	필수	오브젝트 개수
Objects	SEQUENCE OF	필수	다수의 오브젝트 구성 ※[표 - 4] 참조

[표 - 1] 메시지 표출기능 코드

필드명	속성명	값	설명
Stationary	정지화면	0	메시지의 정적 표출
shift	좌우로 이동	1	기존화면 위에 다음화면을 겹쳐서 해당 방향으로 다음 화면만 밀면서 표출
scroll	상하로 이동	2	기존 화면과 다음화면을 해당방향으로 밀면서 표출
wipe	소거 기능	3	기존화면을 지우면서 해당방향으로 표출
curtain-up	커튼형 표출	4	수평으로 나누어 중앙을 향해 표출
curtain-down		5	수평으로 나누어 중앙에서 바깥쪽으로 표출
curtain-left		6	수직으로 나누어 중앙을 향해 표출
curtain-right		7	수직으로 나누어 중앙에서 바깥쪽으로 표출
trace	트레이스 기능	8	한글자 크기에 대해 한칸씩 좌우로 표출
blind	블라인드 기능	9	각 모듈별로 나누어 해당방향으로 동시에 표출
blinking	깜박임	10	표출메시지 전체의 깜박임

[표 – 2] 메시지 표출방향 코드

필드명	속성명	값	설명
none	없음	0	해당사항 없음
up	상향	1	아래에서 위로 표출정보 이동
dwon	하향	2	위에서 아래로 표출정보 이동
left	좌향	3	오른쪽에서 왼쪽으로 표출정보 이동
down	우향	4	왼쪽에서 오른쪽으로 표출정보 이동

[표 – 3] 색상 코드

필드명	속성명	값	설명
black	흑색	0
red	적색	1
green	녹색	2
amber	황색	3

[표 – 4] 오브젝트 구성

필드명	변수형	필수여부	설명
object-TypeCode	ENUMERATED	필수	오브젝트 종류 - 0 : 문자열 오브젝트 - 1 : 그래픽 오브젝트 - 2 : 그래픽ID 오브젝트
blinking-Code	ENUMERATED	필수	데이터 점멸여부 - 0 : 지속 - 1 : 점멸
x-Coordinate	INTEGER	필수	데이터 표출위치 X좌표
y-Coordinate	INTEGER	필수	데이터 표출위치 Y좌표
data-BackgroundColor	ENUMERATED	필수	데이터 배경색 ※[표 - 3] 참조
object-Data	-	필수	[표 – 5], [표 - 6], [표 – 7] 참조

[표 – 5] 텍스트 오브젝트 데이터 형식

필드명	변수형	필수여부	설명
font-ColorCode	ENUMERATED	필수	폰트 색상 ※[표 - 3] 참조
font-Size	INTEGER	필수	폰트 크기
font-TypeCode	OCTET STRING	필수	폰트 종류 코드
font-Thinkness	ENUMERATED	필수	폰트 굵기 - 0 : 보통 - 1 : 굵게
text-Data	UTF8STRING	필수	표출할 문자열 데이터

[표 – 6] 그래픽 오브젝트 데이터 형식

필드명	변수형	필수여부	설명
graphic-Type	ENUMERATED	필수	그래픽 데이터 타입 - 0 : 비트맵 - 1 : gif - 2 : jpg - 3 : pcx
graphic-Width	INTEGER	필수	그래픽 가로크기
graphic-Height	INTEGER	필수	그래픽 세로크기
graphic-Data	OCTET STRING	필수	표출할 그래픽 데이터

[표 – 7] 그래픽ID 오브젝트 데이터 형식

필드명	변수형	필수여부	설명
graphic-Type	ENUMERATED	필수	그래픽 데이터 타입 - 0 : 비트맵 - 1 : gif - 2 : jpg - 3 : pcx
graphic-Width	INTEGER	필수	그래픽 가로크기
graphic-Height	INTEGER	필수	그래픽 세로크기
graphic-DataID	OCTET STRING	필수	표출할 그래픽 데이터의 ID

● 계획된 정보표출 메시지

VMS에 저장된 메시지를 계획된 순서에 따라 표출하기 위한 메시지 구조는 다음과 같이 한다.

필드명	변수형	필수여부	설명
message-Nbr	INTEGER	필수	표출할 메시지 총개수
message-serialIDs	SEQUENCE OF OCTET STRING	필수	표출할 메시지 고유식별ID 목록

● 그래픽다운로드 메시지

실시간정보표출메시지(RealTimeDisplayMessage) 중 그래픽ID 오브젝트를 구현하기 위하여 필요한 그래픽 데이터를 VMS로 전송하기 위한 메시지 구조는 다음과 같이 한다.

필드명	변수형	필수여부	설명
download-GraphicData-ID	OCTET STRING	필수	그래픽데이터 고유식별ID
download-GraphicData	OCTET STRING	필수	전송할 그래픽 데이터

● 상태제어 메시지

VMS상태를 제어하기 위한 메시지 구조는 다음과 같이 한다.

필드명	변수형	필수여부	설명
modulePower-ControlCode	ENUMERATED	필수	모듈전원제어코드 - 0 : 켜짐 - 1 : 꺼짐 - 2 : 자동
luminance-ControlCode	INTEGER	필수	휘도제어코드값
fan-ControlCode	ENUMERATED	필수	Fan 동작제어코드 - 0 : 켜짐 - 1 : 꺼짐 - 2 : 자동
heater-ControlCode	ENUMERATED	필수	Heater 동작제어코드 - 0 : 켜짐 - 1 : 꺼짐 - 2 : 자동
externalLight-ControlCode	ENUMERATED	선택	외부조명 동작제어코드 - 0 : 켜짐 - 1 : 꺼짐 - 2 : 자동
alarmLight-ControlCode	ENUMERATED	선택	경광등 동작제어코드 - 0 : 켜짐 - 1 : 꺼짐 - 2 : 자동
speaker-ControlCode	ENUMERATED	선택	스피커 동작제어코드 - 0 : 켜짐 - 1 : 꺼짐 - 2 : 자동
controller-Reset	BOOLEAN	선택	제어기 리셋여부 - TRUE : 리셋 - FALSE : 리셋안함
controllerTime-Reset	GeneralizedTime	선택	제어기 시간 리셋 (YYYYMMDDHHMMSS)

● 상태설정 메시지

VMS 시스템 환경설정을 위해 전송하는 메시지 구조는 다음과 같이 한다.

필드명	변수형	필수여부	설명
scheduledMessage-OperatingTimeQty	INTEGER	필수	계획된 메시지의 동작시간(초)
module-OperatingTemperatureQty	INTEGER	필수	모듈 전원이 꺼지는 온도값(℃)
fan-OperatingTemperatureQty	INTEGER	필수	Fan 동작 기준 온도값(℃)
heater-OperatingTemperatureQty	INTEGER	필수	Heater 동작 기준 온도값(℃)
externalLight-OperatingLuminanceQty	INTEGER	선택	외부전등 동작 기준 휘도값
module-BasicFailureRate	INTEGER	선택	모듈 장애율 한 개의 모듈을 장애로 처리하기 위한 픽셀의 백분율값
maximumRetry-Qty	INTEGER	선택	최대 재시도 횟수(회)
response-TimeOutQty	INTEGER	선택	최대응답대기시간 (초)
blinking-CycleTime	INTEGER	선택	점멸시간 주기 ( 1/10초단위)

● 기본상태정보 메시지

VMS의 기본적 상태 정보를 센터로 전송하기 위한 메시지 구조는 다음과 같이 한다.

필드명	변수형	필수여부	설명
door-StatusCode	ENUMERATED	필수	도어상태정보코드 0 : 열림, 1 : 닫힘
modulePower-StatusCode	ENUMERATED	필수	모듈전원상태정보코드 0 : 켜짐, 1 : 꺼짐, 2 : 자동
body-TemperatureQty	INTEGER	필수	함체온도값(℃)
luminance-StatusQty	INTEGER	필수	화면의 밝기값 (최대 휘도값을 100으로 했을 때의 백분율 값)
fan-StatusCode	ENUMERATED	필수	Fan 동작상태정보코드 0 : 켜짐, 1 : 꺼짐, 2 : 자동
heater-StatusCode	ENUMERATED	필수	Heater 동작상태정보코드 0 : 켜짐, 1 : 꺼짐, 2 : 자동
externalLight-StatusCode	ENUMERATED	선택	외부조명 동작상태정보코드 0 : 켜짐, 1 : 꺼짐, 2 : 자동
alarmLight-StatusCode	ENUMERATED	선택	경광등 동작상태정보코드 0 : 켜짐, 1 : 꺼짐
speaker-StatusCode	ENUMERATED	선택	스피커 동작상태정보코드 0 : 켜짐, 1 : 꺼짐
controller-CurrentTime	GeneralizedTime	선택	제어기 시간 (YYYYMMDDHHMMSS)
scheduledMessage-OperatingTimeQty	INTEGER	필수	계획된 메시지의 동작시간(초)
module-OperatingTemperatureQty	INTEGER	필수	모듈 전원이 꺼지는 온도값(℃)
fan-OperatingTemperatureQty	INTEGER	필수	Fan 동작 기준 온도값(℃)
heater-OperatingTemperatureQty	INTEGER	필수	Heater 동작 기준 온도값(℃)
externalLight-OperatingLuminanceQty	INTEGER	선택	외부전등 동작 기준 휘도값
module-BasicFailureRate	INTEGER	선택	모듈 장애율 (한 개의 모듈을 장애로 처리하기 위한 픽셀의 백분율값)
maximumRetry-Qty	INTEGER	선택	최대 재시도 횟수(회)
response-TimeOutQty	INTEGER	선택	최대응답대기시간 (초)
blinking-CycleTime	INTEGER	선택	점멸시간 주기 ( 1/10초단위)

● 전원상태정보 메시지

VMS에 장착된 전원의 개별 상태정보를 제공하기 위한 메시지로 다음과 같이 한다.

필드명	변수형	필수여부	설명
power-Qty	INTEGER	필수	VMS에 장착된 파워 개수
power-Status	BIT STRING	필수	VMS에 장착된 파워의 켜짐/꺼짐상태 정보

● 모듈상태정보 메시지

VMS에 장착된 모듈의 개별 상태정보를 제공하기 위한 메시지로 다음과 같이 한다.

필드명	변수형	필수여부	설명
module-HorizontalQty	INTEGER	필수	VMS의 가로 모듈수
module-VerticalQty	INTEGER	필수	VMS의 세로 모듈수
module-Status	BIT STRING	필수	VMS에 장착된 모듈의 켜짐/꺼짐 상태 정보

● 도트상태정보 메시지

VMS에 장착된 도트의 개별 상태정보를 제공하기 위한 메시지로 다음과 같이 한다.

필드명	변수형	필수여부	설명
dot-HorizontalQty	INTEGER	필수	VMS의 가로 도트수
dot-VerticalQty	INTEGER	필수	VMS의 세로 도트수
dots-Status	BIT STRING	필수	VMS에 장착된 도트의 상태정보로 4bit단위로 하나의 도트 정보표현

● 표출상태정보 메시지

현장시스템에 VMS 표출부의 촬영장치가 설치되었을 경우 VMS 표출부의 영상정보를 전송하기 위한 메시지 구조는 다음과 같이 한다.

필드명	변수형	필수여부	설명
capture-Time	GeneralizedTime	필수	촬영시간
screenStatus-Data	OCTET STRING	필수	VMS의 영상정보

● 표출정보 메시지

VMS에 저장된 메시지 또는 표출 중인 메시지의 정보를 제공하기 위한 메시지 구조는 실시간정보 표출메시지와 동일하게 구성한다.

센터에서 표출하고자 하는 정보를 도형식VMS로 송출할 때 사용하는 메시지 구조는 다음과 같이 한다.

필드명	변수형	필수여부	설명
TravelTime-DisplayFlag	BOOLEAN	필수	여행시간 표출여부 - TRUE : 표출 - FALSE : 표출안함
GraphicModule-Data	SEQUENCE OF	필수	다수의 오브젝트로 구성 ※[표 - 8] 참조

[표 – 8] 도형식 모듈 오브젝트 데이터 형식

필드명	변수형	필수여부	설명
Module-number	INTEGER	필수	모듈 번호
Display-Data	INTEGER	필수	표출 데이터 값

2.1.4  최종 응용메시지 구조 정의

응용메시지 구조의 ASN.1 표기 정의는 다음과 같다.

① 실시간 정보 표출 메시지

RealTimeDisplayMessage ::= SEQUENCE{

message-serialID                       OCTET STRING,

display-DurationQty                    INTEGER,

display-ModeCode                      ENUMERATED {

stationary, shift, scroll, wipe, curtain-up, curtain-down, curtain-left, curtain-right, trace, blind, blinking

},

display-DirectionCode                 ENUMERATED{ none, up, down, left, right},

background-ColorCode                ENUMERATED{black, red, green, amber},

object-Nbr                                 INTEGER,

objects                                     SEQUENCE OF Object

}

Object :: = SEQUENCE {

object-TypeCode ENUMERATED{

text-object, graphic-object, graphic-id-object

},

blinking-Code	ENUMERATED{ off, on },

x-Coordinate             INTEGER,

y-Coordinate             INTEGER,

data-BackgroundColor    ENUMERATED{ black, red, green, amber},

object-Data              ObjectData

}

ObjectData ::= CHOICE {

text-object-data	TextObjectData,

graphic-object-data	GraphicObjectData,

graphicID-object-data	GraphicIDObjectData

}

TextObjectData ::= SEQUENCE {

font-ColorCode	ENUMERATED{black, red, green, amber},

font-Size	INTEGER,

font-TypeCode	OCTET STRING,

font-Thickness	ENUMERATED{normal, bold},

text-Data	UTF8STRING

}

GraphicObjectData ::= SEQUENCE {

graphic-Type	ENUMERATED{bitmap, gif, jpg, pcx},

graphic-Width	INTEGER,

graphic-Height	INTEGER,

raphic-Data	OCTET STRING

}

GraphicIDObjectData ::= SEQUENCE {

graphic-Type	ENUMERATED{bitmap, gif, jpg, pcx},

graphic-Width	INTEGER,

graphic-Height                     INTEGER,

graphic-DataID	OCTET STRING

}

② 계획된 정보표출 메시지

ScheduledDisplayMessage ::= SEQUENCE{

message-Nbr                         INTEGER,

message-serialIDs                     SEQUENCE OF OCTET STRING

}

③ 그래픽 다운로드 메시지

DownloadGraphicDataMessage ::= SEQUENCE{

download-GraphicData-ID	OCTET STRING,

download-GraphicData	OCTET STRING

}

④ 상태제어 메시지

StatusControlMessage ::= SEQUENCE{

modulePower-ControlCode	ENUMERATED{on, off,auto   },

luminance-ControlCode	INTEGER,

fan-ControlCode	ENUMERATED{on, off, auto},

heater-ControlCode	ENUMERATED{on, off, auto},

externalLight-ControlCode	ENUMERATED{on,  off, auto}	OPTIONAL,

alarmLight-ControlCode              ENUMERATED{on, off}	OPTIONAL,

speaker-ControlCode	ENUMERATED{on, off}	OPTIONAL,

controller-Reset	BOOLEAN	OPTIONAL,

controllerTime-Reset	GeneralizedTime	OPTIONAL

}

⑤ 상태설정 메시지

StatusSettingMessage ::= SEQUENCE{

scheduledMessage-OperatingTimeQty	INTEGER,

module-OperatingTemperatureQty	INTEGER,

fan-OperatingTemperatureQty	INTEGER,

heater-OperatingTemperatureQty	INTEGER,

externalLight-OperatingLuminanceQty	INTEGER	OPTIONAL,

module-BasicFailureRate	INTEGER	OPTIONAL,

maximum-RetryQty	INTEGER	OPTIONAL,

response-TimeOutQty	INTEGER	OPTIONAL,

blinking-CycleTime	INTEGER	OPTIONAL

}

⑥ 기본 상태정보 메시지

GeneralStatusMessage ::= SEQUENCE{

door-StatusCode	ENUMERATED{open, closed},

modulePower-StatusCode	ENUMERATED{on, off, auto},

body-TemperatureQty	INTEGER,

luminance-StatusQty	INTEGER,

fan-StatusCode	ENUMERATED{on, off, auto},

heater-StatusCode	ENUMERATED{on, off, auto},

externalLight-StatusCode	ENUMERATED{on, off, auto}	OPTIONAL,

alarmLight-StatusCode	ENUMERATED{on, off}	OPTIONAL,

speaker-StatusCode	ENUMERATED{on, off}	OPTIONAL,

controller-CurrentTime

GeneralizedTime	OPTIONAL,

scheduledmessage-OperatingTime	INTEGER,

module-OperatingTemperatureQty	INTEGER,

fan-OperatingTemperatureQty	INTEGER,

heater-OperatingTemperatureQty	INTEGER,

externalLight-OperatingLuminanceQty	INTEGER	OPTIONAL,

module-BasicFailureRate	INTEGER	OPTIONAL,

maximum-RetryQty	INTEGER	OPTIONAL,

response-TimeOutQty	INTEGER	OPTIONAL,

blinking-CycleTime	INTEGER	OPTIONAL

}

⑦ 전원 상태정보 메시지

PowerStatusMessage ::= SEQUENCE{

power-Qty	INTEGER,

power-Status	BIT STRING

}

⑧ 모듈 상태정보 메시지

ModuleStatusMessage ::= SEQUENCE{

module-HorizontalQty	INTEGER,

module-VerticalQty	INTEGER,

module-Status	BIT STRING

}

⑨ 도트 상태정보 메시지

DotStatusMessage ::= SEQUENCE {

dot-HorizontalQty	INTEGER,

dot-VerticalQty	INTEGER,

dots-Status                               BIT STRING

}

⑩ 영상 정보 메시지

ScreenStatusMessage ::= SEQUENCE{

capture-Time                             GeneralizedTime,

screen-StatusData                      OCTET STRING

}

⑪ 표출정보 메시지

DisplayingDataMessage ::= RealTimeDisplayMessage

⑫ 도형식 정보표출 메시지

GraphicDisplayingDataMessage ::= SEQUENCE{

TravelTime-DisplayFlag        BOOLEAN,

GraphicModule-Data            SEQUENCE OF GraphicModuleDispData

}

GraphicModuleDisplay := SEQUENCE {

Module-number                  INTEGER,

Display-Data                      INTEGER

}

2.2 무선 통신

2.2.1 통신 방법

- 통신 방식은 CDMA 모뎀을 이용하여 RS232c을 사용한다.

- Packet의 최대 사이즈는 1Kbyte로 제한한다.

- Byte Ordering은 Big Endian 방식을 사용한다.

- 통신 응답 시간은 3초를 기본으로 하며 통신환경 등을 고려하여 변경할 수 있다.

- Timeout이 발생하더라도 재시도는 하지 않는다.

2.2.2 통신 절차

Server는 Client와 유선통신 연결에 장애가 발생하였을 때 무선으로 정보를 제공하기 위해 해당 Client의 무선모뎀으로 Dial-up을 시도하고, 제공 Packet을 전송한 후 응답 Packet이 수신되거나 Timeout이 발생하면 즉시 연결을 종료한다.

2.2.3 패킷 구조

① 프레임 구성

Header					Body	Tail
STX	Device ID	OP Code	Packet No	Data Length	Data	Check Sum	ETX
1 byte	1 byte	1 byte	1 byte	2 byte	n byte	1 byte	1 byte

② 프레임 형식

항목	설명	길이	비고
STX	Packet의 시작	9(1)	0x02
Device ID	시설물 장치의 구분ID	9(1)	0x21
OP Code	데이터 내용을 구분하는 업무코드	9(1)	OP Code 정의 참조
Packet No	Packet 일련번호	9(1)	범위(1,,255)
Data Length	Data필드의 크기	9(2)	범위(0,,3064)
Data	데이터 내용	n
Check Sum	Packet의 Check Sum	9(1)	계산 범위는 STX부터 Data까지로 함
ETX	Packet의 종료	9(1)	0x03

각 필드의 길이는 9(n), X(n)로 표기하며 그 의미는 다음과 같다.

- 9(2) : 2byte의 Number이며 값의 범의에 따라 Sign 또는 Unsign으로 사용할 수 있다.

- X(10) : 10byte의 Binary이며 Default 값은 Null(0x00)로 채운다.

③ Body 프레임 구성

항목	설명	길이	비고
Data	추가 Data 정보	n	사용하지 않는 경우 생략함

④ OP Code 정의

구분	설명	OP Code	방향
ACK	승인	0x06	센터<-VMS
NACK	비승인	0x15	센터<-VMS
제어 명령 전송	VMS 제어정보 전송	0x25	센터->VMS
상태정보 요청	VMS 상태정보(함체, 모듈) 요청 데이터 전송	0x27	센터->VMS
상태정보 전송	VMS 상태정보(함체, 모듈) 데이터 전송	0x28	센터<-VMS

⑤ OP Code별 프레임 구성

● Ack

인터페이스 정의
I/F ID	IF_ADA_0001	OP Code	0x06	I/F 방식	TCP	발생 빈도	수시	전송 방향	센터<-VMS
업무 설명	Packet수신 결과가 승인(긍정)일 때 전송한다.

인터페이스 명세
속성명	길이	단위	내용	비고
VMS ID	9(2)		VMS 현장 ID	범위(1,,65535)
수신 OP Code	9(1)		수신 Packet Header부의 OP Code
수신 Packet No	9(1)		수신 Packet Header부의 Packet No

● NACK

인터페이스 정의
I/F ID	IF__0002	OP Code	0x15	I/F 방식	TCP	발생 빈도	수시	전송 방향	센터<-VMS
업무 설명	Packet수신 결과가 비승인(부정)일 때 전송한다.

인터페이스 명세
속성명	길이	단위	내용	비고
VMS ID	9(2)		VMS 현장 ID	범위(1,,65535)
수신 OP Code	9(1)		수신 Packet Header부의 OP Code
수신 Packet No	9(1)		수신 Packet Header부의 Packet No
오류 코드	9(1)		오류에 대한 결과 코드	0:기타 1:Data Length Error 2:Unknown OP Code 3:Invalid Device ID 4:Check Sum Error …

● 제어명령 전송

인터페이스 정의
I/F ID		OP Code		I/F 방식	TCP	발생 빈도	수시	전송 방향	센터->VMS
업무 설명	VMS에 제어 데이터를 전송한다. VMS는 Packet 수신 후 응답(ACK, NACK) Packet을 전송해야 한다.

인터페이스 명세
속성명	길이	단위	내용	비고
VMS ID	9(2)		VMS 현장 ID	범위(1,,65535)
제어 코드	9(1)		제어 코드	1:전광판 Power On 2:전광판 Power Off 3:시스템 Reset

● 상태정보 요청

인터페이스 정의
I/F ID		OP Code		I/F 방식	TCP	발생 빈도	1440/일	전송 방향	센터->VMS
업무 설명	VMS의 상태정보(함제, 모듈) 요구 데이터를 전송한다. VMS는 Packet 수신 후 응답(상태정보 전송) Packet을 전송해야 한다.

인터페이스 명세
속성명	길이	단위	내용	비고
VMS ID	9(2)		VMS 현장 ID	범위(1,,65535)

● 상태정보 전송

인터페이스 정의
I/F ID		OP Code		I/F 방식	TCP	발생 빈도	1440/일	전송 방향	센터<-VMS
업무 설명	VMS의 상태정보(함제, 모듈) 데이터를 전송한다.

인터페이스 명세
속성명	길이	단위	내용	비고
VMS ID	9(2)		VMS 현장 ID	범위(1,,65535)
전압	9(1)	Volt	출력 전압	범위(0,,255)
온도	9(1)	C	함체 내부 온도	범위(-127,,126)
기타 상태	X(1)		문이 열리거나 팬, 히터가 작동 중이면 해당 Bit를 1로 설정함 (디폴트 0x00)	7Bit:Reserved 6Bit:Reserved 5Bit:Reserved 4Bit:Reserved 3Bit:Reserved 2Bit:히터 1Bit:팬 0Bit:도어
모듈 전원	9(1)		모듈 전원 상태	0:장애 1:정상
모듈 개수	9(1)		전체 모듈 개수
모듈 상태	X(n)		각 모듈 상태를 Bit단위로 설정하고 상위 바이트에서 하위 바이트 순으로 사용한다. 모듈은 좌에서 우, 위에서 아래 순서로 상태 값을 설정한다.