soft_obstacle.h 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214
  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. short Packing_auger_size;//绞龙类型
  63. bool get_angel_4DF;//获取角度成功
  64. bool get_ground_filter_4DF;//距离滤波成功
  65. bool get_angel_4DB;//获取角度成功
  66. bool get_ground_filter_4DB;//距离滤波成功
  67. bool get_dotcloud_switch_4DF;//点云成功
  68. bool get_dotcloud_switch_4DB;//点云成功
  69. bool get_DM4DF_Blind_spot_distance;//4D前避障盲区距离
  70. bool get_DM4DB_Blind_spot_distance;//4D后雷达盲区距离
  71. }_dev_par;
  72. #pragma pack()
  73. extern _dev_par DM_4DRADARMAG;
  74. //避障雷达
  75. #pragma pack(1)
  76. typedef struct
  77. {
  78. Connect_check Link;
  79. //距离数据
  80. short distance_x;
  81. short distance_y;
  82. uint8_t signal_qulity;
  83. //灵敏度
  84. short get_radar_sensi;
  85. bool get_radar_sensi_flag;
  86. bool fcu_set_sensi_flag;
  87. char send_fcu_sensi_count;
  88. char get_radar_sensi_count;
  89. char set_radar_sensi_count;
  90. char set_radar_sensi_ack;
  91. //版本信息
  92. int soft_verison; //软件版本 区分新旧雷达,旧版本设置灵敏度进BOOT
  93. char version[11];
  94. int hard_version;
  95. bool get_radar_ver_flag; //检测到雷达一直发,上电发几次可能收不到
  96. bool get_radar_sn_flag;
  97. bool get_radar_blind_flag;
  98. bool get_radar_power_flag;
  99. bool get_radar_rawSwitch_flag;
  100. //SN号
  101. //char send_radar_sn_count; 和版本用一个count
  102. char sn[20];
  103. }uavr_obs;
  104. typedef struct
  105. {
  106. char version[11];
  107. int soft_verison;
  108. char sn[20];
  109. bool get_radar_ver_flag;
  110. }DM_4D_REDARVER;
  111. #pragma pack()
  112. extern uavr_obs uavr11_info;
  113. extern uavr_obs uavr12_info;
  114. extern uavr_obs uavr13_info;
  115. extern uavr_obs uavr14_info;
  116. extern uavr_obs mimo_f_info;
  117. extern uavr_obs mimo_b_info;
  118. extern uavr_obs DM_f_info;
  119. extern DM_4D_REDARVER DM_4DB_info;
  120. //extern uavr_obs DM_b_info;
  121. #pragma pack(1)
  122. // #pragma pack(1)
  123. // typedef struct
  124. // {
  125. // uint8_t TotalSect;
  126. // int16_t RangeRes:14;
  127. // int16_t rev:10;
  128. // int16_t Pitch:10;
  129. // int16_t Roll:10;
  130. // uint16_t nTarget:12;
  131. // uint8_t index;
  132. // }mimo_360status;
  133. // #pragma pack()
  134. // extern mimo_360status mimo360_status;
  135. // #pragma pack(1)
  136. // typedef struct
  137. // {
  138. // uint8_t sectId0;
  139. // uint8_t dis0;
  140. // int8_t rcs0;
  141. // int8_t el0;
  142. // }mimo_360info;
  143. // #pragma pack()
  144. // extern mimo_360info mimo360_info[MIMO_360_TotalSect];
  145. // #pragma pack(1)
  146. // typedef struct
  147. // {
  148. // uint16_t sec_angle;//当前目标角度 0-360
  149. // uint16_t distance;//当前目标距离 cm
  150. // uint8_t rcs0; //强度
  151. // int8_t el0; //当前俯仰角 -80-80
  152. // }mimo_360_data;
  153. // #pragma pack()
  154. // #pragma pack(1)
  155. // typedef struct
  156. // {
  157. // uint8_t TotalSect;//分区数
  158. // uint8_t total_tar;//目标总数
  159. // mimo_360_data data[40];
  160. // }mimo_360_cont;
  161. // #pragma pack()
  162. // extern mimo_360_cont fmu_360info;
  163. // extern Connect_check mimo_360_info;
  164. // extern char can_get_uavr21_ver_comp;
  165. // extern uint8_t radar360_proflag;
  166. void can_set_radar_sensi(void);
  167. void can_recv_mocib_updata_read_set_hookfunction(uint32_t cellCanID, uint8_t data[]);
  168. void can_recv_mocib_360_obstacle(uint32_t cellCanID, uint8_t data[], uint8_t len);
  169. void lidar_function(void);
  170. void can_recv_mocib_version_info(uint32_t cellCanID, uint8_t data[], uint8_t len);
  171. void can_recv_enzhao_obstacle(uint32_t cellCanID, uint8_t data[], uint8_t len);
  172. void send_mocib_radar_sensi(void);
  173. void can_recv_mocib_F_obstacle(uint8_t *data);
  174. void can_recv_mocib_B_obstacle(uint8_t *data);
  175. void can_recv_mocib_L_obstacle(uint8_t *data);
  176. void can_recv_mocib_R_obstacle(uint8_t *data);
  177. void can_sendmsg_uavr20(void);
  178. bool check_radar_update(void);
  179. void can_recv_mocib_new360_obstacle(uint32_t cellCanID, uint8_t data[], uint8_t len);
  180. void can_recv_mimo_signal_obstacle(uint32_t cellCanID, uint8_t data[], uint8_t len);
  181. void can_recv_mimo_radar_version(uint32_t cellCanID, uint8_t data[], uint8_t len);
  182. void mimomocib_buf_sort(mimo_part_radar *arr, uint16_t length);
  183. void get_radar_blindAndPower_function( void );
  184. void can_recv_mocib_obstacle(uint32_t cellCanID, uint8_t data[], uint8_t len);
  185. #endif