16
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-07-21 06:59:17 +02:00

UniversalControl is connected with BrakeCtrl

This commit is contained in:
Królik Uszasty
2019-06-10 19:44:23 +02:00
parent db89437cdd
commit 1234780576
2 changed files with 21 additions and 5 deletions

View File

@@ -3633,10 +3633,13 @@ void TController::CheckTimeControllers()
NeutralPos = i;
break;
}
if ((DizelActualPercentage >= DizelPercentage_Speed) && (mvControlling->MainCtrlPos > NeutralPos))
while (mvControlling->MainCtrlPos > NeutralPos) mvControlling->DecMainCtrl(1);
if ((DizelActualPercentage <= DizelPercentage_Speed) && (mvControlling->MainCtrlPos < NeutralPos))
while (mvControlling->MainCtrlPos < NeutralPos) mvControlling->IncMainCtrl(1);
if (BrakeCtrlPosition < 0.1) //jesli nie hamuje
{
if ((DizelActualPercentage >= DizelPercentage_Speed) && (mvControlling->MainCtrlPos > NeutralPos))
while (mvControlling->MainCtrlPos > NeutralPos) mvControlling->DecMainCtrl(1);
if ((DizelActualPercentage <= DizelPercentage_Speed) && (mvControlling->MainCtrlPos < NeutralPos))
while (mvControlling->MainCtrlPos < NeutralPos) mvControlling->IncMainCtrl(1);
}
}
};

View File

@@ -6116,6 +6116,19 @@ void TMoverParameters::CheckEIMIC(double dt)
}
break;
case 3:
if ((UniCtrlList[MainCtrlPos].mode != BrakeCtrlPos) && (MainCtrlActualPos == MainCtrlPos)) //nie było ruszane nastawnikiem tylko hamulcem
{
if (BrakeCtrlPos < UniCtrlList[MainCtrlPosNo].mode)
BrakeLevelSet(UniCtrlList[MainCtrlPosNo].mode); //przytnij z dołu
if (BrakeCtrlPos > UniCtrlList[0].mode)
BrakeLevelSet(UniCtrlList[0].mode); //przytnij z góry
while (BrakeCtrlPos > UniCtrlList[MainCtrlPos].mode) DecMainCtrl(1); //znajdź najbliższą pozycję
while (BrakeCtrlPos < UniCtrlList[MainCtrlPos].mode) IncMainCtrl(1); //znajdź najbliższą pozycję
}
else //było ruszane nastawnikiem
BrakeLevelSet(UniCtrlList[MainCtrlPos].mode);
if ((MainCtrlActualPos != MainCtrlPos) || (LastRelayTime>InitialCtrlDelay))
{
eimic -= clamp(-UniCtrlList[MainCtrlPos].SetCtrlVal + eimic, 0.0, (MainCtrlActualPos == MainCtrlPos ? dt * UniCtrlList[MainCtrlPos].SpeedDown : sign(UniCtrlList[MainCtrlPos].SpeedDown) * 0.01)); //odejmuj do X
@@ -6129,7 +6142,7 @@ void TMoverParameters::CheckEIMIC(double dt)
LastRelayTime = 0;
MainCtrlActualPos = MainCtrlPos;
}
//BrakeLevelSet(UniCtrlList[MainCtrlPos].mode);
}
auto const eimicpowerenabled {
( ( true == Mains ) || ( Power == 0.0 ) )