diff --git a/Driver.cpp b/Driver.cpp index b918a463..08790e2c 100644 --- a/Driver.cpp +++ b/Driver.cpp @@ -1151,6 +1151,10 @@ TCommandType TController::TableUpdate(double &fVelDes, double &fDist, double &fN iDrivigFlags |= moveSemaphorFound; //jeśli z przodu to dajemy falgę, że jest d_to_next_sem = Min0R(sSpeedTable[i].fDist, d_to_next_sem); } + if (sSpeedTable[i].fDist <= d_to_next_sem) + { + VelSignalNext = sSpeedTable[i].fVelNext; + } } else if (sSpeedTable[i].iFlags & spRoadVel) { // to W6 diff --git a/Driver.h b/Driver.h index 1c902da0..aae8e242 100644 --- a/Driver.h +++ b/Driver.h @@ -242,6 +242,7 @@ class TController double VelLimit; // predkość zadawana przez event jednokierunkowego ograniczenia prędkości public: double VelSignalLast; // prędkość zadana na ostatnim semaforze + double VelSignalNext; // prędkość zadana na następnym semaforze double VelLimitLast; // prędkość zadana przez ograniczenie double VelRoad; // aktualna prędkość drogowa (ze znaku W27) // (PutValues albo komendą) diff --git a/McZapkie/_mover.pas b/McZapkie/_mover.pas index 12a03867..20c8d1c6 100644 --- a/McZapkie/_mover.pas +++ b/McZapkie/_mover.pas @@ -4085,7 +4085,7 @@ begin if (EngineType=ElectricSeriesMotor) then begin case RVentType of {wentylatory rozruchowe} - 1: if ActiveDir<>0 and (RList[MainCtrlActualPos].R>RVentCutOff) then + 1: if (ActiveDir<>0) and (RList[MainCtrlActualPos].R>RVentCutOff) then RventRot:=RventRot+(RVentnmax-RventRot)*RVentSpeed*dt else RventRot:=RventRot*(1-RVentSpeed*dt); diff --git a/Train.cpp b/Train.cpp index dfb5b21b..295535e0 100644 --- a/Train.cpp +++ b/Train.cpp @@ -349,6 +349,14 @@ PyObject *TTrain::GetTrainState() PyDict_SetItemString(dict, "manual_brake", PyGetBool(mvOccupied->ManualBrakePos > 0)); PyDict_SetItemString(dict, "pantpress", PyGetFloat(mvControlled->PantPress)); PyDict_SetItemString(dict, "trainnumber", PyGetString(DynamicObject->Mechanik->TrainName().c_str())); + PyDict_SetItemString(dict, "velnext", PyGetFloat(DynamicObject->Mechanik->VelNext)); + PyDict_SetItemString(dict, "actualproximitydist", PyGetFloat(DynamicObject->Mechanik->ActualProximityDist)); + PyDict_SetItemString(dict, "velsignallast", PyGetFloat(DynamicObject->Mechanik->VelSignalLast)); + PyDict_SetItemString(dict, "vellimitlast", PyGetFloat(DynamicObject->Mechanik->VelLimitLast)); + PyDict_SetItemString(dict, "velroad", PyGetFloat(DynamicObject->Mechanik->VelRoad)); + PyDict_SetItemString(dict, "velsignalnext", PyGetFloat(DynamicObject->Mechanik->VelSignalNext)); + PyDict_SetItemString(dict, "battery", PyGetBool(mvControlled->Battery)); + return dict; }