/**************************************************************************** * @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