VMSProtocol.h 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. /****************************************************************************
  2. * @source : VMSProtocol.h
  3. * @description : VMS Protocol header
  4. ****************************************************************************
  5. * DATE AUTHOR DESCRIPTION
  6. * --------------------------------------------------------------------------
  7. * 2016/09/02 shjung [100] First Cut
  8. *
  9. ****************************************************************************/
  10. //---------------------------------------------------------------------------
  11. #ifndef __VMSPROTOCOL_H__
  12. #define __VMSPROTOCOL_H__
  13. //---------------------------------------------------------------------------
  14. #pragma pack(push, 1)
  15. //---------------------------------------------------------------------------
  16. #include "ITSVmsAsn.h"
  17. //#define DEFAULT_FRAME_MAX_SIZE 1536 // default frame max size
  18. #define DEFAULT_TCP_PACKET_MAX_SIZE 1460 // default tcp packet max size
  19. //#define DEFAULT_UDP_PACKET_MAX_SIZE 1472 // default udp packet max size
  20. //#define DEFAULT_MAX_PACKET_SIZE 65535 // default max packet size
  21. #define VMS_DEFAULT_PORT 6020 /* 기본 포드 */
  22. #define VMS_DEFAULT_TIMEOUT 5 /* 5 Sec */
  23. #define VMS_MAX_PACKET_SIZE 65535 /* max packet size */
  24. #define VMS_MIN_PACKET_SIZE 8 /* min packet size */
  25. #define VMS_MAX_HEARTBEAT_TIME 180 /* max HeartbeatTime */
  26. #define VMS_MAX_DATAGRAM_SIZE 65535 /* max DatagramSize */
  27. #define VMS_CHECK_TIME 60 /* vms check on/off time */
  28. #define VMS_MAX_DEVICE 64 // 64 EA, 현장 설치 9대
  29. /***************************************
  30. **
  31. ** Error codes
  32. **
  33. */
  34. /***************************************
  35. **
  36. ** Error codes
  37. **
  38. */
  39. enum EN_SYS_ERR_CD{
  40. SYS_ERR_NONE, //0 no error
  41. SYS_ERR_OTHER, //1 other
  42. SYS_ERR_INTERNAL, //2 internal system error(kernel..)
  43. SYS_ERR_MEMORY, //3 memory overflow
  44. SYS_ERR_DATABASE, //4 system database error
  45. SYS_ERR_RESET, //5 system reset
  46. SYS_ERR_START, //6 system start
  47. SYS_ERR_OFFLINE, //7 offline
  48. SYS_ERR_NO_RES, //8 no response
  49. SYS_ERR_ACCESS, //9 access denied
  50. SYS_ERR_INVALID, //10 invalid data type
  51. SYS_ERR_UNKNOWN, //11 unknown data type
  52. SYS_ERR_WRITE_LENGTH, //12 write length
  53. SYS_ERR_PACKET_SIZE_LARGE, //13 packet size large
  54. SYS_ERR_INVALID_TAG, //14 invalid tag
  55. SYS_ERR_CRC, //15 crc
  56. SYS_ERR_LENGTH, //16 length
  57. SYS_ERR_ADDRESS, //17 address
  58. SYS_ERR_HEADER_OPTIONS, //18 header options
  59. SYS_ERR_UNKNOWN_COMMAND, //19 unknown command
  60. SYS_ERR_RECEIVE_TIMEOUT, //20 receive timeout
  61. SYS_ERR_DATA_SIZE, //21 data size
  62. SYS_ERR_MISMATCH, //22 mismatch command
  63. SYS_ERR_INVALID_PARA, //23 invalid parameter
  64. SYS_ERR_MOVEMENT, //24 movement
  65. SYS_ERR_UNAUTHORIZED, //25 unauthorized
  66. SYS_ERR_DATEXDATAPACKET_DECODE, /* 26 DatexDataPacket decode */
  67. SYS_ERR_INVALID_VERSION_NUMBER, /* 27 invalid version number */
  68. SYS_ERR_C2CAUTHENTICATEDMESSAGE_DECODE, /* 28 C2CAuthenticatedMessage decode */
  69. SYS_ERR_C2CAUTHENTICATEDMESSAGE, /* 29 C2CAuthenticatedMessage */
  70. SYS_ERR_NOT_LOGIN, /* 30 Not login */
  71. SYS_ERR_ACCEPT_TYPE, /* 31 Accept Type */
  72. SYS_ERR_DATEXPUBLISH_FORMAT, /* 32 datexPublish Format */
  73. SYS_ERR_DATEXPUBLISH_TYPE, /* 33 datexPublish Type */
  74. SYS_ERR_UNKNOWN_MESSAGE_ID, /* 34 unknown Message id */
  75. SYS_ERR_MESSAGE_DECODE, /* 35 Message decode */
  76. SYS_ERR_DATEXDATAPACKET_ENCODE, /* 36 DatexDataPacket encode */
  77. SYS_ERR_C2CAUTHENTICATEDMESSAGE_ENCODE, /* 37 C2CAuthenticatedMessage encode */
  78. SYS_ERR_MESSAGE_ENCODE, /* 38 Message encode */
  79. SYS_ERR_PUBLICATIONDATA_ENCODE, /* 39 PublicationData encode */
  80. SYS_ERR_MISMATCH_DESTINATION_TEXT, /* 40 mismatch Destination text */
  81. SYS_ERR_DATEXLOGIN_VALUE, /* 41 Login Value */
  82. SYS_ERR_SUBSCRIPTION_TYPE, /* 42 SubscriptionType Type */
  83. SYS_ERR_SUBSCRIPTION_STATUS_VALUE, /* 43 SubscriptionType Status Value */
  84. SYS_ERR_SUBSCRIPTION_MODE_VALUE, /* 44 SubscriptionType Mode Value */
  85. SYS_ERR_SUBSCRIPTION_FORMAT_VALUE, /* 45 SubscriptionType Format Value */
  86. SYS_ERR_HANGUL_CONVERSION, /* 46 Hangul Conversion */
  87. SYS_ERR_INVALID_TAGANDLEN, /* 47 invalid Tag And Len */
  88. SYS_ERR_PUBLICATIONDATA_DECODE /* 48 PublicationData decode */
  89. };
  90. /* 요청 정보 */
  91. typedef struct req_info_struct
  92. {
  93. BYTE MsgSeq; /* 통신 일련 번호 */
  94. DWORD ProcessID; /* 프로세스 ID */
  95. WORD OpCode; /* 데이터 내용을 구분하는 업무 코드 */
  96. WORD wSize; /* Size */
  97. } REQ_INFO_STRUCT;
  98. typedef enum eEN_SUBSCRIPTION_NBR
  99. {
  100. NBR_GENERAL_STATUS = 1,
  101. NBR_MODULE_STATUS,
  102. NBR_POWER_STATUS,
  103. NBR_REALTIME_DISPLAY,
  104. NBR_DOT_STATUS,
  105. NBR_SCREEN_STATUS,
  106. NBR_DISPLAYING_DATA,
  107. } EN_SUBSCRIPTION_NBR;
  108. typedef struct
  109. {
  110. DWORD nbr; /* datexSubscribe_Serial_nbr */
  111. int mode; /* SubscriptionMode */
  112. int delay; /* datexRegistered_UpdateDelay_qty */
  113. int obj; /* EN_OBJECT_ID */
  114. } SUBSCRIPTION_ARGUMENT;
  115. typedef struct
  116. {
  117. bool ScreenDataStatusMessage;
  118. bool RealTimeDisplayMessage;
  119. bool GeneralStatus; /* 기본상태정보 */
  120. bool PowerStatus; /* 전원상태정보 */
  121. bool ModuleStatus; /* 모듈상태정보 */
  122. bool DotStatus;
  123. bool ScreenStatus;
  124. bool DisplayingData;
  125. } ACCEPT_REGISTERED;
  126. typedef struct
  127. {
  128. int obj; /* EN_OBJECT_ID */
  129. DWORD DataPacketNumber; /* DataPacket Number */
  130. } CLIENT_CTL_INFO;
  131. typedef union
  132. {
  133. /* Initiate */
  134. /* Login */
  135. DWORD FrED; /* datexFrED_ConfirmPacket_nbr */
  136. /* Terminate */
  137. int Logout; /* logout code */
  138. SUBSCRIPTION_ARGUMENT Subscription; /* Subscription */
  139. /* TransferDone */
  140. DWORD Accept; /* datexAccept_Packet_nbr */
  141. struct
  142. {
  143. DWORD nbr; /* datexReject_Packet_nbr */
  144. int code; /* reject code */
  145. } Reject;
  146. /* Publication */
  147. } CLIENT_ARGUMENT;
  148. //---------------------------------------------------------------------------
  149. #pragma pack(pop)
  150. //---------------------------------------------------------------------------
  151. #endif