Boundary.h 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. //
  2. // Created by zx on 23-11-27.
  3. //
  4. #ifndef CERES_TEST_BOUNDARY_H
  5. #define CERES_TEST_BOUNDARY_H
  6. #include "proto/def.grpc.pb.h"
  7. #include "proto/communication.pb.h"
  8. #include "communication/transitData.h"
  9. #include "detect/detect_manager.h"
  10. enum BoundRet {
  11. eNormal = Range_status::Range_correct, //正常
  12. eWidth = Range_status::Range_car_width,
  13. eWheelBase = Range_status::Range_car_wheelbase,
  14. eFront = Range_status::Range_front, //前超界
  15. eBack = Range_status::Range_back, //后超界
  16. eLeft = Range_status::Range_left, //左超界
  17. eRight = Range_status::Range_right, //右超界
  18. eLeftAngle = Range_status::Range_angle_anti_clock, //左倾角过大
  19. eRightAngle = Range_status::Range_angle_clock, //右倾角过大
  20. eWheelAngle = Range_status::Range_steering_wheel_nozero //前轮角未回正
  21. };
  22. class Boundary {
  23. public:
  24. Boundary() = default;
  25. bool init(const std::string &file);
  26. bool init(JetStream::Limit limit);
  27. ~Boundary();
  28. void limit(JetStream::MeasureInfo &info);
  29. void transMeasureInfo(JetStream::MeasureInfo &in, measure_buffer &out);
  30. void transMeasureInfo(JetStream::MeasureInfo &in, TransitData::MeasureInfo &out);
  31. void transMeasureInfo(DetectManager::DetectResult &in, JetStream::MeasureInfo &out);
  32. private:
  33. BoundRet limit_boundary(JetStream::MeasureInfo info, JetStream::Boundary bound);
  34. bool read_proto_param(std::string prototxt_path, ::google::protobuf::Message &protobuf_parameter);
  35. JetStream::Limit limit_;
  36. };
  37. #endif //CERES_TEST_BOUNDARY_H