uwb_msg_def.h 4.7 KB

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