mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-18 22:39:18 +02:00
Disintegration of brakes from UniCtrl
This commit is contained in:
committed by
tmj-fstate
parent
bda879bdca
commit
bb229bbac9
@@ -979,6 +979,8 @@ public:
|
||||
TSecuritySystem SecuritySystem;
|
||||
TUniversalCtrlTable UniCtrlList; /*lista pozycji uniwersalnego nastawnika*/
|
||||
int UniCtrlListSize = 0; /*wielkosc listy pozycji uniwersalnego nastawnika*/
|
||||
bool UniCtrlIntegratedBrakePNCtrl = false; /*zintegrowany nastawnik JH obsluguje hamulec PN*/
|
||||
bool UniCtrlIntegratedBrakeCtrl = false; /*zintegrowany nastawnik JH obsluguje hamowanie*/
|
||||
|
||||
/*-sekcja parametrow dla lokomotywy elektrycznej*/
|
||||
TSchemeTable RList; /*lista rezystorow rozruchowych i polaczen silnikow, dla dizla: napelnienia*/
|
||||
|
||||
@@ -6336,17 +6336,20 @@ void TMoverParameters::CheckEIMIC(double dt)
|
||||
}
|
||||
break;
|
||||
case 3:
|
||||
if ((UniCtrlList[MainCtrlPos].mode != BrakeCtrlPos) && (MainCtrlActualPos == MainCtrlPos)) //there was no move of controller, but brake only
|
||||
if (UniCtrlIntegratedBrakePNCtrl)
|
||||
{
|
||||
if (BrakeCtrlPos < UniCtrlList[MainCtrlPosNo].mode)
|
||||
BrakeLevelSet(UniCtrlList[MainCtrlPosNo].mode); //bottom clamping
|
||||
if (BrakeCtrlPos > UniCtrlList[0].mode)
|
||||
BrakeLevelSet(UniCtrlList[0].mode); //top clamping
|
||||
while (BrakeCtrlPos > UniCtrlList[MainCtrlPos].mode) DecMainCtrl(1); //find nearest position
|
||||
while (BrakeCtrlPos < UniCtrlList[MainCtrlPos].mode) IncMainCtrl(1); //find nearest position
|
||||
if ((UniCtrlList[MainCtrlPos].mode != BrakeCtrlPos) && (MainCtrlActualPos == MainCtrlPos)) //there was no move of controller, but brake only
|
||||
{
|
||||
if (BrakeCtrlPos < UniCtrlList[MainCtrlPosNo].mode)
|
||||
BrakeLevelSet(UniCtrlList[MainCtrlPosNo].mode); //bottom clamping
|
||||
if (BrakeCtrlPos > UniCtrlList[0].mode)
|
||||
BrakeLevelSet(UniCtrlList[0].mode); //top clamping
|
||||
while (BrakeCtrlPos > UniCtrlList[MainCtrlPos].mode) DecMainCtrl(1); //find nearest position
|
||||
while (BrakeCtrlPos < UniCtrlList[MainCtrlPos].mode) IncMainCtrl(1); //find nearest position
|
||||
}
|
||||
else //controller was moved
|
||||
BrakeLevelSet(UniCtrlList[MainCtrlPos].mode);
|
||||
}
|
||||
else //controller was moved
|
||||
BrakeLevelSet(UniCtrlList[MainCtrlPos].mode);
|
||||
|
||||
if ((MainCtrlActualPos != MainCtrlPos) || (LastRelayTime>InitialCtrlDelay))
|
||||
{
|
||||
@@ -6363,6 +6366,10 @@ void TMoverParameters::CheckEIMIC(double dt)
|
||||
}
|
||||
if (Hamulec->GetEDBCP() > 0.3 && eimic < 0) //when braking with pneumatic brake
|
||||
eimic = 0; //shut off retarder
|
||||
if (UniCtrlIntegratedBrakeCtrl == false)
|
||||
{
|
||||
eimic = (LocalBrakeRatio() > 0.01 ? -LocalBrakeRatio() : eimic);
|
||||
}
|
||||
|
||||
}
|
||||
auto const eimicpowerenabled {
|
||||
@@ -9533,6 +9540,8 @@ void TMoverParameters::LoadFIZ_RList( std::string const &Input ) {
|
||||
void TMoverParameters::LoadFIZ_UCList(std::string const &Input) {
|
||||
|
||||
extract_value(UniCtrlListSize, "Size", Input, "");
|
||||
UniCtrlIntegratedBrakeCtrl = (extract_value("IntegratedBrake", Input) == "Yes");
|
||||
UniCtrlIntegratedBrakePNCtrl = (extract_value("IntegratedBrakePN", Input) == "Yes");
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user