16
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-07-23 00:29:19 +02:00

Tabelka liczona od pozycji pojazdu i przejechanej odległości

This commit is contained in:
firleju
2017-07-20 17:24:04 +02:00
parent b6ac1bbcb5
commit 6c0333dbfd
4 changed files with 151 additions and 138 deletions

View File

@@ -145,8 +145,12 @@ class TSpeedPos
void CommandCheck();
public:
TSpeedPos(TTrack *track, double dist, int flag);
TSpeedPos(TEvent *event, double dist, TOrders order);
TSpeedPos() {};
void Clear();
bool Update(vector3 *p, vector3 *dir, double &len);
bool Update();
void UpdateDistance(double dist);
bool Set(TEvent *e, double d, TOrders order = Wait_for_orders);
void Set(TTrack *t, double d, int f);
std::string TableText();
@@ -175,7 +179,8 @@ class TController
TEvent *eSignSkip = nullptr; // można pominąć ten SBL po zatrzymaniu
std::size_t SemNextIndex{ std::size_t(-1) };
std::size_t SemNextStopIndex{ std::size_t( -1 ) };
private: // parametry aktualnego składu
double dMoveLen = 0.0; // odległość przejechana od ostatniego sprawdzenia tabelki
private: // parametry aktualnego składu
double fLength = 0.0; // długość składu (do wyciągania z ograniczeń)
double fMass = 0.0; // całkowita masa do liczenia stycznej składowej grawitacji
double fAccGravity = 0.0; // przyspieszenie składowej stycznej grawitacji
@@ -366,7 +371,20 @@ class TController
void TableCheck(double fDistance);
TCommandType TableUpdate(double &fVelDes, double &fDist, double &fNext, double &fAcc);
void TablePurger();
public:
inline double MoveDistanceGet()
{
return dMoveLen;
}
inline void MoveDistanceReset()
{
dMoveLen = 0.0;
}
public:
inline void MoveDistanceAdd(double distance)
{
dMoveLen += distance * iDirection; //jak jedzie do tyłu to trzeba uwzględniać, że distance jest ujemna
}
public:
std::size_t TableSize() const { return sSpeedTable.size(); }
void TableClear();
int TableDirection() { return iTableDirection; }