ivpark_simple.h 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #ifndef IVPARK_SIMPLE_H
  2. #define IVPARK_SIMPLE_H
  3. #include "ivif_park.h"
  4. #include "gps_type.h"
  5. class ivpark_simple : public ivif_park
  6. {
  7. public:
  8. ivpark_simple();
  9. public:
  10. virtual bool IsBocheEnable(double fLon, double fLat, double fHeading);
  11. 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);
  12. private:
  13. iv::GPS_INS maimgps;
  14. VehState mlastvehstate;
  15. double mCircleWheel = 0;
  16. private:
  17. /*
  18. 垂直泊车过程:
  19. 直倒-圆弧倒车-直倒-抵达
  20. 侧方泊车过程:
  21. 直倒-第一段圆弧倒车-直倒-第二段圆弧倒车-直倒-抵达
  22. */
  23. void reversingcarFun(iv::GPS_INS nowgps,double fSpeed,double & fAcc,double & fWheel,int & nshift,double & fdSpeed,double & fdSecSpeed,VehState & xvehstate); //直倒
  24. void reverseCircleFun(iv::GPS_INS nowgps,double fSpeed,double & fAcc,double & fWheel,int & nshift,double & fdSpeed,double & fdSecSpeed,VehState & xvehstate);// 圆弧
  25. void reverseDirectFun(iv::GPS_INS nowgps,double fSpeed,double & fAcc,double & fWheel,int & nshift,double & fdSpeed,double & fdSecSpeed,VehState & xvehstate); // 直倒
  26. void reverseArrFun(iv::GPS_INS nowgps,double fSpeed,double & fAcc,double & fWheel,int & nshift,double & fdSpeed,double & fdSecSpeed,VehState & xvehstate); // 抵达
  27. void dRever0Fun(iv::GPS_INS nowgps,double fSpeed,double & fAcc,double & fWheel,int & nshift,double & fdSpeed,double & fdSecSpeed,VehState & xvehstate); // 直倒
  28. void dRever1Fun(iv::GPS_INS nowgps,double fSpeed,double & fAcc,double & fWheel,int & nshift,double & fdSpeed,double & fdSecSpeed,VehState & xvehstate); // 第一段弧
  29. void dRever2Fun(iv::GPS_INS nowgps,double fSpeed,double & fAcc,double & fWheel,int & nshift,double & fdSpeed,double & fdSecSpeed,VehState & xvehstate); // 连接直倒
  30. void dRever3Fun(iv::GPS_INS nowgps,double fSpeed,double & fAcc,double & fWheel,int & nshift,double & fdSpeed,double & fdSecSpeed,VehState & xvehstate); // 第二段弧
  31. private:
  32. double GetDistance(iv::GPS_INS p1,iv::GPS_INS p2);
  33. };
  34. #endif // IVPARK_SIMPLE_H