soft_terrain.h 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. #ifndef _SOFT_TERRAIN_H_
  2. #define _SOFT_TERRAIN_H_
  3. #include "stdint.h"
  4. #include "stdbool.h"
  5. #include "common.h"
  6. //莫之比仿地
  7. void can_recv_mocib_terrain(uint8_t *data);
  8. typedef struct {
  9. short powerful;
  10. short near;
  11. short far;
  12. }UAVH30;
  13. extern UAVH30 uavh30_dist;
  14. extern bool terrain_is_link;
  15. extern uint16_t terrain_height;
  16. extern bool F4d_send_flag;
  17. extern bool B4d_send_flag;
  18. extern bool DM4Dmsg_send_fmu;
  19. void can_recv_enzhao_terrain(uint32_t CanID, uint8_t data[], uint8_t len);
  20. void can_recv_muniu_terrain(uint8_t *data);
  21. //仿地
  22. #pragma pack(1)
  23. typedef struct
  24. {
  25. //获取心跳属性
  26. Connect_check Link;
  27. //获取雷达高度数据
  28. short height;
  29. uint8_t crc;
  30. //获取灵敏度
  31. char send_fcu_sensi_count;
  32. char get_radar_sensi_count;
  33. bool get_radar_sensi_flag; //标志位
  34. bool fcu_set_sensi_flag;
  35. short fcu_set_sensi; //灵敏度
  36. short get_radar_sensi;
  37. char set_radar_sensi_count;
  38. bool set_radar_sensi_ack;
  39. //获取版本信息
  40. bool get_radar_ver_flag;
  41. bool get_radar_sn_flag;
  42. char version[11];
  43. int soft_verison;
  44. int hard_version;
  45. bool get_radar_blind_flag;
  46. bool get_radar_power_flag;
  47. bool get_radar_rawSwitch_flag;
  48. //SN号
  49. char sn[20];
  50. }uavr_terrain;
  51. #pragma pack()
  52. extern uavr_terrain uavr56_info;
  53. extern uavr_terrain mimo_ter_info;
  54. extern uavr_terrain DM_ter_info;
  55. extern int16_t F_4DRadar[3][3];
  56. extern int16_t B_4DRadar[3][3];
  57. // //木牛仿地
  58. // #pragma pack(1)
  59. // typedef struct
  60. // {
  61. // uint16_t muniu_hight;
  62. // uint16_t muniu_SNR;
  63. // Connect_check Link;
  64. // }muniu;
  65. // extern muniu muniu_ter_info;
  66. // #pragma pack()
  67. #pragma pack(1)
  68. struct dm_byte1
  69. {
  70. uint8_t tail:1;
  71. uint8_t head:1;
  72. uint8_t i:6;
  73. };
  74. #pragma pack()
  75. union dm_byte
  76. {
  77. uint8_t frame_flag;
  78. struct dm_byte1 flag;
  79. };
  80. #pragma pack(1)
  81. typedef struct
  82. {
  83. uint8_t target_num;
  84. uint16_t power_level;
  85. uint16_t crc;
  86. uint16_t warn;
  87. union dm_byte byte7;
  88. uint8_t buf[150];
  89. }DM_RADAR;
  90. #pragma pack()
  91. typedef struct
  92. {
  93. uint8_t pack_num;
  94. uint8_t target_num;
  95. uint8_t buf[150 * 5];
  96. }DM_4DRADAR;
  97. extern DM_4DRADAR FMU_4D_info;
  98. //extern DM_4DRADAR FMU_4DB_info;
  99. #pragma pack(1)
  100. typedef struct
  101. {
  102. uint8_t target_num;
  103. uint16_t time_delay;
  104. uint16_t crc;
  105. uint16_t warn;
  106. union dm_byte byte7;
  107. uint8_t RawData[256 * 5];
  108. }DM_4dFRADAR;
  109. #pragma pack()
  110. extern DM_4dFRADAR DM_F4d;
  111. extern DM_4dFRADAR DM_B4d;
  112. extern Connect_check DM_status;
  113. extern Connect_check DM_4dstatus;
  114. extern DM_RADAR DM_T_info,FMU_DM_info;
  115. extern uint8_t DM_recv_flag;
  116. extern uint8_t DM4d_recv_flag;
  117. extern uint8_t DM4d_to_fmu_flag;
  118. extern uint8_t DM4dB_recv_flag;
  119. void DM_terrain_recieved_hookfuction(uint32_t cellCanID,uint8_t data[], uint8_t len);
  120. void DM_Fobs_recieved_hookfuction(uint32_t cellCanID,uint8_t data[], uint8_t len);
  121. void DM_Bobs_recieved_hookfuction(uint32_t cellCanID,uint8_t data[], uint8_t len);
  122. #endif