mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-22 12:49:18 +02:00
Ograniczenie logowania skanowania do (debuglog +8)
This commit is contained in:
42
Driver.cpp
42
Driver.cpp
@@ -243,6 +243,7 @@ bool TSpeedPos::Update(vector3 *p, vector3 *dir, double &len)
|
|||||||
if ((iFlags & spElapsed) == 0) // jeśli nie wjechał
|
if ((iFlags & spElapsed) == 0) // jeśli nie wjechał
|
||||||
if (trTrack->iNumDynamics > 0) // a skrzyżowanie zawiera pojazd
|
if (trTrack->iNumDynamics > 0) // a skrzyżowanie zawiera pojazd
|
||||||
{
|
{
|
||||||
|
if (Global::iWriteLogEnabled & 8)
|
||||||
WriteLog("Tor " + trTrack->NameGet() + " zajety przed pojazdem. Num=" + trTrack->iNumDynamics + "Dist= " + fDist);
|
WriteLog("Tor " + trTrack->NameGet() + " zajety przed pojazdem. Num=" + trTrack->iNumDynamics + "Dist= " + fDist);
|
||||||
fVelNext =
|
fVelNext =
|
||||||
0.0; // to zabronić wjazdu (chyba że ten z przodu też jedzie prosto)
|
0.0; // to zabronić wjazdu (chyba że ten z przodu też jedzie prosto)
|
||||||
@@ -265,6 +266,7 @@ bool TSpeedPos::Update(vector3 *p, vector3 *dir, double &len)
|
|||||||
trTrack->iNumDynamics >
|
trTrack->iNumDynamics >
|
||||||
0) // jeśli jeszcze nie wjechano na tor, a coś na nim jest
|
0) // jeśli jeszcze nie wjechano na tor, a coś na nim jest
|
||||||
{
|
{
|
||||||
|
if (Global::iWriteLogEnabled & 8)
|
||||||
WriteLog("Rozjazd " + trTrack->NameGet() + " zajety przed pojazdem. Num=" + trTrack->iNumDynamics + "Dist= "+fDist);
|
WriteLog("Rozjazd " + trTrack->NameGet() + " zajety przed pojazdem. Num=" + trTrack->iNumDynamics + "Dist= "+fDist);
|
||||||
//fDist -= 30.0;
|
//fDist -= 30.0;
|
||||||
fVelNext = 0.0; // to niech stanie w zwiększonej odległości
|
fVelNext = 0.0; // to niech stanie w zwiększonej odległości
|
||||||
@@ -416,6 +418,7 @@ bool TController::TableNotFound(TEvent *e)
|
|||||||
spEvent)) // o ile używana pozycja
|
spEvent)) // o ile używana pozycja
|
||||||
if (sSpeedTable[i].evEvent == e)
|
if (sSpeedTable[i].evEvent == e)
|
||||||
{
|
{
|
||||||
|
if (Global::iWriteLogEnabled & 8)
|
||||||
WriteLog("TableNotFound: Event already in SpeedTable: " + sSpeedTable[i].evEvent->asName);
|
WriteLog("TableNotFound: Event already in SpeedTable: " + sSpeedTable[i].evEvent->asName);
|
||||||
return false; // już jest, drugi raz dodawać nie ma po co
|
return false; // już jest, drugi raz dodawać nie ma po co
|
||||||
}
|
}
|
||||||
@@ -517,36 +520,48 @@ void TController::TableTraceRoute(double fDistance, TDynamicObject *pVehicle)
|
|||||||
if (TableNotFound(pEvent)) // jeśli nie ma
|
if (TableNotFound(pEvent)) // jeśli nie ma
|
||||||
if (TableAddNew())
|
if (TableAddNew())
|
||||||
{
|
{
|
||||||
WriteLog("TableTraceRoute: new event found " + pEvent->asName + " by " +
|
if (Global::iWriteLogEnabled & 8)
|
||||||
OwnerName());
|
WriteLog("TableTraceRoute: new event found " + pEvent->asName + " by " + OwnerName());
|
||||||
if (sSpeedTable[iLast].Set(
|
if (sSpeedTable[iLast].Set( pEvent, fCurrentDistance, OrderCurrentGet())) // dodanie odczytu sygnału
|
||||||
pEvent, fCurrentDistance,
|
|
||||||
OrderCurrentGet())) // dodanie odczytu sygnału
|
|
||||||
{
|
{
|
||||||
fDistance = fCurrentDistance; // jeśli sygnał stop, to nie ma
|
fDistance = fCurrentDistance; // jeśli sygnał stop, to nie ma
|
||||||
// potrzeby dalej skanować
|
// potrzeby dalej skanować
|
||||||
sSemNextStop = &sSpeedTable[iLast];
|
sSemNextStop = &sSpeedTable[iLast];
|
||||||
if (!sSemNext)
|
if (!sSemNext)
|
||||||
sSemNext = &sSpeedTable[iLast];
|
sSemNext = &sSpeedTable[iLast];
|
||||||
|
if (Global::iWriteLogEnabled & 8)
|
||||||
WriteLog("Signal stop. Next Semaphor ", false);
|
WriteLog("Signal stop. Next Semaphor ", false);
|
||||||
if (sSemNextStop)
|
if (sSemNextStop)
|
||||||
|
{
|
||||||
|
if (Global::iWriteLogEnabled & 8)
|
||||||
WriteLog(sSemNextStop->GetName());
|
WriteLog(sSemNextStop->GetName());
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
if (Global::iWriteLogEnabled & 8)
|
||||||
WriteLog("none");
|
WriteLog("none");
|
||||||
}
|
}
|
||||||
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (sSpeedTable[iLast].IsProperSemaphor(OrderCurrentGet()) &&
|
if (sSpeedTable[iLast].IsProperSemaphor(OrderCurrentGet()) &&
|
||||||
sSemNext == NULL)
|
sSemNext == NULL)
|
||||||
sSemNext =
|
sSemNext =
|
||||||
&sSpeedTable[iLast]; // sprawdzamy czy pierwszy na drodze
|
&sSpeedTable[iLast]; // sprawdzamy czy pierwszy na drodze
|
||||||
|
if (Global::iWriteLogEnabled & 8)
|
||||||
WriteLog("Signal forward. Next Semaphor ", false);
|
WriteLog("Signal forward. Next Semaphor ", false);
|
||||||
if (sSemNext)
|
if (sSemNext)
|
||||||
|
{
|
||||||
|
if (Global::iWriteLogEnabled & 8)
|
||||||
WriteLog(sSemNext->GetName());
|
WriteLog(sSemNext->GetName());
|
||||||
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
if (Global::iWriteLogEnabled & 8)
|
||||||
WriteLog("none");
|
WriteLog("none");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} // event dodajemy najpierw, żeby móc sprawdzić, czy tor został dodany po
|
} // event dodajemy najpierw, żeby móc sprawdzić, czy tor został dodany po
|
||||||
// odczytaniu prędkości następnego
|
// odczytaniu prędkości następnego
|
||||||
if ((pTrack->VelocityGet() == 0.0) // zatrzymanie
|
if ((pTrack->VelocityGet() == 0.0) // zatrzymanie
|
||||||
@@ -693,11 +708,12 @@ void TController::TableCheck(double fDistance)
|
|||||||
{
|
{
|
||||||
if (sSpeedTable[i].Update(&pos, &dir, len))
|
if (sSpeedTable[i].Update(&pos, &dir, len))
|
||||||
{
|
{
|
||||||
WriteLog("TableCheck: Switch change. Delete next entries. (" +
|
if (Global::iWriteLogEnabled & 8)
|
||||||
sSpeedTable[i].trTrack->NameGet() + ")");
|
WriteLog("TableCheck: Switch change. Delete next entries. (" + sSpeedTable[i].trTrack->NameGet() + ")");
|
||||||
int k = (iLast + 1) % iSpeedTableSize; // skanujemy razem z ostatnią pozycją
|
int k = (iLast + 1) % iSpeedTableSize; // skanujemy razem z ostatnią pozycją
|
||||||
for (int j = (i+1) % iSpeedTableSize; j != k; j = (j + 1) % iSpeedTableSize)
|
for (int j = (i+1) % iSpeedTableSize; j != k; j = (j + 1) % iSpeedTableSize)
|
||||||
{ // kasowanie wszystkich rekordów za zmienioną zwrotnicą
|
{ // kasowanie wszystkich rekordów za zmienioną zwrotnicą
|
||||||
|
if (Global::iWriteLogEnabled & 8)
|
||||||
WriteLog("TableCheck: Delete from table: " + sSpeedTable[j].GetName());
|
WriteLog("TableCheck: Delete from table: " + sSpeedTable[j].GetName());
|
||||||
sSpeedTable[j].iFlags = 0;
|
sSpeedTable[j].iFlags = 0;
|
||||||
if (&sSpeedTable[j] == sSemNext)
|
if (&sSpeedTable[j] == sSemNext)
|
||||||
@@ -705,8 +721,11 @@ void TController::TableCheck(double fDistance)
|
|||||||
if (&sSpeedTable[j] == sSemNextStop)
|
if (&sSpeedTable[j] == sSemNextStop)
|
||||||
sSemNextStop = NULL; // przy kasowaniu tabelki zrzucamy także semafor
|
sSemNextStop = NULL; // przy kasowaniu tabelki zrzucamy także semafor
|
||||||
}
|
}
|
||||||
|
if (Global::iWriteLogEnabled & 8)
|
||||||
|
{
|
||||||
WriteLog("TableCheck: Delete entries OK.");
|
WriteLog("TableCheck: Delete entries OK.");
|
||||||
WriteLog("TableCheck: New last element: " + sSpeedTable[i].GetName());
|
WriteLog("TableCheck: New last element: " + sSpeedTable[i].GetName());
|
||||||
|
}
|
||||||
iLast = i; // pokazujemy gdzie jest ostatni kawałek
|
iLast = i; // pokazujemy gdzie jest ostatni kawałek
|
||||||
break; // nie kontynuujemy pętli, trzeba doskanować ciąg dalszy
|
break; // nie kontynuujemy pętli, trzeba doskanować ciąg dalszy
|
||||||
}
|
}
|
||||||
@@ -1052,12 +1071,14 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN
|
|||||||
// sprawdzanie eventów pasywnych miniętych
|
// sprawdzanie eventów pasywnych miniętych
|
||||||
if (sSpeedTable[i].fDist < 0.0 && sSemNext == &sSpeedTable[i])
|
if (sSpeedTable[i].fDist < 0.0 && sSemNext == &sSpeedTable[i])
|
||||||
{
|
{
|
||||||
|
if (Global::iWriteLogEnabled & 8)
|
||||||
WriteLog("TableUpdate: semaphor " + sSemNext->GetName() + " passed by " + OwnerName());
|
WriteLog("TableUpdate: semaphor " + sSemNext->GetName() + " passed by " + OwnerName());
|
||||||
sSemNext = NULL; // jeśli minęliśmy semafor od ograniczenia to go kasujemy ze
|
sSemNext = NULL; // jeśli minęliśmy semafor od ograniczenia to go kasujemy ze
|
||||||
// zmiennej sprawdzającej dla skanowania w przód
|
// zmiennej sprawdzającej dla skanowania w przód
|
||||||
}
|
}
|
||||||
if (sSpeedTable[i].fDist < 0.0 && sSemNextStop == &sSpeedTable[i])
|
if (sSpeedTable[i].fDist < 0.0 && sSemNextStop == &sSpeedTable[i])
|
||||||
{
|
{
|
||||||
|
if (Global::iWriteLogEnabled & 8)
|
||||||
WriteLog("TableUpdate: semaphor " + sSemNextStop->GetName() + " passed by " + OwnerName());
|
WriteLog("TableUpdate: semaphor " + sSemNextStop->GetName() + " passed by " + OwnerName());
|
||||||
sSemNextStop = NULL; // jeśli minęliśmy semafor od ograniczenia to go kasujemy ze
|
sSemNextStop = NULL; // jeśli minęliśmy semafor od ograniczenia to go kasujemy ze
|
||||||
// zmiennej sprawdzającej dla skanowania w przód
|
// zmiennej sprawdzającej dla skanowania w przód
|
||||||
@@ -1071,6 +1092,7 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN
|
|||||||
// semafor a wcześniej
|
// semafor a wcześniej
|
||||||
// byl nowy to go dorzucamy do zmiennej, żeby cały
|
// byl nowy to go dorzucamy do zmiennej, żeby cały
|
||||||
// czas widział najbliższy
|
// czas widział najbliższy
|
||||||
|
if (Global::iWriteLogEnabled & 8)
|
||||||
WriteLog("TableUpdate: Next semaphor: " + sSemNext->GetName() + " by " + OwnerName());
|
WriteLog("TableUpdate: Next semaphor: " + sSemNext->GetName() + " by " + OwnerName());
|
||||||
}
|
}
|
||||||
if (!sSemNextStop || (sSemNextStop && sSemNextStop->fVelNext != 0 &&
|
if (!sSemNextStop || (sSemNextStop && sSemNextStop->fVelNext != 0 &&
|
||||||
@@ -1142,6 +1164,7 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN
|
|||||||
{
|
{
|
||||||
if (sSpeedTable[i].fSectionVelocityDist == 0.0)
|
if (sSpeedTable[i].fSectionVelocityDist == 0.0)
|
||||||
{
|
{
|
||||||
|
if (Global::iWriteLogEnabled & 8)
|
||||||
WriteLog("TableUpdate: Event is behind. SVD = 0: " + sSpeedTable[i].evEvent->asName);
|
WriteLog("TableUpdate: Event is behind. SVD = 0: " + sSpeedTable[i].evEvent->asName);
|
||||||
sSpeedTable[i].iFlags = 0; // jeśli punktowy to kasujemy i nie dajemy ograniczenia na stałe
|
sSpeedTable[i].iFlags = 0; // jeśli punktowy to kasujemy i nie dajemy ograniczenia na stałe
|
||||||
}
|
}
|
||||||
@@ -1155,6 +1178,7 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN
|
|||||||
else if (sSpeedTable[i].fDist < -fLength)
|
else if (sSpeedTable[i].fDist < -fLength)
|
||||||
{ // jeśli większe to musi wyjechać za poprzednie
|
{ // jeśli większe to musi wyjechać za poprzednie
|
||||||
VelLimitLast = sSpeedTable[i].fVelNext;
|
VelLimitLast = sSpeedTable[i].fVelNext;
|
||||||
|
if (Global::iWriteLogEnabled & 8)
|
||||||
WriteLog("TableUpdate: Event is behind. SVD < 0: " + sSpeedTable[i].evEvent->asName);
|
WriteLog("TableUpdate: Event is behind. SVD < 0: " + sSpeedTable[i].evEvent->asName);
|
||||||
sSpeedTable[i].iFlags = 0; // wyjechaliśmy poza poprzednie, można skasować
|
sSpeedTable[i].iFlags = 0; // wyjechaliśmy poza poprzednie, można skasować
|
||||||
}
|
}
|
||||||
@@ -1173,6 +1197,7 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN
|
|||||||
else if (sSpeedTable[i].fDist < -fLength - sSpeedTable[i].fSectionVelocityDist)
|
else if (sSpeedTable[i].fDist < -fLength - sSpeedTable[i].fSectionVelocityDist)
|
||||||
{ //
|
{ //
|
||||||
VelLimitLast = -1.0;
|
VelLimitLast = -1.0;
|
||||||
|
if (Global::iWriteLogEnabled & 8)
|
||||||
WriteLog("TableUpdate: Event is behind. SVD > 0: " + sSpeedTable[i].evEvent->asName);
|
WriteLog("TableUpdate: Event is behind. SVD > 0: " + sSpeedTable[i].evEvent->asName);
|
||||||
sSpeedTable[i].iFlags = 0; // wyjechaliśmy poza poprzednie, można skasować
|
sSpeedTable[i].iFlags = 0; // wyjechaliśmy poza poprzednie, można skasować
|
||||||
}
|
}
|
||||||
@@ -1351,6 +1376,7 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN
|
|||||||
void TController::TablePurger()
|
void TController::TablePurger()
|
||||||
{ // odtykacz: usuwa mniej istotne pozycje ze środka tabelki, aby uniknąć zatkania
|
{ // odtykacz: usuwa mniej istotne pozycje ze środka tabelki, aby uniknąć zatkania
|
||||||
//(np. brak ograniczenia pomiędzy zwrotnicami, usunięte sygnały, minięte odcinki łuku)
|
//(np. brak ograniczenia pomiędzy zwrotnicami, usunięte sygnały, minięte odcinki łuku)
|
||||||
|
if (Global::iWriteLogEnabled & 8)
|
||||||
WriteLog("TablePurger: Czyszczenie tableki.");
|
WriteLog("TablePurger: Czyszczenie tableki.");
|
||||||
int i, j, k = iLast - iFirst; // może być 15 albo 16 pozycji, ostatniej nie ma co sprawdzać
|
int i, j, k = iLast - iFirst; // może być 15 albo 16 pozycji, ostatniej nie ma co sprawdzać
|
||||||
if (k < 0)
|
if (k < 0)
|
||||||
@@ -1370,6 +1396,7 @@ void TController::TablePurger()
|
|||||||
if (&sSpeedTable[(i + 1) % iSpeedTableSize] == sSemNextStop)
|
if (&sSpeedTable[(i + 1) % iSpeedTableSize] == sSemNextStop)
|
||||||
sSemNextStop = &sSpeedTable[i]; // przeniesienie znacznika o semaforze
|
sSemNextStop = &sSpeedTable[i]; // przeniesienie znacznika o semaforze
|
||||||
}
|
}
|
||||||
|
if (Global::iWriteLogEnabled & 8)
|
||||||
WriteLog("Odtykacz usuwa pozycję");
|
WriteLog("Odtykacz usuwa pozycję");
|
||||||
iLast = (iLast - 1 + iSpeedTableSize) % iSpeedTableSize; // cofnięcie z zawinięciem
|
iLast = (iLast - 1 + iSpeedTableSize) % iSpeedTableSize; // cofnięcie z zawinięciem
|
||||||
return;
|
return;
|
||||||
@@ -1394,6 +1421,7 @@ void TController::TablePurger()
|
|||||||
delete[] sSpeedTable; // to już nie potrzebne
|
delete[] sSpeedTable; // to już nie potrzebne
|
||||||
sSpeedTable = t; // bo jest nowe
|
sSpeedTable = t; // bo jest nowe
|
||||||
iSpeedTableSize += 16;
|
iSpeedTableSize += 16;
|
||||||
|
if (Global::iWriteLogEnabled & 8)
|
||||||
WriteLog("Tabelka powiększona do "+AnsiString(iSpeedTableSize)+" pozycji");
|
WriteLog("Tabelka powiększona do "+AnsiString(iSpeedTableSize)+" pozycji");
|
||||||
};
|
};
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|||||||
Reference in New Issue
Block a user