Załatanie dziury w kranie hamulca

This commit is contained in:
firleju
2016-12-08 21:35:57 +01:00
parent 77491f3d91
commit 0659256619
5 changed files with 20 additions and 16 deletions

View File

@@ -3492,7 +3492,7 @@ bool TDynamicObject::FastUpdate(double dt)
l.Y = vPosition.z; l.Y = vPosition.z;
l.Z = vPosition.y; l.Z = vPosition.y;
TRotation r; TRotation r;
r.Rx = r.Ry = r.Rz = 0; r.Rx = r.Ry = r.Rz = 0.0;
// McZapkie: parametry powinny byc pobierane z toru // McZapkie: parametry powinny byc pobierane z toru
// ts.R=MyTrack->fRadius; // ts.R=MyTrack->fRadius;

View File

@@ -7210,7 +7210,7 @@ bool TMoverParameters::CheckLocomotiveParameters(bool ReadyFlag, int Dir)
// to dac potem do init // to dac potem do init
if (ReadyFlag) // gotowy do drogi if (ReadyFlag) // gotowy do drogi
{ {
// WriteLog("Ready to depart"); WriteLog("Ready to depart");
CompressedVolume = VeselVolume * MinCompressor * (9.8) / 10; CompressedVolume = VeselVolume * MinCompressor * (9.8) / 10;
ScndPipePress = CompressedVolume / VeselVolume; ScndPipePress = CompressedVolume / VeselVolume;
PipePress = CntrlPipePress; PipePress = CntrlPipePress;
@@ -7225,7 +7225,7 @@ bool TMoverParameters::CheckLocomotiveParameters(bool ReadyFlag, int Dir)
} }
else else
{ // zahamowany} { // zahamowany}
WriteLog("Bracked"); WriteLog("Braked");
Volume = BrakeVVolume * MaxBrakePress[3]; Volume = BrakeVVolume * MaxBrakePress[3];
CompressedVolume = VeselVolume * MinCompressor * 0.55; CompressedVolume = VeselVolume * MinCompressor * 0.55;
ScndPipePress = 5.1; ScndPipePress = 5.1;

View File

@@ -24,10 +24,10 @@ double TFV4aM::pos_table[11] = { -2, 6, -1, 0, -2, 1, 4, 6, 0, 0, 0 };
double TMHZ_EN57::pos_table[11] = { -2, 10, -1, 0, 0, 2, 9, 10, 0, 0, 0 }; double TMHZ_EN57::pos_table[11] = { -2, 10, -1, 0, 0, 2, 9, 10, 0, 0, 0 };
double TM394::pos_table[11] = { -1, 5, -1, 0, 1, 2, 4, 5, 0, 0, 0 }; double TM394::pos_table[11] = { -1, 5, -1, 0, 1, 2, 4, 5, 0, 0, 0 };
double TH14K1::BPT_K[6][2] = double TH14K1::BPT_K[6][2] =
{ (10, 0), (4, 1), (0, 1), (4, 0), (4, -1), (15, -1) }; { {10, 0}, {4, 1}, {0, 1}, {4, 0}, {4, -1}, {15, -1} };
double TH14K1::pos_table[11] = { -1, 4, -1, 0, 1, 2, 3, 4, 0, 0, 0 }; double TH14K1::pos_table[11] = { -1, 4, -1, 0, 1, 2, 3, 4, 0, 0, 0 };
double TSt113::BPT_K[6][2] = double TSt113::BPT_K[6][2] =
{ (10, 0), (4, 1), (0, 1), (4, 0), (4, -1), (15, -1) }; { {10, 0}, {4, 1}, {0, 1}, {4, 0}, {4, -1}, {15, -1} };
double TSt113::BEP_K[7] = { 0, -1, 1, 0, 0, 0, 0 }; double TSt113::BEP_K[7] = { 0, -1, 1, 0, 0, 0, 0 };
double TSt113::pos_table[11] = { -1, 5, -1, 0, 2, 3, 4, 5, 0, 0, 1 }; double TSt113::pos_table[11] = { -1, 5, -1, 0, 2, 3, 4, 5, 0, 0, 1 };
double TFVel6::pos_table[11] = { -1, 6, -1, 0, 6, 4, 4.7, 5, -1, 0, 1 }; double TFVel6::pos_table[11] = { -1, 6, -1, 0, 6, 4, 4.7, 5, -1, 0, 1 };
@@ -2233,11 +2233,8 @@ double TFV4aM::GetPF(double i_bcp, double PP, double HP, double dt, double ep)
// ep:=cp/3+pp/3+ep/3; // ep:=cp/3+pp/3+ep/3;
// ep:=cp; // ep:=cp;
{ for (i = 0; i < 5; ++i)
long i_end = 5; Sounds[i] = 0;
for (i = 0; i < i_end; ++i)
Sounds[i] = 0;
}
DP = 0; DP = 0;
i_bcp = Max0R(Min0R(i_bcp, 5.999), -1.999); // na wszelki wypadek, zeby nie wyszlo poza zakres i_bcp = Max0R(Min0R(i_bcp, 5.999), -1.999); // na wszelki wypadek, zeby nie wyszlo poza zakres
@@ -2378,8 +2375,14 @@ double TFV4aM::LPP_RP(double pos) // cisnienie z zaokraglonej pozycji;
int i_pos; int i_pos;
i_pos = lround(pos - 0.5) + 2; // zaokraglone w dol i_pos = lround(pos - 0.5) + 2; // zaokraglone w dol
return double i, j, k, l;
i = BPT[i_pos][1];
j = BPT[i_pos + 1][1];
k = pos + 2 - i_pos;
l = i + (j - i) * k;
double r =
BPT[i_pos][1] + (BPT[i_pos + 1][1] - BPT[i_pos][1]) * (pos + 2 - i_pos); // interpolacja liniowa BPT[i_pos][1] + (BPT[i_pos + 1][1] - BPT[i_pos][1]) * (pos + 2 - i_pos); // interpolacja liniowa
return r;
} }
bool TFV4aM::EQ(double pos, double i_pos) bool TFV4aM::EQ(double pos, double i_pos)
{ {

View File

@@ -129,8 +129,8 @@ Knorr/West EP -
//7//1.5 //7//1.5
// BPT: array[-2..6] of array [0..1] of real= ((0, 5.0), (14, 5.4), (9, 5.0), (6, 4.6), (9, 4.5), (9, 4.0), (9, 3.5), (9, 2.8), (34, 2.8)); // BPT: array[-2..6] of array [0..1] of real= ((0, 5.0), (14, 5.4), (9, 5.0), (6, 4.6), (9, 4.5), (9, 4.0), (9, 3.5), (9, 2.8), (34, 2.8));
// BPT: array[-2..6] of array [0..1] of real= ((0, 5.0), (7, 5.0), (2.0, 5.0), (4.5, 4.6), (4.5, 4.2), (4.5, 3.8), (4.5, 3.4), (4.5, 2.8), (8, 2.8)); // BPT: array[-2..6] of array [0..1] of real= ((0, 5.0), (7, 5.0), (2.0, 5.0), (4.5, 4.6), (4.5, 4.2), (4.5, 3.8), (4.5, 3.4), (4.5, 2.8), (8, 2.8));
static double BPT[ /*?*//*-2..6*/ (6) - (-2) + 1][2] = { (0 , 5.0) , (7 , 5.0) , (2.0 , 5.0) , (4.5 , 4.6) , (4.5 , 4.2) , (4.5 , 3.8) , (4.5 , 3.4) , (4.5 , 2.8) , (8 , 2.8) }; static double BPT[9][2] = { {0 , 5.0} , {7 , 5.0} , {2.0 , 5.0} , {4.5 , 4.6} , {4.5 , 4.2} , {4.5 , 3.8} , {4.5 , 3.4} , {4.5 , 2.8} , {8 , 2.8} };
static double BPT_394[ /*?*//*-1..5*/ (5) - (-1) + 1][2] = { (13 , 10.0) , (5 , 5.0) , (0 , -1) , (5 , -1) , (5 , 0.0) , (5 , 0.0) , (18 , 0.0) }; static double BPT_394[7][2] = { {13 , 10.0} , {5 , 5.0} , {0 , -1} , {5 , -1} , {5 , 0.0} , {5 , 0.0} , {18 , 0.0} };
//double *BPT = zero_based_BPT[2]; //tablica pozycji hamulca dla zakresu -2..6 //double *BPT = zero_based_BPT[2]; //tablica pozycji hamulca dla zakresu -2..6
//double *BPT_394 = zero_based_BPT_394[1]; //tablica pozycji hamulca dla zakresu -1..5 //double *BPT_394 = zero_based_BPT_394[1]; //tablica pozycji hamulca dla zakresu -1..5
// BPT: array[-2..6] of array [0..1] of real= ((0, 5.0), (12, 5.4), (9, 5.0), (9, 4.6), (9, 4.2), (9, 3.8), (9, 3.4), (9, 2.8), (34, 2.8)); // BPT: array[-2..6] of array [0..1] of real= ((0, 5.0), (12, 5.4), (9, 5.0), (9, 4.6), (9, 4.2), (9, 3.8), (9, 3.4), (9, 2.8), (34, 2.8));

View File

@@ -103,10 +103,11 @@ bool iSetFlag(int &Flag, int Value)
Flag |= Value; Flag |= Value;
return true; // true, gdy by³o wczeœniej 0 i zosta³o ustawione return true; // true, gdy by³o wczeœniej 0 i zosta³o ustawione
} }
if (Value < 0) if (Value < 0)
if ((Flag & abs(Value)) == abs(Value)) Value = abs(Value);
if ((Flag & Value) == Value)
{ {
Flag |= Value; // Value jest ujemne, czyli zerowanie flagi Flag &= ~Value; // Value jest ujemne, czyli zerowanie flagi
return true; // true, gdy by³o wczeœniej 1 i zosta³o wyzerowane return true; // true, gdy by³o wczeœniej 1 i zosta³o wyzerowane
} }
return false; return false;