mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-19 12:19:18 +02:00
1. Dodanie możliwości definicji kalibracji wyjść i wejść PWM jako funkcja piątego stopnia
2. Do użycia są dwa nowe słowa kluczowe w ini: calibrate5din, calibrate5dout oba z 6 parametrami 3. Przerzucenie calibracji wejść do Console z Train 4. Dodanie funkcji obcinającej zmienną do podanego zakresu
This commit is contained in:
42
Train.cpp
42
Train.cpp
@@ -3716,22 +3716,24 @@ bool TTrain::Update()
|
||||
if (ggBrakeCtrl.SubModel)
|
||||
{
|
||||
if (DynamicObject->Mechanik ?
|
||||
(DynamicObject->Mechanik->AIControllFlag ? false : Global::iFeedbackMode == 4) :
|
||||
(DynamicObject->Mechanik->AIControllFlag ? false :
|
||||
Global::iFeedbackMode == 4 ) :
|
||||
false) // nie blokujemy AI
|
||||
{ // Ra: nie najlepsze miejsce, ale na pocz¹tek gdzieœ to daæ trzeba
|
||||
double b = Console::AnalogGet(0); // odczyt z pulpitu i modyfikacja pozycji kranu
|
||||
if ((b >= 0.0) && ((mvOccupied->BrakeHandle == FV4a) ||
|
||||
(mvOccupied->BrakeHandle ==
|
||||
FVel6))) // mo¿e mo¿na usun¹æ ograniczenie do FV4a i FVel6?
|
||||
// Firleju: dlatego kasujemy i zastepujemy funkcj¹ w Console
|
||||
// double b = Console::AnalogGet(0); // odczyt z pulpitu i modyfikacja pozycji kranu
|
||||
if (double b = Console::AnalogCalibrateGet(0) && ((mvOccupied->BrakeHandle == FV4a) ||
|
||||
(mvOccupied->BrakeHandle == FVel6))) // mo¿e mo¿na usun¹æ ograniczenie do FV4a i FVel6?
|
||||
{
|
||||
b = (((Global::fCalibrateIn[0][3] * b) + Global::fCalibrateIn[0][2]) * b +
|
||||
Global::fCalibrateIn[0][1]) *
|
||||
b +
|
||||
Global::fCalibrateIn[0][0];
|
||||
if (b < -2.0)
|
||||
// b = (((Global::fCalibrateIn[0][3] * b) + Global::fCalibrateIn[0][2]) * b +
|
||||
// Global::fCalibrateIn[0][1]) *b +
|
||||
// Global::fCalibrateIn[0][0];
|
||||
|
||||
b = Global::CutValueToRange(-2.0, b, mvOccupied->BrakeCtrlPosNo); // przyciêcie zmiennej do granic
|
||||
/*if (b < -2.0)
|
||||
b = -2.0;
|
||||
else if (b > mvOccupied->BrakeCtrlPosNo)
|
||||
b = mvOccupied->BrakeCtrlPosNo;
|
||||
b = mvOccupied->BrakeCtrlPosNo;*/
|
||||
ggBrakeCtrl.UpdateValue(b); // przesów bez zaokr¹glenia
|
||||
mvOccupied->BrakeLevelSet(b);
|
||||
}
|
||||
@@ -3749,17 +3751,19 @@ bool TTrain::Update()
|
||||
(DynamicObject->Mechanik->AIControllFlag ? false : Global::iFeedbackMode == 4) :
|
||||
false) // nie blokujemy AI
|
||||
{ // Ra: nie najlepsze miejsce, ale na pocz¹tek gdzieœ to daæ trzeba
|
||||
double b = Console::AnalogGet(1); // odczyt z pulpitu i modyfikacja pozycji kranu
|
||||
if ((b >= 0.0) && (mvOccupied->BrakeLocHandle == FD1))
|
||||
// Firleju: dlatego kasujemy i zastepujemy funkcj¹ w Console
|
||||
// double b = Console::AnalogGet(1); // odczyt z pulpitu i modyfikacja pozycji kranu
|
||||
if (double b = Console::AnalogCalibrateGet(1) && (mvOccupied->BrakeLocHandle == FD1))
|
||||
{
|
||||
b = (((Global::fCalibrateIn[1][3] * b) + Global::fCalibrateIn[1][2]) * b +
|
||||
Global::fCalibrateIn[1][1]) *
|
||||
b +
|
||||
Global::fCalibrateIn[1][0];
|
||||
if (b < 0.0)
|
||||
//b = (((Global::fCalibrateIn[1][3] * b) + Global::fCalibrateIn[1][2]) * b +
|
||||
// Global::fCalibrateIn[1][1]) *
|
||||
// b +
|
||||
// Global::fCalibrateIn[1][0];
|
||||
b = Global::CutValueToRange(0.0, b, Hamulce::LocalBrakePosNo); // przyciêcie zmiennej do granic
|
||||
/*if (b < 0.0)
|
||||
b = 0.0;
|
||||
else if (b > Hamulce::LocalBrakePosNo)
|
||||
b = Hamulce::LocalBrakePosNo;
|
||||
b = Hamulce::LocalBrakePosNo;*/
|
||||
ggLocalBrake.UpdateValue(b); // przesów bez zaokr¹glenia
|
||||
mvOccupied->LocalBrakePos =
|
||||
int(1.09 * b); // sposób zaokr¹glania jest do ustalenia
|
||||
|
||||
Reference in New Issue
Block a user