diff --git a/Driver.cpp b/Driver.cpp index 380ee8f6..7123ac43 100644 --- a/Driver.cpp +++ b/Driver.cpp @@ -851,8 +851,8 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN } // koniec obsługi przelotu na W4 else { // zatrzymanie na W4 - if (!eSignNext) - eSignNext = sSpeedTable[i].evEvent; + if (!eSignNext) //jeśli nie widzi następnego sygnału + eSignNext = sSpeedTable[i].evEvent; //ustawia dotychczasową if (mvOccupied->Vel > 0.3) // jeśli jedzie (nie trzeba czekać, aż się // drgania wytłumią - drzwi zamykane od 1.0) sSpeedTable[i].fVelNext = 0; // to będzie zatrzymanie @@ -983,10 +983,11 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN } if (TrainParams->StationIndex < TrainParams->StationCount) { // jeśli są dalsze stacje, czekamy do godziny odjazdu + if (TrainParams->IsTimeToGo(GlobalTime->hh, GlobalTime->mm)) { // z dalszą akcją czekamy do godziny odjazdu - // if (TrainParams->CheckTrainLatency()<0.0) //jak się ma odjazd - // do czasu odjazdu? + if (TrainParams->CheckTrainLatency() < 0) + WaitingSet(20); //Jak spóźniony to czeka 20s // iDrivigFlags|=moveLate1; //oflagować, gdy odjazd ze // spóźnieniem, będzie jechał forsowniej fLastStopExpDist = @@ -995,14 +996,12 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN // ma przesunąć na następny postój // Controlled-> //zapisać odległość do przejechania TrainParams->StationIndexInc(); // przejście do następnej - asNextStop = - TrainParams - ->NextStop(); // pobranie kolejnego miejsca zatrzymania + asNextStop = TrainParams->NextStop(); // pobranie kolejnego miejsca zatrzymania // TableClear(); //aby od nowa sprawdziło W4 z inną nazwą już - to nie jest dobry pomysł #if LOGSTOPS WriteLog(pVehicle->asName + " as " + TrainParams->TrainName + ": at " + AnsiString(GlobalTime->hh) + ":" + - AnsiString(GlobalTime->mm) + " next " + + AnsiString(GlobalTime->mm) + " Latency:" + AnsiString(TrainParams->CheckTrainLatency()) + " next " + asNextStop); // informacja #endif if (int(floor(sSpeedTable[i].evEvent->ValueGet(1))) & 1)