uwb_msg_def.h 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. #ifndef SYNC_MSG_DEF
  2. #define SYNC_MSG_DEF
  3. #define LENGTH_MSG_1K 1024
  4. #define LENGTH_MSG_2K 2048 // Êý¾Ý°ü×î´ó³¤¶È
  5. #define LENGTH_MSG_4K 4096
  6. #define LENGTH_MSG_8K 8192 //
  7. #define LENGTH_MSG_1M 1048476 // 1024 * 1024
  8. #define LENGTH_MSG_4M 4194304 // 4096 * 1024
  9. #define LENGTH_SEND_BUF 256 //
  10. #define LENGTH_SQL 2000
  11. #define MSG_LENGTH_MAX LENGTH_MSG_2K
  12. #pragma pack(1)
  13. typedef unsigned char BYTE; // 8-bit byte
  14. typedef unsigned int UINT; // 32-bit word, change to "long" for 16-bit machines
  15. typedef unsigned long long UINT64;
  16. typedef unsigned int UINT32;
  17. typedef unsigned short UINT16;
  18. typedef unsigned char UINT8;
  19. typedef signed long long INT64;
  20. typedef signed int INT32;
  21. typedef signed short INT16;
  22. typedef signed char INT8;
  23. typedef struct
  24. {
  25. INT16 MsgLen;
  26. UINT16 MsgCode;
  27. }MsgHeader;
  28. typedef struct
  29. {
  30. MsgHeader Header;
  31. UINT8 MsgBody[MSG_LENGTH_MAX];
  32. }SyncAndLocateMsg;
  33. typedef struct
  34. {
  35. UINT32 LocalAnchorNum;
  36. UINT8 LocalAntNum;
  37. UINT32 UpperAnchorNum;
  38. UINT8 UpperAntNum;
  39. UINT16 SyncNum;
  40. UINT16 SyncLevel;
  41. UINT8 SendTimeStamp[5];
  42. UINT8 ReceiveTimeStamp[5];
  43. }SyncMsgData;
  44. typedef struct
  45. {
  46. MsgHeader Header;
  47. SyncMsgData MsgData;
  48. UINT16 CRCInfo;
  49. }SyncMsgSingleRoot;
  50. typedef struct
  51. {
  52. UINT32 LocalAnchorNum;
  53. UINT8 LocalAntNum;
  54. UINT32 UpperAnchorNum;
  55. UINT8 UpperAntNum;
  56. UINT16 SyncNum;
  57. UINT16 SyncLevel;
  58. UINT8 SendTimeStamp[5];
  59. UINT8 ReceiveTimeStamp[5];
  60. UINT32 RootAnchorNum;
  61. UINT8 RootAntNum;
  62. }SyncMsgMultiRootData;
  63. typedef struct
  64. {
  65. MsgHeader Header;
  66. SyncMsgMultiRootData MsgData;
  67. UINT16 CRCInfo;
  68. }SyncMsgMultiRoot;
  69. typedef struct
  70. {
  71. UINT32 AnchorNum;
  72. UINT16 MsgSerialNum;
  73. UINT8 AnchorTime[7];
  74. INT8 Temperature;
  75. UINT16 State;
  76. }LocateAnchorInfo;
  77. typedef struct
  78. {
  79. UINT8 CardType;
  80. UINT32 CardId;
  81. UINT16 MsgSerialNum;
  82. //struct{
  83. // unsigned msg_type:4;
  84. // unsigned batter_info:4;
  85. //}MsgTypeAndBatterInfo;
  86. UINT8 MsgType_BatterInfo;
  87. UINT8 Reserved;
  88. INT8 AccelerateSpeed;
  89. UINT8 LocateTimeStamp[5];
  90. UINT8 AntNum;
  91. UINT16 SyncNum;
  92. UINT16 SingleStrength;
  93. }CardInfo;
  94. typedef struct
  95. {
  96. UINT8 CardType;
  97. UINT32 CardId;
  98. UINT16 MsgSerialNum;
  99. //struct
  100. //{
  101. // int MsgType:4;
  102. // int BatterInfo:4;
  103. //}MsgType_BatterInfo;
  104. UINT8 MsgType_BatterInfo;
  105. UINT8 Reserved;
  106. INT8 AccelerateSpeed;
  107. UINT8 LocateTimeStamp[5];
  108. UINT8 AntNum;
  109. }TofCardInfo;
  110. typedef struct
  111. {
  112. UINT8 CardType;
  113. UINT32 CardId;
  114. UINT16 INAVPeriod;
  115. INT16 MagneticData_X;
  116. INT16 MagneticData_Y;
  117. INT16 MagneticData_Z;
  118. INT16 AccerateData_X;
  119. INT16 AccerateData_Y;
  120. INT16 AccerateData_Z;
  121. INT16 Gyroscope_X;
  122. INT16 Gyroscope_Y;
  123. INT16 Gyroscope_Z;
  124. INT16 Displacement_X;
  125. INT16 Displacement_Y;
  126. INT16 Displacement_Z;
  127. INT16 AngleChange_X;
  128. INT16 AngleChange_Y;
  129. INT16 AngleChange_Z;
  130. }INAVLocateData;
  131. typedef struct
  132. {
  133. MsgHeader Header;
  134. LocateAnchorInfo AnchorInfo;
  135. CardInfo CardData[50];
  136. }CardLocateMsg;
  137. typedef struct
  138. {
  139. MsgHeader Header;
  140. LocateAnchorInfo AnchorInfo;
  141. TofCardInfo TofCardInfo[50];
  142. UINT16 CRCInfo;
  143. }TofLocateMsg;
  144. #define INAV_TAG_NUM 40
  145. typedef struct
  146. {
  147. MsgHeader Header;
  148. LocateAnchorInfo AnchorInfo;
  149. INAVLocateData INAVLocateInfo[INAV_TAG_NUM];
  150. UINT16 CRCInfo;
  151. }INAVLocateMsg;
  152. enum INAV_MOVING_STATUS
  153. {
  154. INAV_STATIC = 0,
  155. INAV_MOVING
  156. };
  157. enum INAV_DIRECTORY
  158. {
  159. INAV_NO_DIRECTORY = 10,
  160. INAV_FORWARD,
  161. INAV_BACKWARD,
  162. INAV_LEFTWARD,
  163. INAV_RIGHTWARD
  164. };
  165. enum INAV_ACCERATE_STATUS
  166. {
  167. INAV_NO_ACCERATE = 100,
  168. INAV_ACCERATE,
  169. INAV_SLOW_DOWN
  170. };
  171. typedef struct
  172. {
  173. INAV_MOVING_STATUS Status;
  174. INAV_DIRECTORY Directory;
  175. INAV_ACCERATE_STATUS AccerateStatus;
  176. }INAV_STATUS;
  177. #define GRAVITY_ACCERATION 9.8
  178. #define INAV_READING_MAX 32768
  179. const double DISPLACEMENT_THRESHOLD = 100;
  180. const double JOIN_ACCERATE_THRESHOLD = 0.3;
  181. const double MOVING_THRESHOLD = 1.2;
  182. const int DISPLACE_MENT_MOVING_THRESHOLD = 45;
  183. #endif