mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-03-22 15:05:03 +01:00
Poprawka asymilacji w K5P i 6P, ograniczenie interwencji automanewrowego w luzowanie pojazdów, zaliczanie pozycji utrzymania ciśnienia jako jazda
This commit is contained in:
15
Driver.cpp
15
Driver.cpp
@@ -2873,6 +2873,8 @@ bool TController::PrepareEngine()
|
||||
}
|
||||
// set up train brake
|
||||
if( mvOccupied->fBrakeCtrlPos != mvOccupied->Handle->GetPos( bh_RP ) ) {
|
||||
if ( ( !mvOccupied->Handle->Time)
|
||||
|| ( mvOccupied->Handle->GetCP() < mvOccupied->HighPipePress - 0.05 ) );
|
||||
cue_action( locale::string::driver_hint_trainbrakerelease );
|
||||
}
|
||||
// sync spring brake state across consist
|
||||
@@ -6023,16 +6025,25 @@ TController::determine_consist_state() {
|
||||
}
|
||||
// Ra: odluźnianie przeładowanych lokomotyw, ciągniętych na zimno - prowizorka...
|
||||
if( bp >= 0.4 ) { // wg UIC określone sztywno na 0.04
|
||||
if( AIControllFlag || Global.AITrainman ) {
|
||||
if( AIControllFlag || (Global.AITrainman && mvOccupied->Vel < EU07_AI_NOMOVEMENT && !is_emu() && !is_dmu())) {
|
||||
if( ( BrakeCtrlPosition == gbh_RP ) // jest pozycja jazdy
|
||||
&& ( false == TestFlag( vehicle->Hamulec->GetBrakeStatus(), b_dmg ) ) // brake isn't broken
|
||||
&& ( vehicle->PipePress - 5.0 > -0.1 ) // jeśli ciśnienie jak dla jazdy
|
||||
&& ( vehicle->PipePress - mvOccupied->Handle->GetRP() > -0.1 ) // jeśli ciśnienie jak dla jazdy
|
||||
&& ( vehicle->Hamulec->GetCRP() > vehicle->PipePress + 0.12 ) ) { // za dużo w zbiorniku
|
||||
// indywidualne luzowanko
|
||||
vehicle->BrakeReleaser( 1 );
|
||||
}
|
||||
}
|
||||
}
|
||||
if (bp < 0.1) {
|
||||
if ( AIControllFlag || Global.AITrainman ) {
|
||||
if (( false == TestFlag( vehicle->Hamulec->GetBrakeStatus(), b_dmg ) ) // brake isn't broken
|
||||
&& ( vehicle->Hamulec->GetCRP() < vehicle->PipePress - 0.1 ) ) { // już nie jest za dużo w zbiorniku
|
||||
// koniec indywidualnego luzowanka
|
||||
vehicle->BrakeReleaser( 0 );
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
fReady = std::max( bp, fReady ); // szukanie najbardziej zahamowanego
|
||||
if( ( dy = p->VectorFront().y ) != 0.0 ) {
|
||||
|
||||
@@ -2287,6 +2287,11 @@ double TDriverHandle::GetEP()
|
||||
return 0;
|
||||
}
|
||||
|
||||
double TDriverHandle::GetRP()
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
double TDriverHandle::GetSound(int i)
|
||||
{
|
||||
return 0;
|
||||
@@ -2562,6 +2567,11 @@ double TFV4aM::GetCP()
|
||||
return TP;
|
||||
}
|
||||
|
||||
double TFV4aM::GetRP()
|
||||
{
|
||||
return 5.0 +TP * 0.08 + RedAdj;
|
||||
}
|
||||
|
||||
double TFV4aM::LPP_RP(double pos) // cisnienie z zaokraglonej pozycji;
|
||||
{
|
||||
int const i_pos = 2 + std::floor( pos ); // zaokraglone w dol
|
||||
@@ -2698,6 +2708,11 @@ double TMHZ_EN57::GetCP()
|
||||
return RP;
|
||||
}
|
||||
|
||||
double TMHZ_EN57::GetRP()
|
||||
{
|
||||
return 5.0 + RedAdj;
|
||||
}
|
||||
|
||||
double TMHZ_EN57::GetEP(double pos)
|
||||
{
|
||||
if (pos < 9.5)
|
||||
@@ -2760,7 +2775,7 @@ double TMHZ_K5P::GetPF(double i_bcp, double PP, double HP, double dt, double ep)
|
||||
}
|
||||
else
|
||||
{
|
||||
TP = 0;
|
||||
//TP = 0; //tu nie powinno być nic, ciśnienie zostaje jak było
|
||||
}
|
||||
|
||||
if (EQ(i_bcp, 1)) //odcięcie - nie rób nic
|
||||
@@ -2846,6 +2861,11 @@ double TMHZ_K5P::GetCP()
|
||||
return CP;
|
||||
}
|
||||
|
||||
double TMHZ_K5P::GetRP()
|
||||
{
|
||||
return 5.0 + TP + RedAdj;
|
||||
}
|
||||
|
||||
void TMHZ_K5P::SetParams(bool AO, bool MO, double OverP, double, double OMP, double OPD)
|
||||
{
|
||||
AutoOvrld = AO;
|
||||
@@ -2890,7 +2910,7 @@ double TMHZ_6P::GetPF(double i_bcp, double PP, double HP, double dt, double ep)
|
||||
}
|
||||
else
|
||||
{
|
||||
TP = 0;
|
||||
//TP = 0; //tu nie powinno być nic, ciśnienie zostaje jak było
|
||||
}
|
||||
|
||||
if (EQ(i_bcp, 2)) //odcięcie - nie rób nic
|
||||
@@ -2982,6 +3002,11 @@ double TMHZ_6P::GetCP()
|
||||
return CP;
|
||||
}
|
||||
|
||||
double TMHZ_6P::GetRP()
|
||||
{
|
||||
return 5.0 + TP + RedAdj;
|
||||
}
|
||||
|
||||
void TMHZ_6P::SetParams(bool AO, bool MO, double OverP, double, double OMP, double OPD)
|
||||
{
|
||||
AutoOvrld = AO;
|
||||
@@ -3065,6 +3090,11 @@ double TM394::GetCP()
|
||||
return CP;
|
||||
}
|
||||
|
||||
double TM394::GetRP()
|
||||
{
|
||||
return std::max(5.0, CP) + RedAdj;
|
||||
}
|
||||
|
||||
double TM394::GetPos(int i)
|
||||
{
|
||||
return pos_table[i];
|
||||
@@ -3121,6 +3151,11 @@ double TH14K1::GetCP()
|
||||
return CP;
|
||||
}
|
||||
|
||||
double TH14K1::GetRP()
|
||||
{
|
||||
return 5.0 + RedAdj;
|
||||
}
|
||||
|
||||
double TH14K1::GetPos(int i)
|
||||
{
|
||||
return pos_table[i];
|
||||
@@ -3179,6 +3214,11 @@ double TSt113::GetCP()
|
||||
return CP;
|
||||
}
|
||||
|
||||
double TSt113::GetRP()
|
||||
{
|
||||
return 5.0 + RedAdj;
|
||||
}
|
||||
|
||||
double TSt113::GetEP()
|
||||
{
|
||||
return EPS;
|
||||
@@ -3351,6 +3391,11 @@ double TFVel6::GetCP()
|
||||
return CP;
|
||||
}
|
||||
|
||||
double TFVel6::GetRP()
|
||||
{
|
||||
return 5.0;
|
||||
}
|
||||
|
||||
double TFVel6::GetEP()
|
||||
{
|
||||
return EPS;
|
||||
@@ -3428,6 +3473,11 @@ double TFVE408::GetEP()
|
||||
return EPS;
|
||||
}
|
||||
|
||||
double TFVE408::GetRP()
|
||||
{
|
||||
return 5.0;
|
||||
}
|
||||
|
||||
double TFVE408::GetPos(int i)
|
||||
{
|
||||
return pos_table[i];
|
||||
|
||||
@@ -542,6 +542,7 @@ class TDriverHandle {
|
||||
virtual void Init(double Press);
|
||||
virtual double GetCP();
|
||||
virtual double GetEP();
|
||||
virtual double GetRP();
|
||||
virtual void SetReductor(double nAdj); //korekcja pozycji reduktora cisnienia
|
||||
virtual double GetSound(int i); //pobranie glosnosci wybranego dzwieku
|
||||
virtual double GetPos(int i); //pobranie numeru pozycji o zadanym kodzie (funkcji)
|
||||
@@ -590,6 +591,7 @@ class TFV4aM : public TDriverHandle {
|
||||
double GetSound(int i)/*override*/;
|
||||
double GetPos(int i)/*override*/;
|
||||
double GetCP();
|
||||
double GetRP();
|
||||
inline TFV4aM() :
|
||||
TDriverHandle()
|
||||
{}
|
||||
@@ -618,6 +620,7 @@ class TMHZ_EN57 : public TDriverHandle {
|
||||
double GetSound(int i)/*override*/;
|
||||
double GetPos(int i)/*override*/;
|
||||
double GetCP()/*override*/;
|
||||
double GetRP()/*override*/;
|
||||
double GetEP(double pos);
|
||||
void SetParams(bool AO, bool MO, double OverP, double, double OMP, double OPD);
|
||||
inline TMHZ_EN57(void) :
|
||||
@@ -647,6 +650,7 @@ public:
|
||||
double GetSound(int i)/*override*/;
|
||||
double GetPos(int i)/*override*/;
|
||||
double GetCP()/*override*/;
|
||||
double GetRP()/*override*/;
|
||||
void SetParams(bool AO, bool MO, double, double, double OMP, double OPD); /*ovveride*/
|
||||
|
||||
inline TMHZ_K5P(void) :
|
||||
@@ -676,6 +680,7 @@ public:
|
||||
double GetSound(int i)/*override*/;
|
||||
double GetPos(int i)/*override*/;
|
||||
double GetCP()/*override*/;
|
||||
double GetRP()/*override*/;
|
||||
void SetParams(bool AO, bool MO, double, double, double OMP, double OPD); /*ovveride*/
|
||||
|
||||
inline TMHZ_6P(void) :
|
||||
@@ -725,6 +730,7 @@ class TM394 : public TDriverHandle {
|
||||
void Init(double Press)/*override*/;
|
||||
void SetReductor(double nAdj)/*override*/;
|
||||
double GetCP()/*override*/;
|
||||
double GetRP()/*override*/;
|
||||
double GetPos(int i)/*override*/;
|
||||
|
||||
inline TM394(void) :
|
||||
@@ -748,6 +754,7 @@ class TH14K1 : public TDriverHandle {
|
||||
void Init(double Press)/*override*/;
|
||||
void SetReductor(double nAdj)/*override*/;
|
||||
double GetCP()/*override*/;
|
||||
double GetRP()/*override*/;
|
||||
double GetPos(int i)/*override*/;
|
||||
|
||||
inline TH14K1(void) :
|
||||
@@ -767,6 +774,7 @@ class TSt113 : public TH14K1 {
|
||||
public:
|
||||
double GetPF(double i_bcp, double PP, double HP, double dt, double ep)/*override*/;
|
||||
double GetCP()/*override*/;
|
||||
double GetRP()/*override*/;
|
||||
double GetEP()/*override*/;
|
||||
double GetPos(int i)/*override*/;
|
||||
void Init(double Press)/*override*/;
|
||||
@@ -837,6 +845,7 @@ class TFVel6 : public TDriverHandle {
|
||||
public:
|
||||
double GetPF(double i_bcp, double PP, double HP, double dt, double ep)/*override*/;
|
||||
double GetCP()/*override*/;
|
||||
double GetRP()/*override*/;
|
||||
double GetEP()/*override*/;
|
||||
double GetPos(int i)/*override*/;
|
||||
double GetSound(int i)/*override*/;
|
||||
@@ -858,6 +867,7 @@ public:
|
||||
double GetPF(double i_bcp, double PP, double HP, double dt, double ep)/*override*/;
|
||||
double GetCP()/*override*/;
|
||||
double GetEP()/*override*/;
|
||||
double GetRP()/*override*/;
|
||||
double GetPos(int i)/*override*/;
|
||||
double GetSound(int i)/*override*/;
|
||||
void Init(double Press)/*override*/;
|
||||
|
||||
@@ -776,7 +776,8 @@ TController::cue_action( locale::string const Action, float const Actionparamete
|
||||
hint(
|
||||
Action,
|
||||
[this](float const Parameter) -> bool {
|
||||
return ( is_equal( mvOccupied->fBrakeCtrlPos, mvOccupied->Handle->GetPos( bh_RP ), 0.2 ) ); } );
|
||||
return ( is_equal( mvOccupied->fBrakeCtrlPos, mvOccupied->Handle->GetPos( bh_RP ), 0.2 )
|
||||
|| ( mvOccupied->Handle->Time && ( mvOccupied->Handle->GetCP() > mvOccupied->HighPipePress - 0.05) ) ); } );
|
||||
// return ( BrakeCtrlPosition == gbh_RP ); } );
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user