12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- #ifndef SIMMODEL_H
- #define SIMMODEL_H
- #include <chrono>
- #include <thread>
- #include "gpsimu.pb.h"
- #include "modulecomm.h"
- class simmodel
- {
- public:
- simmodel();
- ~simmodel();
- enum SHIFT_GEER
- {
- PARK = 0,
- REVERSE = 1,
- DRIVE = 2
- };
- protected:
- double mx;
- double my;
- double mhdg;
- SHIFT_GEER mshift;
- double macc;
- double mwheelsteer;
- double mvel;
- double mlon0,mlat0;
- bool mbInitOK = false;
- public:
- double GetX();
- double GetY();
- double Gethdg();
- SHIFT_GEER GetShift();
- double Getacc();
- double Getwheelsteer();
- double Getvel();
- virtual void CalcModel() = 0;
- protected:
- double mfcmd_acc;
- double mfcmd_torque;
- double mfcmd_brake;
- double mfcmd_wheelangle;
- int64_t mlastcmdtime = 0; //chrono ns
- public:
- void SetCMD(double facc,double ftorque,double fbrake,double fwheelangle);
- void SetX(double fx);
- void SetY(double fy);
- void Sethdg(double fhdg);
- void SetShift(SHIFT_GEER sg);
- void Setacc(double facc);
- void Setwheelsteer(double fwheelsteer);
- void Setvel(double fvel);
- void SetLon0Lat0(double flon0,double flat0);
- private:
- std::thread * mpthread;
- bool mbrun = true;
- void threadupdate();
- std::thread * mpthreadstate;
- void threadstate();
- void * mpa;
- };
- #endif // SIMMODEL_H
|