radar_obj.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /**
  2. ******************************************************************************
  3. * @file : radar_obj.h
  4. * @author : wangyingjie
  5. * @brief : None
  6. * @attention : None
  7. * @date : 2025/6/20
  8. ******************************************************************************
  9. */
  10. #ifndef RADAR_OBJ_H
  11. #define RADAR_OBJ_H
  12. #include "project_marco.h"
  13. struct TargetListHeader
  14. {
  15. uint8_t object_num; // 目标数量
  16. uint16_t measurement_count; // 循环计数
  17. uint8_t interface_version; // CAN接口版本号,默认为0
  18. };
  19. struct TargetInfo
  20. {
  21. uint8_t id; // 目标ID
  22. float distance_long; // 目标纵向距离 (m)
  23. float distance_lat; // 目标横向距离 (m)
  24. float velocity_long; // 目标纵向速度 (m/s)
  25. uint8_t dyn_prop; // 动态属性
  26. float velocity_lat; // 目标横向速度 (m/s)
  27. float rcs; // RCS
  28. };
  29. struct RadarData
  30. {
  31. unsigned id;
  32. unsigned timestamp;
  33. std::vector<unsigned char> data;
  34. };
  35. // 数据接收器接口
  36. class IDataReceiver
  37. {
  38. public:
  39. virtual ~IDataReceiver() = default;
  40. virtual bool Initialize() = 0;
  41. virtual void Start() = 0;
  42. virtual void Stop() = 0;
  43. virtual void SetDataCallback(std::function<void(const RadarData &)> callback) = 0;
  44. };
  45. #endif //RADAR_OBJ_H