soft_obstacle.h 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199
  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. bool get_radar_blind_flag;
  87. bool get_radar_power_flag;
  88. bool get_radar_rawSwitch_flag;
  89. //SN号
  90. //char send_radar_sn_count; 和版本用一个count
  91. char sn[20];
  92. }uavr_obs;
  93. #pragma pack()
  94. extern uavr_obs uavr11_info;
  95. extern uavr_obs uavr12_info;
  96. extern uavr_obs mimo_f_info;
  97. extern uavr_obs mimo_b_info;
  98. #pragma pack(1)
  99. typedef struct
  100. {
  101. short angel_4DF; //角度
  102. short ground_filter_4DF;//距离滤波
  103. short dotcloud_switch_4DF;//点云
  104. short angel_4DB;//角度
  105. short ground_filter_4DB;//距离滤波
  106. short dotcloud_switch_4DB;//点云
  107. short DM4DF_Blind_spot_distance;//4D前雷达盲区距离
  108. short DM4DB_Blind_spot_distance;//4D后雷达盲区距离
  109. short Packing_auger_size; //绞龙类型
  110. bool get_angel_4DF;//获取角度成功
  111. bool get_ground_filter_4DF;//距离滤波成功
  112. bool get_angel_4DB;//获取角度成功
  113. bool get_ground_filter_4DB;//距离滤波成功
  114. bool get_dotcloud_switch_4DF;//点云成功
  115. bool get_dotcloud_switch_4DB;//点云成功
  116. bool get_DM4DF_Blind_spot_distance;//4D前避障盲区距离
  117. bool get_DM4DB_Blind_spot_distance;//4D后雷达盲区距离
  118. }_dev_par;
  119. #pragma pack()
  120. extern _dev_par DM_4DRADARMAG;
  121. #pragma pack(1)
  122. typedef struct
  123. {
  124. uint8_t TotalSect;
  125. int16_t RangeRes:14;
  126. int16_t rev:10;
  127. int16_t Pitch:10;
  128. int16_t Roll:10;
  129. uint16_t nTarget:12;
  130. uint8_t index;
  131. bool get_TotalSect_flag;
  132. bool set_TotalSect_flag;
  133. }mimo_360status;
  134. #pragma pack()
  135. extern mimo_360status mimo360_status;
  136. #pragma pack(1)
  137. typedef struct
  138. {
  139. uint8_t sectId0;
  140. uint8_t dis0;
  141. int8_t rcs0;
  142. int8_t el0;
  143. }mimo_360info;
  144. #pragma pack()
  145. extern mimo_360info mimo360_info[MIMO_360_TotalSect];
  146. #pragma pack(1)
  147. typedef struct
  148. {
  149. uint16_t sec_angle;//当前目标角度 0-360
  150. uint16_t distance;//当前目标距离 cm
  151. uint8_t rcs0; //强度
  152. int8_t el0; //当前俯仰角 -80-80
  153. }mimo_360_data;
  154. #pragma pack()
  155. #pragma pack(1)
  156. typedef struct
  157. {
  158. uint8_t TotalSect;//分区数
  159. uint8_t total_tar;//目标总数
  160. mimo_360_data data[40];
  161. }mimo_360_cont;
  162. #pragma pack()
  163. extern mimo_360_cont fmu_360info;
  164. extern Connect_check mimo_360_info;
  165. extern char can_get_uavr21_ver_comp;
  166. extern uint8_t radar360_proflag;
  167. void can_recv_mocib_F_obstacle(uint8_t *data);
  168. void can_recv_mocib_B_obstacle(uint8_t *data);
  169. void can_recv_mimo_signal_obstacle(uint32_t cellCanID, uint8_t data[], uint8_t len);
  170. void can_recv_mocib_new360_obstacle(uint32_t cellCanID, uint8_t data[], uint8_t len);
  171. bool Bobs_handle_function(void);
  172. bool Fobs_handle_function(void);
  173. void can_recv_enzhao_obstacle(uint32_t cellCanID, uint8_t data[], uint8_t len);
  174. void can_recv_mocib_obstacle(uint32_t cellCanID, uint8_t data[], uint8_t len);
  175. void get_radar_blindAndPower_function( void );
  176. #endif