123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- /****************************************************************************
- * @source : VMSProtocol.h
- * @description : VMS Protocol header
- ****************************************************************************
- * DATE AUTHOR DESCRIPTION
- * --------------------------------------------------------------------------
- * 2016/09/02 shjung [100] First Cut
- *
- ****************************************************************************/
- //---------------------------------------------------------------------------
- #ifndef __VMSPROTOCOL_H__
- #define __VMSPROTOCOL_H__
- //---------------------------------------------------------------------------
- #pragma pack(push, 1)
- //---------------------------------------------------------------------------
- #include "ITSVmsAsn.h"
- //#define DEFAULT_FRAME_MAX_SIZE 1536 // default frame max size
- #define DEFAULT_TCP_PACKET_MAX_SIZE 1460 // default tcp packet max size
- //#define DEFAULT_UDP_PACKET_MAX_SIZE 1472 // default udp packet max size
- //#define DEFAULT_MAX_PACKET_SIZE 65535 // default max packet size
- #define VMS_DEFAULT_PORT 6020 /* 기본 포드 */
- #define VMS_DEFAULT_TIMEOUT 5 /* 5 Sec */
- #define VMS_MAX_PACKET_SIZE 65535 /* max packet size */
- #define VMS_MIN_PACKET_SIZE 8 /* min packet size */
- #define VMS_MAX_HEARTBEAT_TIME 180 /* max HeartbeatTime */
- #define VMS_MAX_DATAGRAM_SIZE 65535 /* max DatagramSize */
- #define VMS_CHECK_TIME 60 /* vms check on/off time */
- #define VMS_MAX_DEVICE 64 // 64 EA, 현장 설치 9대
- /***************************************
- **
- ** Error codes
- **
- */
- /***************************************
- **
- ** Error codes
- **
- */
- enum EN_SYS_ERR_CD{
- SYS_ERR_NONE, //0 no error
- SYS_ERR_OTHER, //1 other
- SYS_ERR_INTERNAL, //2 internal system error(kernel..)
- SYS_ERR_MEMORY, //3 memory overflow
- SYS_ERR_DATABASE, //4 system database error
- SYS_ERR_RESET, //5 system reset
- SYS_ERR_START, //6 system start
- SYS_ERR_OFFLINE, //7 offline
- SYS_ERR_NO_RES, //8 no response
- SYS_ERR_ACCESS, //9 access denied
- SYS_ERR_INVALID, //10 invalid data type
- SYS_ERR_UNKNOWN, //11 unknown data type
- SYS_ERR_WRITE_LENGTH, //12 write length
- SYS_ERR_PACKET_SIZE_LARGE, //13 packet size large
- SYS_ERR_INVALID_TAG, //14 invalid tag
- SYS_ERR_CRC, //15 crc
- SYS_ERR_LENGTH, //16 length
- SYS_ERR_ADDRESS, //17 address
- SYS_ERR_HEADER_OPTIONS, //18 header options
- SYS_ERR_UNKNOWN_COMMAND, //19 unknown command
- SYS_ERR_RECEIVE_TIMEOUT, //20 receive timeout
- SYS_ERR_DATA_SIZE, //21 data size
- SYS_ERR_MISMATCH, //22 mismatch command
- SYS_ERR_INVALID_PARA, //23 invalid parameter
- SYS_ERR_MOVEMENT, //24 movement
- SYS_ERR_UNAUTHORIZED, //25 unauthorized
- SYS_ERR_DATEXDATAPACKET_DECODE, /* 26 DatexDataPacket decode */
- SYS_ERR_INVALID_VERSION_NUMBER, /* 27 invalid version number */
- SYS_ERR_C2CAUTHENTICATEDMESSAGE_DECODE, /* 28 C2CAuthenticatedMessage decode */
- SYS_ERR_C2CAUTHENTICATEDMESSAGE, /* 29 C2CAuthenticatedMessage */
- SYS_ERR_NOT_LOGIN, /* 30 Not login */
- SYS_ERR_ACCEPT_TYPE, /* 31 Accept Type */
- SYS_ERR_DATEXPUBLISH_FORMAT, /* 32 datexPublish Format */
- SYS_ERR_DATEXPUBLISH_TYPE, /* 33 datexPublish Type */
- SYS_ERR_UNKNOWN_MESSAGE_ID, /* 34 unknown Message id */
- SYS_ERR_MESSAGE_DECODE, /* 35 Message decode */
- SYS_ERR_DATEXDATAPACKET_ENCODE, /* 36 DatexDataPacket encode */
- SYS_ERR_C2CAUTHENTICATEDMESSAGE_ENCODE, /* 37 C2CAuthenticatedMessage encode */
- SYS_ERR_MESSAGE_ENCODE, /* 38 Message encode */
- SYS_ERR_PUBLICATIONDATA_ENCODE, /* 39 PublicationData encode */
- SYS_ERR_MISMATCH_DESTINATION_TEXT, /* 40 mismatch Destination text */
- SYS_ERR_DATEXLOGIN_VALUE, /* 41 Login Value */
- SYS_ERR_SUBSCRIPTION_TYPE, /* 42 SubscriptionType Type */
- SYS_ERR_SUBSCRIPTION_STATUS_VALUE, /* 43 SubscriptionType Status Value */
- SYS_ERR_SUBSCRIPTION_MODE_VALUE, /* 44 SubscriptionType Mode Value */
- SYS_ERR_SUBSCRIPTION_FORMAT_VALUE, /* 45 SubscriptionType Format Value */
- SYS_ERR_HANGUL_CONVERSION, /* 46 Hangul Conversion */
- SYS_ERR_INVALID_TAGANDLEN, /* 47 invalid Tag And Len */
- SYS_ERR_PUBLICATIONDATA_DECODE /* 48 PublicationData decode */
- };
- /* 요청 정보 */
- typedef struct req_info_struct
- {
- BYTE MsgSeq; /* 통신 일련 번호 */
- DWORD ProcessID; /* 프로세스 ID */
- WORD OpCode; /* 데이터 내용을 구분하는 업무 코드 */
- WORD wSize; /* Size */
- } REQ_INFO_STRUCT;
- typedef enum eEN_SUBSCRIPTION_NBR
- {
- NBR_GENERAL_STATUS = 1,
- NBR_MODULE_STATUS,
- NBR_POWER_STATUS,
- NBR_REALTIME_DISPLAY,
- NBR_DOT_STATUS,
- NBR_SCREEN_STATUS,
- NBR_DISPLAYING_DATA,
- } EN_SUBSCRIPTION_NBR;
- typedef struct
- {
- DWORD nbr; /* datexSubscribe_Serial_nbr */
- int mode; /* SubscriptionMode */
- int delay; /* datexRegistered_UpdateDelay_qty */
- int obj; /* EN_OBJECT_ID */
- } SUBSCRIPTION_ARGUMENT;
- typedef struct
- {
- bool ScreenDataStatusMessage;
- bool RealTimeDisplayMessage;
- bool GeneralStatus; /* 기본상태정보 */
- bool PowerStatus; /* 전원상태정보 */
- bool ModuleStatus; /* 모듈상태정보 */
- bool DotStatus;
- bool ScreenStatus;
- bool DisplayingData;
- } ACCEPT_REGISTERED;
- typedef struct
- {
- int obj; /* EN_OBJECT_ID */
- DWORD DataPacketNumber; /* DataPacket Number */
- } CLIENT_CTL_INFO;
- typedef union
- {
- /* Initiate */
- /* Login */
- DWORD FrED; /* datexFrED_ConfirmPacket_nbr */
- /* Terminate */
- int Logout; /* logout code */
- SUBSCRIPTION_ARGUMENT Subscription; /* Subscription */
- /* TransferDone */
- DWORD Accept; /* datexAccept_Packet_nbr */
- struct
- {
- DWORD nbr; /* datexReject_Packet_nbr */
- int code; /* reject code */
- } Reject;
- /* Publication */
- } CLIENT_ARGUMENT;
- //---------------------------------------------------------------------------
- #pragma pack(pop)
- //---------------------------------------------------------------------------
- #endif
|