123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209 |
- //---------------------------------------------------------------------------
- #ifndef CenterProtocolFH
- #define CenterProtocolFH
- //---------------------------------------------------------------------------
- //---------------------------------------------------------------------------
- #include <vcl.h>
- //---------------------------------------------------------------------------
- /*
- ******************************************************************************
- * 시스템 ID
- ******************************************************************************
- */
- #define PKT_STX 0x02
- #define PKT_ETX 0x03
- #define VMSM_NODE_ID 0x01
- #define VMSP_NODE_ID 0x04
- #define OPER_NODE_ID 0x09
- #define VMSM_TASK_ID 0x02
- #define VMSP_TASK_ID 0x01
- #define OPER_TASK_ID 0x01
- #define PRCS_TASK_NO 0x01 // default
- #define OPE_SYSTEM_CD 0x03 // 운영단말 시스템 코드
- #define OP_REG_INCIDENT 0x21 // 운영 단말 P/G ==> (VMS메시지 P/G, 운영 단말 P/G, 상황판 P/G), 돌발정보 등록 알림
- #define OP_REG_DISP_VMS_MSG 0x22 // 운영 단말 P/G ==> (VMS메시지 P/G), VMS표출문안 등록 알림
- #define OP_REG_DFLT_VMS_MSG 0x23 // 운영 단말 P/G ==> (VMS메시지 P/G), VMS디폴트문안 등록 알림
- #define OP_REG_EMER_VMS_MSG 0x24 // 운영 단말 P/G ==> (VMS메시지 P/G), VMS긴급문안 등록 알림
- #define OP_CTRL_VMS 0x71 // 운영 단말 P/G ==> (VMS P/G), VMS 제어
- // 8 P04010 VMS 제공 VMS서버 1.0 127.0.0.1 5 Y
- //13 P03030 VMS메시지 가공 VMS서버 1.0 127.0.0.1 5 Y
- /*
- ******************************************************************************
- * 시스템 상수 정의
- ******************************************************************************
- */
- #define INT_DEFAULT_TIMEOUT 3 /* 3 Sec */
- #define INT_MAX_RETRY_COUNT 3 /* 3 EA */
- /*
- ******************************************************************************
- * 프로토콜에서 사용되는 구조체 정의
- ******************************************************************************
- */
- //---------------------------------------------------------------------------
- #pragma pack(push, 1)
- //---------------------------------------------------------------------------
- /*
- * HEAD
- */
- typedef struct
- {
- BYTE Stx;
- BYTE Seq;
- BYTE MsgCl;
- BYTE RespTp;
- BYTE SendNodeId;
- BYTE SendTaskId;
- BYTE SendTaskNo;
- BYTE RecvNodeId;
- BYTE RecvTaskId;
- BYTE RecvTaskNo;
- BYTE SystemCode;
- BYTE OpCode;
- int BodySize;
- } HEADER;
- typedef struct
- {
- BYTE Crc; // STX부터 Data까지의 XOR 값, 0x00
- BYTE Etx;
- } TAIL;
- #define OPER_ID_SZ 10
- #define VMS_ID_SZ 10
- #define DATETIME_SZ 14
- typedef struct
- {
- BYTE OperId[OPER_ID_SZ];
- BYTE VmsId[VMS_ID_SZ];
- BYTE ReqTime[DATETIME_SZ];
- BYTE Command;
- } VMS_CONTROL;
- // ‘X' : Reset
- typedef struct
- {
- HEADER Head;
- VMS_CONTROL Control; // Command = 'X'
- TAIL Tail;
- } VMS_REQ_RESET;
- // ‘B' : Blank 제어
- typedef struct
- {
- HEADER Head;
- VMS_CONTROL Control; // Command = 'B'
- TAIL Tail;
- } VMS_REQ_BLANK;
- // ‘P' : 통신장애시간설정
- typedef struct
- {
- HEADER Head;
- VMS_CONTROL Control; // Command = 'P'
- BYTE ErrMin; // VMS와 통신 장애 판단 기본 값(분) default: 0분
- TAIL Tail;
- } VMS_REQ_ERR_MIN;
- // ‘M' : 모듈장애율설정
- typedef struct
- {
- HEADER Head;
- VMS_CONTROL Control; // Command = 'M'
- BYTE ErrRate; // module을 장애로 처리하는 pixel백분율(%), default: 10%
- TAIL Tail;
- } VMS_REQ_ERR_NODL;
- // ‘L': 휘도 설정
- typedef struct
- {
- HEADER Head;
- VMS_CONTROL Control; // Command = 'L'
- BYTE LumiMode; // 0: 자동모드, 1:주간모드, 2:야간모드, 3:수동모드
- BYTE Value; // 주간,야간,수동 모드일때 설정값(0~100), 자동은 0
- TAIL Tail;
- } VMS_REQ_LUMI;
- // ‘S': 전광판전원 설정
- typedef struct
- {
- HEADER Head;
- VMS_CONTROL Control; // Command = 'S'
- BYTE Power; // 0: 전원 차단, 1:전원 재개
- TAIL Tail;
- } VMS_REQ_POWER;
- #define MAX_DB_SCERNRIO 9
- typedef struct
- {
- BYTE DispSeq; // 표출 파일 순번 (0 인 경우 표출 안함)
- BYTE DispSec; // 표출 시간(초)
- } VMS_DB_SCNR_INFO;
- typedef struct
- {
- VMS_DB_SCNR_INFO Info[MAX_DB_SCERNRIO];
- } VMS_DB_SCNR;
- typedef struct
- {
- HEADER Head;
- VMS_CONTROL Control; // Command = 'S'
- VMS_DB_SCNR Scnr; // 최대 9개 메시지
- TAIL Tail;
- } VMS_REQ_DB_SCENARIO;
- typedef struct
- {
- HEADER Head;
- TAIL Tail;
- } VMS_NOTI_REG_INCD;
- typedef struct
- {
- HEADER Head;
- TAIL Tail;
- } VMS_NOTI_REG_DSPL_MSG;
- typedef struct
- {
- BYTE VmsId[VMS_ID_SZ];
- } NOTI_VMS;
- typedef struct
- {
- HEADER Head;
- NOTI_VMS Data;
- TAIL Tail;
- } VMS_NOTI_REG_DFLT_MSG;
- typedef struct
- {
- HEADER Head;
- NOTI_VMS Data;
- TAIL Tail;
- } VMS_NOTI_REG_EMGN_MSG;
- //---------------------------------------------------------------------------
- #pragma pack(pop)
- //---------------------------------------------------------------------------
- #endif
|