16
0
mirror of https://github.com/MaSzyna-EU07/maszyna.git synced 2026-07-22 18:39:18 +02:00

przerobione hamulce: teraz AnalogCalibrateGet()zwraca wartość od 0 do 1 i dopiero w Train przeliczana jest wartość na położenie hamulca.

Osobno hamulec FV4a i osobno FVel6.
This commit is contained in:
maciek001
2017-02-19 02:12:07 +01:00
parent 59ac66c6f8
commit d9860dbdb2
2 changed files with 14 additions and 13 deletions

View File

@@ -474,16 +474,7 @@ float Console::AnalogCalibrateGet(int x)
if (Global::bMWDmasterEnable && Global::bMWDBreakEnable) if (Global::bMWDmasterEnable && Global::bMWDBreakEnable)
{ {
float b = (float)MWDComm->uiAnalog[x]; float b = (float)MWDComm->uiAnalog[x];
b = (b - Global::fMWDAnalogInCalib[x][0]) / (Global::fMWDAnalogInCalib[x][1] - Global::fMWDAnalogInCalib[x][0]); return (b - Global::fMWDAnalogInCalib[x][0]) / (Global::fMWDAnalogInCalib[x][1] - Global::fMWDAnalogInCalib[x][0]);
switch (x)
{
case 0: if (Global::bMWDdebugEnable && Global::iMWDDebugMode & 4) WriteLog("Pozycja kranu = " + to_string(b * 8 - 2));
return (b * 8 - 2);
break;
case 1: return (b * 10);
break;
default: return 0;
}
} }
return -1.0; // odcięcie return -1.0; // odcięcie
}; };

View File

@@ -3762,12 +3762,21 @@ bool TTrain::Update( double const Deltatime )
false) // nie blokujemy AI false) // nie blokujemy AI
{ // Ra: nie najlepsze miejsce, ale na początek gdzieś to dać trzeba { // Ra: nie najlepsze miejsce, ale na początek gdzieś to dać trzeba
// Firleju: dlatego kasujemy i zastepujemy funkcją w Console // Firleju: dlatego kasujemy i zastepujemy funkcją w Console
if (((mvOccupied->BrakeHandle == FV4a) || if (mvOccupied->BrakeHandle == FV4a)
(mvOccupied->BrakeHandle == FVel6))) // może można usunąć ograniczenie do FV4a i FVel6?
{ {
double b = Console::AnalogCalibrateGet(0); double b = Console::AnalogCalibrateGet(0);
b = b * 8 - 2;
b = Global::CutValueToRange(-2.0, b, mvOccupied->BrakeCtrlPosNo); // przycięcie zmiennej do granic b = Global::CutValueToRange(-2.0, b, mvOccupied->BrakeCtrlPosNo); // przycięcie zmiennej do granic
ggBrakeCtrl.UpdateValue(b); // przesów bez zaokrąglenia
mvOccupied->BrakeLevelSet(b);
}
if (mvOccupied->BrakeHandle == FVel6) // może można usunąć ograniczenie do FV4a i FVel6?
{
double b = Console::AnalogCalibrateGet(0);
b = b * 7 - 1;
b = Global::CutValueToRange(-1.0, b, mvOccupied->BrakeCtrlPosNo); // przycięcie zmiennej do granic
ggBrakeCtrl.UpdateValue(b); // przesów bez zaokrąglenia ggBrakeCtrl.UpdateValue(b); // przesów bez zaokrąglenia
mvOccupied->BrakeLevelSet(b); mvOccupied->BrakeLevelSet(b);
} }
@@ -3789,6 +3798,7 @@ bool TTrain::Update( double const Deltatime )
if ((mvOccupied->BrakeLocHandle == FD1)) if ((mvOccupied->BrakeLocHandle == FD1))
{ {
double b = Console::AnalogCalibrateGet(1); double b = Console::AnalogCalibrateGet(1);
b *= 10;
b = Global::CutValueToRange(0.0, b, LocalBrakePosNo); // przycięcie zmiennej do granic b = Global::CutValueToRange(0.0, b, LocalBrakePosNo); // przycięcie zmiennej do granic
ggLocalBrake.UpdateValue(b); // przesów bez zaokrąglenia ggLocalBrake.UpdateValue(b); // przesów bez zaokrąglenia
mvOccupied->LocalBrakePos = mvOccupied->LocalBrakePos =