mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-19 20:19:18 +02:00
Manual and automatic sanding working independently in EIM vehicles
This commit is contained in:
committed by
tmj-fstate
parent
3153ffc499
commit
b6ca21d280
@@ -1197,6 +1197,9 @@ public:
|
||||
double UnitBrakeForce = 0.0; /*!s siła hamowania przypadająca na jeden element*/
|
||||
double Ntotal = 0.0; /*!s siła nacisku klockow*/
|
||||
bool SlippingWheels = false; bool SandDose = false; /*! poslizg kol, sypanie piasku*/
|
||||
bool SandDoseManual = false; /*piaskowanie reczne*/
|
||||
bool SandDoseAuto = false; /*piaskowanie automatyczne*/
|
||||
bool SandDoseAutoAllow = true; /*zezwolenie na automatyczne piaskowanie*/
|
||||
double Sand = 0.0; /*ilosc piasku*/
|
||||
double BrakeSlippingTimer = 0.0; /*pomocnicza zmienna do wylaczania przeciwposlizgu*/
|
||||
double dpBrake = 0.0; double dpPipe = 0.0; double dpMainValve = 0.0; double dpLocalValve = 0.0;
|
||||
@@ -1488,6 +1491,8 @@ public:
|
||||
|
||||
bool AddPulseForce(int Multipler);/*dla drezyny*/
|
||||
|
||||
bool SandboxManual( bool const State, range_t const Notify = range_t::consist );/*wlacza/wylacza sypanie piasku*/
|
||||
bool SandboxAuto( bool const State, range_t const Notify = range_t::consist );/*wlacza/wylacza sypanie piasku*/
|
||||
bool Sandbox( bool const State, range_t const Notify = range_t::consist );/*wlacza/wylacza sypanie piasku*/
|
||||
|
||||
/*! zbijanie czuwaka/SHP*/
|
||||
|
||||
@@ -2341,6 +2341,63 @@ bool TMoverParameters::AddPulseForce(int Multipler)
|
||||
return APF;
|
||||
}
|
||||
|
||||
// *************************************************************************************************
|
||||
// yB: 20190909
|
||||
// sypanie piasku reczne
|
||||
// *************************************************************************************************
|
||||
bool TMoverParameters::SandboxManual(bool const State, range_t const Notify)
|
||||
{
|
||||
bool result{ false };
|
||||
|
||||
if (SandDoseManual != State) {
|
||||
if (SandDoseManual == false) {
|
||||
// switch on
|
||||
if (Sand > 0) {
|
||||
SandDoseManual = true;
|
||||
result = true;
|
||||
}
|
||||
}
|
||||
else {
|
||||
// switch off
|
||||
SandDoseManual = false;
|
||||
result = true;
|
||||
}
|
||||
}
|
||||
|
||||
Sandbox(SandDoseManual || SandDoseAuto, Notify);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
// *************************************************************************************************
|
||||
// yB: 20190909
|
||||
// sypanie piasku automatyczne
|
||||
// *************************************************************************************************
|
||||
bool TMoverParameters::SandboxAuto(bool const State, range_t const Notify)
|
||||
{
|
||||
bool result{ false };
|
||||
bool NewState = State && SandDoseAutoAllow;
|
||||
if (SandDoseAuto != NewState) {
|
||||
if (SandDoseAuto == false) {
|
||||
// switch on
|
||||
if (Sand > 0) {
|
||||
SandDoseAuto = true;
|
||||
result = true;
|
||||
}
|
||||
}
|
||||
else {
|
||||
// switch off
|
||||
SandDoseAuto = false;
|
||||
result = true;
|
||||
}
|
||||
}
|
||||
|
||||
Sandbox(SandDoseManual || SandDoseAuto, Notify);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
// *************************************************************************************************
|
||||
// Q: 20160713
|
||||
// sypanie piasku
|
||||
@@ -5507,11 +5564,11 @@ double TMoverParameters::TractionForce( double dt ) {
|
||||
if( ( SlippingWheels ) ) {
|
||||
PosRatio = 0;
|
||||
tmp = 10;
|
||||
Sandbox( true, range_t::unit );
|
||||
SandboxAuto( true, range_t::unit );
|
||||
} // przeciwposlizg
|
||||
else {
|
||||
// switch sandbox off
|
||||
Sandbox( false, range_t::unit );
|
||||
SandboxAuto( false, range_t::unit );
|
||||
}
|
||||
|
||||
eimv_pr += Max0R(Min0R(PosRatio - eimv_pr, 0.02), -0.02) * 12 *
|
||||
|
||||
@@ -1437,13 +1437,13 @@ void TTrain::OnCommand_sandboxactivate( TTrain *Train, command_data const &Comma
|
||||
// visual feedback
|
||||
Train->ggSandButton.UpdateValue( 1.0, Train->dsbSwitch );
|
||||
|
||||
Train->mvControlled->Sandbox( true );
|
||||
Train->mvControlled->SandboxManual( true );
|
||||
}
|
||||
else if( Command.action == GLFW_RELEASE) {
|
||||
// visual feedback
|
||||
Train->ggSandButton.UpdateValue( 0.0 );
|
||||
|
||||
Train->mvControlled->Sandbox( false );
|
||||
Train->mvControlled->SandboxManual( false );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user