soft_obstacle.h 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. #ifndef _SOFT_OBSTACLE_H
  2. #define _SOFT_OBSTACLE_H
  3. #include "stdint.h"
  4. #include "stdbool.h"
  5. #include "common.h"
  6. //恩曌前避障(多点)
  7. #define CAN_MIMO_FOBS_ID1 (0x401)
  8. #define CAN_MIMO_FOBS_ID2 (0x402)
  9. #define CAN_MIMO_FOBS_ID3 (0x403)
  10. //恩曌后避障(多点)
  11. #define CAN_MIMO_BOBS_ID1 (0x411)
  12. #define CAN_MIMO_BOBS_ID2 (0x412)
  13. #define CAN_MIMO_BOBS_ID3 (0x413)
  14. //恩曌分区仿地
  15. #define CAN_MIMO_T_ID1 (0x311)
  16. #define CAN_MIMO_T_ID2 (0x312)
  17. #define CAN_MIMO_T_ID3 (0x313)
  18. #define CAN_MIMO_T_ID4 (0x314)
  19. #define CAN_MIMO_T_ID5 (0x315)
  20. //莫之比前避障(多点)
  21. #define CAN_UAVRH_FOBS_ID1 (0x601)
  22. #define CAN_UAVRH_FOBS_ID2 (0x602)
  23. #define CAN_UAVRH_FOBS_ID3 (0x603)
  24. //莫之比后避障(多点)
  25. #define CAN_UAVRH_BOBS_ID1 (0x611)
  26. #define CAN_UAVRH_BOBS_ID2 (0x612)
  27. #define CAN_UAVRH_BOBS_ID3 (0x613)
  28. //莫之比分区仿地
  29. #define CAN_MICOB_T_ID1 (0x511)
  30. #define CAN_MICOB_T_ID2 (0x512)
  31. #define CAN_MICOB_T_ID3 (0x513)
  32. #define CAN_MICOB_T_ID4 (0x514)
  33. #define CAN_MICOB_T_ID5 (0x515)
  34. //莫之比雷达发送升级命令
  35. #define CAN_UAVRH_UPDATE_S1 (0x7E0)
  36. //发送消息到莫之比雷达
  37. #define SEND_UAV20_MSG (0x00FFEE01)
  38. //发送消息到莫之比雷达读取版本
  39. #define SEND_UAV20_VER (0x00FFEE02)
  40. //莫之比雷达反馈版本信息,读取命令是SEND_UAV20_VER
  41. #define CAN_UAVRH_VER_R (0x7E8)
  42. //莫之比雷达设置灵敏度及反馈
  43. #define CAN_UAVRH_SENSI_SA (0x7F6)
  44. //莫之比雷达读取灵敏度及反馈
  45. #define CAN_UAVRH_SENSI_RA (0x7F8)
  46. #define MIMO_360_TotalSect 60
  47. #pragma pack(1)
  48. typedef struct
  49. {
  50. unsigned long long FrameID : 4;
  51. unsigned long long PackageID : 4;
  52. long long RCS : 8;
  53. long long Vel : 10;
  54. unsigned long long FrameType : 2;
  55. long long Distance : 12;
  56. long long Amuzith : 12;
  57. long long Elevation : 12;
  58. }mimo_part_radar;
  59. #pragma pack()
  60. extern mimo_part_radar F_radar[3];
  61. extern mimo_part_radar B_radar[3];
  62. extern mimo_part_radar T_radar[5];
  63. //避障雷达
  64. #pragma pack(1)
  65. typedef struct
  66. {
  67. Connect_check Link;
  68. //距离数据
  69. short distance_x;
  70. short distance_y;
  71. uint8_t signal_qulity;
  72. //灵敏度
  73. short get_radar_sensi;
  74. bool get_radar_sensi_flag;
  75. bool fcu_set_sensi_flag;
  76. char send_fcu_sensi_count;
  77. char get_radar_sensi_count;
  78. char set_radar_sensi_count;
  79. char set_radar_sensi_ack;
  80. //版本信息
  81. int soft_verison; //软件版本 区分新旧雷达,旧版本设置灵敏度进BOOT
  82. char version[10];
  83. int hard_version;
  84. bool get_radar_ver_flag; //检测到雷达一直发,上电发几次可能收不到
  85. bool get_radar_sn_flag;
  86. //SN号
  87. //char send_radar_sn_count; 和版本用一个count
  88. char sn[20];
  89. }uavr_obs;
  90. #pragma pack()
  91. extern uavr_obs uavr11_info;
  92. extern uavr_obs uavr12_info;
  93. extern uavr_obs mimo_f_info;
  94. extern uavr_obs mimo_b_info;
  95. #pragma pack(1)
  96. typedef struct
  97. {
  98. uint8_t TotalSect;
  99. int16_t RangeRes:14;
  100. int16_t rev:10;
  101. int16_t Pitch:10;
  102. int16_t Roll:10;
  103. uint16_t nTarget:12;
  104. uint8_t index;
  105. bool get_TotalSect_flag;
  106. bool set_TotalSect_flag;
  107. }mimo_360status;
  108. #pragma pack()
  109. extern mimo_360status mimo360_status;
  110. #pragma pack(1)
  111. typedef struct
  112. {
  113. uint8_t sectId0;
  114. uint8_t dis0;
  115. int8_t rcs0;
  116. int8_t el0;
  117. }mimo_360info;
  118. #pragma pack()
  119. extern mimo_360info mimo360_info[MIMO_360_TotalSect];
  120. #pragma pack(1)
  121. typedef struct
  122. {
  123. uint16_t sec_angle;//当前目标角度 0-360
  124. uint16_t distance;//当前目标距离 cm
  125. uint8_t rcs0; //强度
  126. int8_t el0; //当前俯仰角 -80-80
  127. }mimo_360_data;
  128. #pragma pack()
  129. #pragma pack(1)
  130. typedef struct
  131. {
  132. uint8_t TotalSect;//分区数
  133. uint8_t total_tar;//目标总数
  134. mimo_360_data data[40];
  135. }mimo_360_cont;
  136. #pragma pack()
  137. extern mimo_360_cont fmu_360info;
  138. extern Connect_check mimo_360_info;
  139. extern char can_get_uavr21_ver_comp;
  140. extern uint8_t radar360_proflag;
  141. void can_recv_mocib_F_obstacle(uint8_t *data);
  142. void can_recv_mocib_B_obstacle(uint8_t *data);
  143. void can_recv_mimo_signal_obstacle(uint32_t cellCanID, uint8_t data[], uint8_t len);
  144. void can_recv_mocib_new360_obstacle(uint32_t cellCanID, uint8_t data[], uint8_t len);
  145. bool Bobs_handle_function(void);
  146. bool Fobs_handle_function(void);
  147. void can_recv_enzhao_obstacle(uint32_t cellCanID, uint8_t data[], uint8_t len);
  148. void can_recv_mocib_obstacle(uint32_t cellCanID, uint8_t data[], uint8_t len);
  149. #endif