mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-22 23:19:19 +02: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
|
// set up train brake
|
||||||
if( mvOccupied->fBrakeCtrlPos != mvOccupied->Handle->GetPos( bh_RP ) ) {
|
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 );
|
cue_action( locale::string::driver_hint_trainbrakerelease );
|
||||||
}
|
}
|
||||||
// sync spring brake state across consist
|
// 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...
|
// 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( 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
|
if( ( BrakeCtrlPosition == gbh_RP ) // jest pozycja jazdy
|
||||||
&& ( false == TestFlag( vehicle->Hamulec->GetBrakeStatus(), b_dmg ) ) // brake isn't broken
|
&& ( 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
|
&& ( vehicle->Hamulec->GetCRP() > vehicle->PipePress + 0.12 ) ) { // za dużo w zbiorniku
|
||||||
// indywidualne luzowanko
|
// indywidualne luzowanko
|
||||||
vehicle->BrakeReleaser( 1 );
|
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
|
fReady = std::max( bp, fReady ); // szukanie najbardziej zahamowanego
|
||||||
if( ( dy = p->VectorFront().y ) != 0.0 ) {
|
if( ( dy = p->VectorFront().y ) != 0.0 ) {
|
||||||
|
|||||||
@@ -2287,6 +2287,11 @@ double TDriverHandle::GetEP()
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
double TDriverHandle::GetRP()
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
double TDriverHandle::GetSound(int i)
|
double TDriverHandle::GetSound(int i)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
@@ -2562,6 +2567,11 @@ double TFV4aM::GetCP()
|
|||||||
return TP;
|
return TP;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
double TFV4aM::GetRP()
|
||||||
|
{
|
||||||
|
return 5.0 +TP * 0.08 + RedAdj;
|
||||||
|
}
|
||||||
|
|
||||||
double TFV4aM::LPP_RP(double pos) // cisnienie z zaokraglonej pozycji;
|
double TFV4aM::LPP_RP(double pos) // cisnienie z zaokraglonej pozycji;
|
||||||
{
|
{
|
||||||
int const i_pos = 2 + std::floor( pos ); // zaokraglone w dol
|
int const i_pos = 2 + std::floor( pos ); // zaokraglone w dol
|
||||||
@@ -2698,6 +2708,11 @@ double TMHZ_EN57::GetCP()
|
|||||||
return RP;
|
return RP;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
double TMHZ_EN57::GetRP()
|
||||||
|
{
|
||||||
|
return 5.0 + RedAdj;
|
||||||
|
}
|
||||||
|
|
||||||
double TMHZ_EN57::GetEP(double pos)
|
double TMHZ_EN57::GetEP(double pos)
|
||||||
{
|
{
|
||||||
if (pos < 9.5)
|
if (pos < 9.5)
|
||||||
@@ -2760,7 +2775,7 @@ double TMHZ_K5P::GetPF(double i_bcp, double PP, double HP, double dt, double ep)
|
|||||||
}
|
}
|
||||||
else
|
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
|
if (EQ(i_bcp, 1)) //odcięcie - nie rób nic
|
||||||
@@ -2846,6 +2861,11 @@ double TMHZ_K5P::GetCP()
|
|||||||
return CP;
|
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)
|
void TMHZ_K5P::SetParams(bool AO, bool MO, double OverP, double, double OMP, double OPD)
|
||||||
{
|
{
|
||||||
AutoOvrld = AO;
|
AutoOvrld = AO;
|
||||||
@@ -2890,7 +2910,7 @@ double TMHZ_6P::GetPF(double i_bcp, double PP, double HP, double dt, double ep)
|
|||||||
}
|
}
|
||||||
else
|
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
|
if (EQ(i_bcp, 2)) //odcięcie - nie rób nic
|
||||||
@@ -2982,6 +3002,11 @@ double TMHZ_6P::GetCP()
|
|||||||
return CP;
|
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)
|
void TMHZ_6P::SetParams(bool AO, bool MO, double OverP, double, double OMP, double OPD)
|
||||||
{
|
{
|
||||||
AutoOvrld = AO;
|
AutoOvrld = AO;
|
||||||
@@ -3065,6 +3090,11 @@ double TM394::GetCP()
|
|||||||
return CP;
|
return CP;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
double TM394::GetRP()
|
||||||
|
{
|
||||||
|
return std::max(5.0, CP) + RedAdj;
|
||||||
|
}
|
||||||
|
|
||||||
double TM394::GetPos(int i)
|
double TM394::GetPos(int i)
|
||||||
{
|
{
|
||||||
return pos_table[i];
|
return pos_table[i];
|
||||||
@@ -3121,6 +3151,11 @@ double TH14K1::GetCP()
|
|||||||
return CP;
|
return CP;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
double TH14K1::GetRP()
|
||||||
|
{
|
||||||
|
return 5.0 + RedAdj;
|
||||||
|
}
|
||||||
|
|
||||||
double TH14K1::GetPos(int i)
|
double TH14K1::GetPos(int i)
|
||||||
{
|
{
|
||||||
return pos_table[i];
|
return pos_table[i];
|
||||||
@@ -3179,6 +3214,11 @@ double TSt113::GetCP()
|
|||||||
return CP;
|
return CP;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
double TSt113::GetRP()
|
||||||
|
{
|
||||||
|
return 5.0 + RedAdj;
|
||||||
|
}
|
||||||
|
|
||||||
double TSt113::GetEP()
|
double TSt113::GetEP()
|
||||||
{
|
{
|
||||||
return EPS;
|
return EPS;
|
||||||
@@ -3351,6 +3391,11 @@ double TFVel6::GetCP()
|
|||||||
return CP;
|
return CP;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
double TFVel6::GetRP()
|
||||||
|
{
|
||||||
|
return 5.0;
|
||||||
|
}
|
||||||
|
|
||||||
double TFVel6::GetEP()
|
double TFVel6::GetEP()
|
||||||
{
|
{
|
||||||
return EPS;
|
return EPS;
|
||||||
@@ -3428,6 +3473,11 @@ double TFVE408::GetEP()
|
|||||||
return EPS;
|
return EPS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
double TFVE408::GetRP()
|
||||||
|
{
|
||||||
|
return 5.0;
|
||||||
|
}
|
||||||
|
|
||||||
double TFVE408::GetPos(int i)
|
double TFVE408::GetPos(int i)
|
||||||
{
|
{
|
||||||
return pos_table[i];
|
return pos_table[i];
|
||||||
|
|||||||
@@ -542,6 +542,7 @@ class TDriverHandle {
|
|||||||
virtual void Init(double Press);
|
virtual void Init(double Press);
|
||||||
virtual double GetCP();
|
virtual double GetCP();
|
||||||
virtual double GetEP();
|
virtual double GetEP();
|
||||||
|
virtual double GetRP();
|
||||||
virtual void SetReductor(double nAdj); //korekcja pozycji reduktora cisnienia
|
virtual void SetReductor(double nAdj); //korekcja pozycji reduktora cisnienia
|
||||||
virtual double GetSound(int i); //pobranie glosnosci wybranego dzwieku
|
virtual double GetSound(int i); //pobranie glosnosci wybranego dzwieku
|
||||||
virtual double GetPos(int i); //pobranie numeru pozycji o zadanym kodzie (funkcji)
|
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 GetSound(int i)/*override*/;
|
||||||
double GetPos(int i)/*override*/;
|
double GetPos(int i)/*override*/;
|
||||||
double GetCP();
|
double GetCP();
|
||||||
|
double GetRP();
|
||||||
inline TFV4aM() :
|
inline TFV4aM() :
|
||||||
TDriverHandle()
|
TDriverHandle()
|
||||||
{}
|
{}
|
||||||
@@ -618,6 +620,7 @@ class TMHZ_EN57 : public TDriverHandle {
|
|||||||
double GetSound(int i)/*override*/;
|
double GetSound(int i)/*override*/;
|
||||||
double GetPos(int i)/*override*/;
|
double GetPos(int i)/*override*/;
|
||||||
double GetCP()/*override*/;
|
double GetCP()/*override*/;
|
||||||
|
double GetRP()/*override*/;
|
||||||
double GetEP(double pos);
|
double GetEP(double pos);
|
||||||
void SetParams(bool AO, bool MO, double OverP, double, double OMP, double OPD);
|
void SetParams(bool AO, bool MO, double OverP, double, double OMP, double OPD);
|
||||||
inline TMHZ_EN57(void) :
|
inline TMHZ_EN57(void) :
|
||||||
@@ -647,6 +650,7 @@ public:
|
|||||||
double GetSound(int i)/*override*/;
|
double GetSound(int i)/*override*/;
|
||||||
double GetPos(int i)/*override*/;
|
double GetPos(int i)/*override*/;
|
||||||
double GetCP()/*override*/;
|
double GetCP()/*override*/;
|
||||||
|
double GetRP()/*override*/;
|
||||||
void SetParams(bool AO, bool MO, double, double, double OMP, double OPD); /*ovveride*/
|
void SetParams(bool AO, bool MO, double, double, double OMP, double OPD); /*ovveride*/
|
||||||
|
|
||||||
inline TMHZ_K5P(void) :
|
inline TMHZ_K5P(void) :
|
||||||
@@ -676,6 +680,7 @@ public:
|
|||||||
double GetSound(int i)/*override*/;
|
double GetSound(int i)/*override*/;
|
||||||
double GetPos(int i)/*override*/;
|
double GetPos(int i)/*override*/;
|
||||||
double GetCP()/*override*/;
|
double GetCP()/*override*/;
|
||||||
|
double GetRP()/*override*/;
|
||||||
void SetParams(bool AO, bool MO, double, double, double OMP, double OPD); /*ovveride*/
|
void SetParams(bool AO, bool MO, double, double, double OMP, double OPD); /*ovveride*/
|
||||||
|
|
||||||
inline TMHZ_6P(void) :
|
inline TMHZ_6P(void) :
|
||||||
@@ -725,6 +730,7 @@ class TM394 : public TDriverHandle {
|
|||||||
void Init(double Press)/*override*/;
|
void Init(double Press)/*override*/;
|
||||||
void SetReductor(double nAdj)/*override*/;
|
void SetReductor(double nAdj)/*override*/;
|
||||||
double GetCP()/*override*/;
|
double GetCP()/*override*/;
|
||||||
|
double GetRP()/*override*/;
|
||||||
double GetPos(int i)/*override*/;
|
double GetPos(int i)/*override*/;
|
||||||
|
|
||||||
inline TM394(void) :
|
inline TM394(void) :
|
||||||
@@ -748,6 +754,7 @@ class TH14K1 : public TDriverHandle {
|
|||||||
void Init(double Press)/*override*/;
|
void Init(double Press)/*override*/;
|
||||||
void SetReductor(double nAdj)/*override*/;
|
void SetReductor(double nAdj)/*override*/;
|
||||||
double GetCP()/*override*/;
|
double GetCP()/*override*/;
|
||||||
|
double GetRP()/*override*/;
|
||||||
double GetPos(int i)/*override*/;
|
double GetPos(int i)/*override*/;
|
||||||
|
|
||||||
inline TH14K1(void) :
|
inline TH14K1(void) :
|
||||||
@@ -767,6 +774,7 @@ class TSt113 : public TH14K1 {
|
|||||||
public:
|
public:
|
||||||
double GetPF(double i_bcp, double PP, double HP, double dt, double ep)/*override*/;
|
double GetPF(double i_bcp, double PP, double HP, double dt, double ep)/*override*/;
|
||||||
double GetCP()/*override*/;
|
double GetCP()/*override*/;
|
||||||
|
double GetRP()/*override*/;
|
||||||
double GetEP()/*override*/;
|
double GetEP()/*override*/;
|
||||||
double GetPos(int i)/*override*/;
|
double GetPos(int i)/*override*/;
|
||||||
void Init(double Press)/*override*/;
|
void Init(double Press)/*override*/;
|
||||||
@@ -837,6 +845,7 @@ class TFVel6 : public TDriverHandle {
|
|||||||
public:
|
public:
|
||||||
double GetPF(double i_bcp, double PP, double HP, double dt, double ep)/*override*/;
|
double GetPF(double i_bcp, double PP, double HP, double dt, double ep)/*override*/;
|
||||||
double GetCP()/*override*/;
|
double GetCP()/*override*/;
|
||||||
|
double GetRP()/*override*/;
|
||||||
double GetEP()/*override*/;
|
double GetEP()/*override*/;
|
||||||
double GetPos(int i)/*override*/;
|
double GetPos(int i)/*override*/;
|
||||||
double GetSound(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 GetPF(double i_bcp, double PP, double HP, double dt, double ep)/*override*/;
|
||||||
double GetCP()/*override*/;
|
double GetCP()/*override*/;
|
||||||
double GetEP()/*override*/;
|
double GetEP()/*override*/;
|
||||||
|
double GetRP()/*override*/;
|
||||||
double GetPos(int i)/*override*/;
|
double GetPos(int i)/*override*/;
|
||||||
double GetSound(int i)/*override*/;
|
double GetSound(int i)/*override*/;
|
||||||
void Init(double Press)/*override*/;
|
void Init(double Press)/*override*/;
|
||||||
|
|||||||
@@ -776,7 +776,8 @@ TController::cue_action( locale::string const Action, float const Actionparamete
|
|||||||
hint(
|
hint(
|
||||||
Action,
|
Action,
|
||||||
[this](float const Parameter) -> bool {
|
[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 ); } );
|
// return ( BrakeCtrlPosition == gbh_RP ); } );
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user