soft_obstacle.h 4.6 KB

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