mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-03-22 15:05:03 +01: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 (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");
|
||||
};
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user