mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-22 03:29:19 +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;
|
TSecuritySystem SecuritySystem;
|
||||||
TUniversalCtrlTable UniCtrlList; /*lista pozycji uniwersalnego nastawnika*/
|
TUniversalCtrlTable UniCtrlList; /*lista pozycji uniwersalnego nastawnika*/
|
||||||
int UniCtrlListSize = 0; /*wielkosc listy 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*/
|
/*-sekcja parametrow dla lokomotywy elektrycznej*/
|
||||||
TSchemeTable RList; /*lista rezystorow rozruchowych i polaczen silnikow, dla dizla: napelnienia*/
|
TSchemeTable RList; /*lista rezystorow rozruchowych i polaczen silnikow, dla dizla: napelnienia*/
|
||||||
|
|||||||
@@ -6336,17 +6336,20 @@ void TMoverParameters::CheckEIMIC(double dt)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 3:
|
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)
|
if ((UniCtrlList[MainCtrlPos].mode != BrakeCtrlPos) && (MainCtrlActualPos == MainCtrlPos)) //there was no move of controller, but brake only
|
||||||
BrakeLevelSet(UniCtrlList[MainCtrlPosNo].mode); //bottom clamping
|
{
|
||||||
if (BrakeCtrlPos > UniCtrlList[0].mode)
|
if (BrakeCtrlPos < UniCtrlList[MainCtrlPosNo].mode)
|
||||||
BrakeLevelSet(UniCtrlList[0].mode); //top clamping
|
BrakeLevelSet(UniCtrlList[MainCtrlPosNo].mode); //bottom clamping
|
||||||
while (BrakeCtrlPos > UniCtrlList[MainCtrlPos].mode) DecMainCtrl(1); //find nearest position
|
if (BrakeCtrlPos > UniCtrlList[0].mode)
|
||||||
while (BrakeCtrlPos < UniCtrlList[MainCtrlPos].mode) IncMainCtrl(1); //find nearest position
|
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))
|
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
|
if (Hamulec->GetEDBCP() > 0.3 && eimic < 0) //when braking with pneumatic brake
|
||||||
eimic = 0; //shut off retarder
|
eimic = 0; //shut off retarder
|
||||||
|
if (UniCtrlIntegratedBrakeCtrl == false)
|
||||||
|
{
|
||||||
|
eimic = (LocalBrakeRatio() > 0.01 ? -LocalBrakeRatio() : eimic);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
auto const eimicpowerenabled {
|
auto const eimicpowerenabled {
|
||||||
@@ -9533,6 +9540,8 @@ void TMoverParameters::LoadFIZ_RList( std::string const &Input ) {
|
|||||||
void TMoverParameters::LoadFIZ_UCList(std::string const &Input) {
|
void TMoverParameters::LoadFIZ_UCList(std::string const &Input) {
|
||||||
|
|
||||||
extract_value(UniCtrlListSize, "Size", 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