soft_obstacle.h 5.1 KB

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