soft_obstacle.h 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  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_UPDATE_S1 (0x7E0)
  22. //发送消息到莫之比雷达
  23. #define SEND_UAV20_MSG (0x00FFEE01)
  24. //发送消息到莫之比雷达读取版本
  25. #define SEND_UAV20_VER (0x00FFEE02)
  26. //莫之比雷达反馈版本信息,读取命令是SEND_UAV20_VER
  27. #define CAN_UAVRH_VER_R (0x7E8)
  28. //莫之比雷达设置灵敏度及反馈
  29. #define CAN_UAVRH_SENSI_SA (0x7F6)
  30. //莫之比雷达读取灵敏度及反馈
  31. #define CAN_UAVRH_SENSI_RA (0x7F8)
  32. #define MIMO_360_TotalSect 60
  33. #pragma pack(1)
  34. typedef struct
  35. {
  36. unsigned long long FrameID : 4;
  37. unsigned long long PackageID : 4;
  38. long long RCS : 8;
  39. long long Vel : 10;
  40. unsigned long long FrameType : 2;
  41. long long Distance : 12;
  42. long long Amuzith : 12;
  43. long long Elevation : 12;
  44. }mimo_part_radar;
  45. #pragma pack()
  46. extern mimo_part_radar F_radar[3];
  47. extern mimo_part_radar B_radar[3];
  48. extern mimo_part_radar T_radar[5];
  49. //避障雷达
  50. #pragma pack(1)
  51. typedef struct
  52. {
  53. Connect_check Link;
  54. //距离数据
  55. short distance_x;
  56. short distance_y;
  57. uint8_t signal_qulity;
  58. //灵敏度
  59. short get_radar_sensi;
  60. bool get_radar_sensi_flag;
  61. bool fcu_set_sensi_flag;
  62. char send_fcu_sensi_count;
  63. char get_radar_sensi_count;
  64. char set_radar_sensi_count;
  65. char set_radar_sensi_ack;
  66. //版本信息
  67. int soft_verison; //软件版本 区分新旧雷达,旧版本设置灵敏度进BOOT
  68. char version[10];
  69. int hard_version;
  70. bool get_radar_ver_flag; //检测到雷达一直发,上电发几次可能收不到
  71. bool get_radar_sn_flag;
  72. //SN号
  73. //char send_radar_sn_count; 和版本用一个count
  74. char sn[20];
  75. }uavr_obs;
  76. #pragma pack()
  77. extern uavr_obs uavr11_info;
  78. extern uavr_obs uavr12_info;
  79. extern uavr_obs mimo_f_info;
  80. extern uavr_obs mimo_b_info;
  81. #pragma pack(1)
  82. typedef struct
  83. {
  84. uint8_t TotalSect;
  85. int16_t RangeRes:14;
  86. int16_t rev:10;
  87. int16_t Pitch:10;
  88. int16_t Roll:10;
  89. uint16_t nTarget:12;
  90. uint8_t index;
  91. bool get_TotalSect_flag;
  92. bool set_TotalSect_flag;
  93. }mimo_360status;
  94. #pragma pack()
  95. extern mimo_360status mimo360_status;
  96. #pragma pack(1)
  97. typedef struct
  98. {
  99. uint8_t sectId0;
  100. uint8_t dis0;
  101. int8_t rcs0;
  102. int8_t el0;
  103. }mimo_360info;
  104. #pragma pack()
  105. extern mimo_360info mimo360_info[MIMO_360_TotalSect];
  106. #pragma pack(1)
  107. typedef struct
  108. {
  109. uint16_t sec_angle;//当前目标角度 0-360
  110. uint16_t distance;//当前目标距离 cm
  111. uint8_t rcs0; //强度
  112. int8_t el0; //当前俯仰角 -80-80
  113. }mimo_360_data;
  114. #pragma pack()
  115. #pragma pack(1)
  116. typedef struct
  117. {
  118. uint8_t TotalSect;//分区数
  119. uint8_t total_tar;//目标总数
  120. mimo_360_data data[40];
  121. }mimo_360_cont;
  122. #pragma pack()
  123. extern mimo_360_cont fmu_360info;
  124. extern Connect_check mimo_360_info;
  125. extern char can_get_uavr21_ver_comp;
  126. extern uint8_t radar360_proflag;
  127. void can_recv_mocib_F_obstacle(uint8_t *data);
  128. void can_recv_mocib_B_obstacle(uint8_t *data);
  129. void can_recv_mimo_signal_obstacle(uint32_t cellCanID, uint8_t data[], uint8_t len);
  130. void can_recv_mocib_new360_obstacle(uint32_t cellCanID, uint8_t data[], uint8_t len);
  131. bool Bobs_handle_function(void);
  132. bool Fobs_handle_function(void);
  133. void can_recv_enzhao_obstacle(uint32_t cellCanID, uint8_t data[], uint8_t len);
  134. #endif