soft_obstacle.h 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. #ifndef _SOFT_OBSTACLE_H
  2. #define _SOFT_OBSTACLE_H
  3. #include "stdint.h"
  4. #include "stdbool.h"
  5. #include "common.h"
  6. #define OBS_X 1
  7. #define OBS_Y 2
  8. //莫之比雷达发送升级命令
  9. #define CAN_UAVRH_UPDATE_S1 (0x7E0)
  10. //发送消息到莫之比雷达
  11. #define SEND_UAV20_MSG (0x00FFEE01)
  12. //发送消息到莫之比雷达读取版本
  13. #define SEND_UAV20_VER (0x00FFEE02)
  14. //莫之比雷达反馈版本信息,读取命令是SEND_UAV20_VER
  15. #define CAN_UAVRH_VER_R (0x7E8)
  16. //莫之比雷达设置灵敏度及反馈
  17. #define CAN_UAVRH_SENSI_SA (0x7F6)
  18. //莫之比雷达读取灵敏度及反馈
  19. #define CAN_UAVRH_SENSI_RA (0x7F8)
  20. #define CAN_UAVRH_TEST (0x7F9)
  21. #define RAD ((float)57.3)
  22. #define DEG_TO_RAD 0.017453292519943295769236907684886f // 度换算弧度
  23. #define RAD_TO_DEG 57.295779513082320876798154814105f // 弧度换算度
  24. #define CAN_UAVRH_UPDATE_R1 (0x7E1)
  25. //恩曌避障
  26. #define CAN_MIMO_ATTI_INFO1 0xDF00
  27. #define CAN_MIMO_ATTI_INFO2 0xDF01
  28. #define RADAR_NER_VERSION 0x220718
  29. #define MIMO_360_TotalSect 60
  30. #pragma pack(1)
  31. typedef struct
  32. {
  33. unsigned long long FrameID : 4;
  34. unsigned long long PackageID : 4;
  35. long long RCS : 8;
  36. long long Vel : 10;
  37. unsigned long long FrameType : 2;
  38. long long Distance : 12;
  39. long long Amuzith : 12;
  40. long long Elevation : 12;
  41. }mimo_part_radar;
  42. #pragma pack()
  43. extern mimo_part_radar F_radar[3];
  44. extern mimo_part_radar B_radar[3];
  45. extern mimo_part_radar T_radar[3];
  46. extern bool obs_f_is_link;
  47. extern bool obs_b_is_link;
  48. extern bool uavrhup_getr1_ack;
  49. extern short obsfradar_sensitivity;
  50. extern short obsbradar_sensitivity;
  51. #pragma pack(1)
  52. typedef struct
  53. {
  54. short angel_4DF; //角度
  55. short ground_filter_4DF;//距离滤波
  56. short dotcloud_switch_4DF;//点云
  57. short angel_4DB;//角度
  58. short ground_filter_4DB;//距离滤波
  59. short dotcloud_switch_4DB;//点云
  60. short DM4DF_Blind_spot_distance;//4D前雷达盲区距离
  61. short DM4DB_Blind_spot_distance;//4D后雷达盲区距离
  62. bool get_angel_4DF;//获取角度成功
  63. bool get_ground_filter_4DF;//距离滤波成功
  64. bool get_angel_4DB;//获取角度成功
  65. bool get_ground_filter_4DB;//距离滤波成功
  66. bool get_dotcloud_switch_4DF;//点云成功
  67. bool get_dotcloud_switch_4DB;//点云成功
  68. bool get_DM4DF_Blind_spot_distance;//4D前避障盲区距离
  69. bool get_DM4DB_Blind_spot_distance;//4D后雷达盲区距离
  70. }_dev_par;
  71. #pragma pack()
  72. extern _dev_par DM_4DRADARMAG;
  73. //避障雷达
  74. #pragma pack(1)
  75. typedef struct
  76. {
  77. Connect_check Link;
  78. //距离数据
  79. short distance_x;
  80. short distance_y;
  81. uint8_t signal_qulity;
  82. //灵敏度
  83. short get_radar_sensi;
  84. bool get_radar_sensi_flag;
  85. bool fcu_set_sensi_flag;
  86. char send_fcu_sensi_count;
  87. char get_radar_sensi_count;
  88. char set_radar_sensi_count;
  89. char set_radar_sensi_ack;
  90. //版本信息
  91. int soft_verison; //软件版本 区分新旧雷达,旧版本设置灵敏度进BOOT
  92. char version[11];
  93. int hard_version;
  94. bool get_radar_ver_flag; //检测到雷达一直发,上电发几次可能收不到
  95. bool get_radar_sn_flag;
  96. bool get_radar_blind_flag;
  97. bool get_radar_power_flag;
  98. bool get_radar_rawSwitch_flag;
  99. //SN号
  100. //char send_radar_sn_count; 和版本用一个count
  101. char sn[20];
  102. }uavr_obs;
  103. typedef struct
  104. {
  105. char version[11];
  106. int soft_verison;
  107. char sn[20];
  108. bool get_radar_ver_flag;
  109. }DM_4D_REDARVER;
  110. #pragma pack()
  111. extern uavr_obs uavr11_info;
  112. extern uavr_obs uavr12_info;
  113. extern uavr_obs uavr13_info;
  114. extern uavr_obs uavr14_info;
  115. extern uavr_obs mimo_f_info;
  116. extern uavr_obs mimo_b_info;
  117. extern uavr_obs DM_f_info;
  118. extern DM_4D_REDARVER DM_4DB_info;
  119. //extern uavr_obs DM_b_info;
  120. #pragma pack(1)
  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. // }mimo_360status;
  132. // #pragma pack()
  133. // extern mimo_360status mimo360_status;
  134. // #pragma pack(1)
  135. // typedef struct
  136. // {
  137. // uint8_t sectId0;
  138. // uint8_t dis0;
  139. // int8_t rcs0;
  140. // int8_t el0;
  141. // }mimo_360info;
  142. // #pragma pack()
  143. // extern mimo_360info mimo360_info[MIMO_360_TotalSect];
  144. // #pragma pack(1)
  145. // typedef struct
  146. // {
  147. // uint16_t sec_angle;//当前目标角度 0-360
  148. // uint16_t distance;//当前目标距离 cm
  149. // uint8_t rcs0; //强度
  150. // int8_t el0; //当前俯仰角 -80-80
  151. // }mimo_360_data;
  152. // #pragma pack()
  153. // #pragma pack(1)
  154. // typedef struct
  155. // {
  156. // uint8_t TotalSect;//分区数
  157. // uint8_t total_tar;//目标总数
  158. // mimo_360_data data[40];
  159. // }mimo_360_cont;
  160. // #pragma pack()
  161. // extern mimo_360_cont fmu_360info;
  162. // extern Connect_check mimo_360_info;
  163. // extern char can_get_uavr21_ver_comp;
  164. // extern uint8_t radar360_proflag;
  165. void can_set_radar_sensi(void);
  166. void can_recv_mocib_updata_read_set_hookfunction(uint32_t cellCanID, uint8_t data[]);
  167. void can_recv_mocib_360_obstacle(uint32_t cellCanID, uint8_t data[], uint8_t len);
  168. void lidar_function(void);
  169. void can_recv_mocib_version_info(uint32_t cellCanID, uint8_t data[], uint8_t len);
  170. void can_recv_enzhao_obstacle(uint32_t cellCanID, uint8_t data[], uint8_t len);
  171. void send_mocib_radar_sensi(void);
  172. void can_recv_mocib_F_obstacle(uint8_t *data);
  173. void can_recv_mocib_B_obstacle(uint8_t *data);
  174. void can_recv_mocib_L_obstacle(uint8_t *data);
  175. void can_recv_mocib_R_obstacle(uint8_t *data);
  176. void can_sendmsg_uavr20(void);
  177. bool check_radar_update(void);
  178. void can_recv_mocib_new360_obstacle(uint32_t cellCanID, uint8_t data[], uint8_t len);
  179. void can_recv_mimo_signal_obstacle(uint32_t cellCanID, uint8_t data[], uint8_t len);
  180. void can_recv_mimo_radar_version(uint32_t cellCanID, uint8_t data[], uint8_t len);
  181. void mimomocib_buf_sort(mimo_part_radar *arr, uint16_t length);
  182. void get_radar_blindAndPower_function( void );
  183. void can_recv_mocib_obstacle(uint32_t cellCanID, uint8_t data[], uint8_t len);
  184. #endif