soft_terrain.c 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. #include "soft_terrain.h"
  2. #include "soft_device.h"
  3. #include "soft_obstacle.h"
  4. #include "soft_can.h"
  5. #include "string.h"
  6. uavr_terrain uavr56_info = {.get_radar_sensi = 50};
  7. uavr_terrain mimo_ter_info;
  8. moocib_part_radar_msg Mocib_radar_part;
  9. /**
  10. * @file can_recv_mocib_terrain
  11. * @brief 莫之比防地解析
  12. * @param none
  13. * @details
  14. * @author Zhang Sir
  15. **/
  16. void can_recv_mocib_terrain(uint8_t *data)
  17. {
  18. uavr56_info.height = (data[0] << 8) + data[1];
  19. uavr56_info.Link.recv_time = HAL_GetTick();
  20. uavr56_info.Link.connect_status = COMP_NORMAL;
  21. }
  22. /**
  23. * @file can_recv_enzhao_terrain
  24. * @brief 恩曌防地解析
  25. * @param none
  26. * @details
  27. * @author Zhang Sir
  28. **/
  29. mimo_part_radar T_radar[5] = {0};
  30. void can_recv_enzhao_terrain(uint32_t CanID, uint8_t data[], uint8_t len)
  31. {
  32. switch (CanID)
  33. {
  34. case CAN_MIMO_T_ID: //单点雷达
  35. mimo_ter_info.crc = data[3] + data[4] + data[5] + data[6];
  36. if (data[7] == mimo_ter_info.crc)
  37. {
  38. mimo_ter_info.height = (256 * data[4]) + (data[3]); //cm
  39. // printf("%d %d\n", mimo_ter_info.height, m.muniu_hight); //输出到串口助手上 需要pringtf重定向
  40. }
  41. mimo_ter_info.Link.recv_time = HAL_GetTick();
  42. mimo_ter_info.Link.connect_status = COMP_NORMAL;
  43. Dev.Radar.facid_T = FAC_MIMO_RT;
  44. break;
  45. case CAN_MIMO_T_ID1:
  46. memcpy(&T_radar[0], data, 8);
  47. Dev.Part_Tradar_Link.recv_time = HAL_GetTick();
  48. Dev.Part_Tradar_Link.connect_status = COMP_NORMAL;
  49. Dev.Part_radarT.facid = FAC_MIMO_RT;
  50. break;
  51. case CAN_MIMO_T_ID2:
  52. memcpy(&T_radar[1], data, 8);
  53. break;
  54. case CAN_MIMO_T_ID3:
  55. memcpy(&T_radar[2], data, 8);
  56. break;
  57. case CAN_MIMO_T_ID4:
  58. memcpy(&T_radar[3], data, 8);
  59. break;
  60. case CAN_MIMO_T_ID5:
  61. memcpy(&T_radar[4], data, 8);
  62. break;
  63. default:
  64. break;
  65. }
  66. }
  67. void can_recv_mocib_T_terrain(uint32_t CanID, uint8_t data[], uint8_t len)
  68. {
  69. switch (CanID)
  70. {
  71. case CAN_MICOB_T_ID1:
  72. memcpy(&T_radar[0], data, 8);
  73. Dev.Part_Tradar_Link.recv_time = HAL_GetTick();
  74. Dev.Part_Tradar_Link.connect_status = COMP_NORMAL;
  75. Dev.Part_radarT.facid = FAC_MOCIB_RT;
  76. break;
  77. case CAN_MICOB_T_ID2:
  78. memcpy(&T_radar[1], data, 8);
  79. break;
  80. case CAN_MICOB_T_ID3:
  81. memcpy(&T_radar[2], data, 8);
  82. break;
  83. case CAN_MICOB_T_ID4:
  84. memcpy(&T_radar[3], data, 8);
  85. break;
  86. case CAN_MICOB_T_ID5:
  87. memcpy(&T_radar[4], data, 8);
  88. break;
  89. default:
  90. break;
  91. }
  92. }