ivif_park.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #ifndef IVIF_PARK_H
  2. #define IVIF_PARK_H
  3. #include <vector>
  4. #include "comonstruct.h"
  5. namespace iv
  6. {
  7. struct simpleparkspace
  8. {
  9. public:
  10. double mfLon;
  11. double mfLat;
  12. double mfHeading;
  13. int mnParkType; //1 side park 0 chuizhi park
  14. };
  15. }
  16. class ivif_park
  17. {
  18. public:
  19. ivif_park();
  20. virtual ~ivif_park();
  21. public:
  22. /**
  23. * @brief IsBocheEnable
  24. * @param fLon 经度
  25. * @param fLat 纬度
  26. * @param fHeading 航向
  27. * @return 是否能泊车
  28. */
  29. virtual bool IsBocheEnable(double fLon, double fLat, double fHeading);
  30. /**
  31. * @brief GetBocheDecision
  32. * @param fLon 经度
  33. * @param fLat 纬度
  34. * @param fHeading 航向
  35. * @param fSpeed 车速 km/h
  36. * @param fAcc 决策加速度
  37. * @param fWheel 决策方向盘角度
  38. * @param nshift 2 倒车 3 前进
  39. * @param fdSpeed 期望速度 km/h
  40. * @param fdSecSpeed 期望速度 m/s
  41. * @param xvehstate
  42. * @param bbocheMode 是否激活泊车
  43. * @return 0 不在泊车状态,无决策 1 在泊车状态,有决策
  44. */
  45. virtual int GetBocheDecision(double fLon,double fLat,double fHeading,double fSpeed,double & fAcc,double & fWheel,int & nshift,double & fdSpeed,double & fdSecSpeed,VehState & xvehstate,bool bbocheMode);
  46. private:
  47. std::vector<iv::simpleparkspace> mvectorsimpleparkspace;
  48. public:
  49. void SetParkSpace(std::vector<iv::simpleparkspace> & xvectorsimpleparkspace);
  50. std::vector<iv::simpleparkspace> GetParkSpace();
  51. };
  52. #endif // IVIF_PARK_H