Ograniczenie logowania skanowania do (debuglog +8)

This commit is contained in:
antonisauren
2016-06-06 19:39:32 +02:00
parent 524be63b16
commit da2bf75464

View File

@@ -243,6 +243,7 @@ bool TSpeedPos::Update(vector3 *p, vector3 *dir, double &len)
if ((iFlags & spElapsed) == 0) // jeśli nie wjechał
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);
fVelNext =
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 >
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);
//fDist -= 30.0;
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
if (sSpeedTable[i].evEvent == e)
{
if (Global::iWriteLogEnabled & 8)
WriteLog("TableNotFound: Event already in SpeedTable: " + sSpeedTable[i].evEvent->asName);
return false; // już jest, drugi raz dodawać nie ma po co
}
@@ -517,22 +520,27 @@ void TController::TableTraceRoute(double fDistance, TDynamicObject *pVehicle)
if (TableNotFound(pEvent)) // jeśli nie ma
if (TableAddNew())
{
WriteLog("TableTraceRoute: new event found " + pEvent->asName + " by " +
OwnerName());
if (sSpeedTable[iLast].Set(
pEvent, fCurrentDistance,
OrderCurrentGet())) // dodanie odczytu sygnału
if (Global::iWriteLogEnabled & 8)
WriteLog("TableTraceRoute: new event found " + pEvent->asName + " by " + OwnerName());
if (sSpeedTable[iLast].Set( pEvent, fCurrentDistance, OrderCurrentGet())) // dodanie odczytu sygnału
{
fDistance = fCurrentDistance; // jeśli sygnał stop, to nie ma
// potrzeby dalej skanować
sSemNextStop = &sSpeedTable[iLast];
if (!sSemNext)
sSemNext = &sSpeedTable[iLast];
if (Global::iWriteLogEnabled & 8)
WriteLog("Signal stop. Next Semaphor ", false);
if (sSemNextStop)
{
if (Global::iWriteLogEnabled & 8)
WriteLog(sSemNextStop->GetName());
}
else
{
if (Global::iWriteLogEnabled & 8)
WriteLog("none");
}
}
else
{
@@ -540,11 +548,18 @@ void TController::TableTraceRoute(double fDistance, TDynamicObject *pVehicle)
sSemNext == NULL)
sSemNext =
&sSpeedTable[iLast]; // sprawdzamy czy pierwszy na drodze
if (Global::iWriteLogEnabled & 8)
WriteLog("Signal forward. Next Semaphor ", false);
if (sSemNext)
{
if (Global::iWriteLogEnabled & 8)
WriteLog(sSemNext->GetName());
}
else
{
if (Global::iWriteLogEnabled & 8)
WriteLog("none");
}
}
}
} // event dodajemy najpierw, żeby móc sprawdzić, czy tor został dodany po
@@ -693,11 +708,12 @@ void TController::TableCheck(double fDistance)
{
if (sSpeedTable[i].Update(&pos, &dir, len))
{
WriteLog("TableCheck: Switch change. Delete next entries. (" +
sSpeedTable[i].trTrack->NameGet() + ")");
if (Global::iWriteLogEnabled & 8)
WriteLog("TableCheck: Switch change. Delete next entries. (" + sSpeedTable[i].trTrack->NameGet() + ")");
int k = (iLast + 1) % iSpeedTableSize; // skanujemy razem z ostatnią pozycją
for (int j = (i+1) % iSpeedTableSize; j != k; j = (j + 1) % iSpeedTableSize)
{ // kasowanie wszystkich rekordów za zmienioną zwrotnicą
if (Global::iWriteLogEnabled & 8)
WriteLog("TableCheck: Delete from table: " + sSpeedTable[j].GetName());
sSpeedTable[j].iFlags = 0;
if (&sSpeedTable[j] == sSemNext)
@@ -705,8 +721,11 @@ void TController::TableCheck(double fDistance)
if (&sSpeedTable[j] == sSemNextStop)
sSemNextStop = NULL; // przy kasowaniu tabelki zrzucamy także semafor
}
if (Global::iWriteLogEnabled & 8)
{
WriteLog("TableCheck: Delete entries OK.");
WriteLog("TableCheck: New last element: " + sSpeedTable[i].GetName());
}
iLast = i; // pokazujemy gdzie jest ostatni kawałek
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
if (sSpeedTable[i].fDist < 0.0 && sSemNext == &sSpeedTable[i])
{
if (Global::iWriteLogEnabled & 8)
WriteLog("TableUpdate: semaphor " + sSemNext->GetName() + " passed by " + OwnerName());
sSemNext = NULL; // jeśli minęliśmy semafor od ograniczenia to go kasujemy ze
// zmiennej sprawdzającej dla skanowania w przód
}
if (sSpeedTable[i].fDist < 0.0 && sSemNextStop == &sSpeedTable[i])
{
if (Global::iWriteLogEnabled & 8)
WriteLog("TableUpdate: semaphor " + sSemNextStop->GetName() + " passed by " + OwnerName());
sSemNextStop = NULL; // jeśli minęliśmy semafor od ograniczenia to go kasujemy ze
// 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
// byl nowy to go dorzucamy do zmiennej, żeby cały
// czas widział najbliższy
if (Global::iWriteLogEnabled & 8)
WriteLog("TableUpdate: Next semaphor: " + sSemNext->GetName() + " by " + OwnerName());
}
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 (Global::iWriteLogEnabled & 8)
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
}
@@ -1155,6 +1178,7 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN
else if (sSpeedTable[i].fDist < -fLength)
{ // jeśli większe to musi wyjechać za poprzednie
VelLimitLast = sSpeedTable[i].fVelNext;
if (Global::iWriteLogEnabled & 8)
WriteLog("TableUpdate: Event is behind. SVD < 0: " + sSpeedTable[i].evEvent->asName);
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)
{ //
VelLimitLast = -1.0;
if (Global::iWriteLogEnabled & 8)
WriteLog("TableUpdate: Event is behind. SVD > 0: " + sSpeedTable[i].evEvent->asName);
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()
{ // 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)
if (Global::iWriteLogEnabled & 8)
WriteLog("TablePurger: Czyszczenie tableki.");
int i, j, k = iLast - iFirst; // może być 15 albo 16 pozycji, ostatniej nie ma co sprawdzać
if (k < 0)
@@ -1370,6 +1396,7 @@ void TController::TablePurger()
if (&sSpeedTable[(i + 1) % iSpeedTableSize] == sSemNextStop)
sSemNextStop = &sSpeedTable[i]; // przeniesienie znacznika o semaforze
}
if (Global::iWriteLogEnabled & 8)
WriteLog("Odtykacz usuwa pozycję");
iLast = (iLast - 1 + iSpeedTableSize) % iSpeedTableSize; // cofnięcie z zawinięciem
return;
@@ -1394,6 +1421,7 @@ void TController::TablePurger()
delete[] sSpeedTable; // to już nie potrzebne
sSpeedTable = t; // bo jest nowe
iSpeedTableSize += 16;
if (Global::iWriteLogEnabled & 8)
WriteLog("Tabelka powiększona do "+AnsiString(iSpeedTableSize)+" pozycji");
};
//---------------------------------------------------------------------------