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

reviewed and fixed bitwise operations in brake classes

This commit is contained in:
tmj-fstate
2017-01-26 18:51:14 +01:00
parent c3fab994ae
commit c6ed00e2ab

View File

@@ -378,7 +378,7 @@ bool TBrake::SetBDF(int nBDF)
void TBrake::Releaser(int state) void TBrake::Releaser(int state)
{ {
BrakeStatus = (BrakeStatus & 247) | ( state * b_rls ); BrakeStatus = (BrakeStatus & ~b_rls) | ( state * b_rls );
} }
void TBrake::SetEPS(double nEPS) void TBrake::SetEPS(double nEPS)
@@ -387,7 +387,7 @@ void TBrake::SetEPS(double nEPS)
void TBrake::ASB(int state) void TBrake::ASB(int state)
{ // 255-b_asb(32) { // 255-b_asb(32)
BrakeStatus = (BrakeStatus & 223) | ( state * b_asb ); BrakeStatus = (BrakeStatus & ~b_asb) | ( state * b_asb );
} }
int TBrake::GetStatus() int TBrake::GetStatus()
@@ -441,17 +441,17 @@ double TWest::GetPF(double PP, double dt, double Vel)
CVP = BrakeCyl->P(); CVP = BrakeCyl->P();
BCP = BrakeCyl->P(); BCP = BrakeCyl->P();
if ((BrakeStatus & 1) == 1) if ((BrakeStatus & b_hld) == b_hld)
if ((VVP + 0.03 < BVP)) if ((VVP + 0.03 < BVP))
BrakeStatus |= 2; BrakeStatus |= b_on;
else if ((VVP > BVP + 0.1)) else if ((VVP > BVP + 0.1))
BrakeStatus &= 252; BrakeStatus &= ~(b_on | b_hld);
else if ((VVP > BVP)) else if ((VVP > BVP))
BrakeStatus &= 253; BrakeStatus &= ~b_on;
else else
; ;
else if ((VVP + 0.25 < BVP)) else if ((VVP + 0.25 < BVP))
BrakeStatus |= 3; BrakeStatus |= (b_on | b_hld);
if (((BrakeStatus & b_hld) == b_off) && (!DCV)) if (((BrakeStatus & b_hld) == b_off) && (!DCV))
dv = PF(0, CVP, 0.0068 * SizeBC) * dt; dv = PF(0, CVP, 0.0068 * SizeBC) * dt;
@@ -562,17 +562,13 @@ void TWest::SetLP(double TM, double LM, double TBP)
//---OERLIKON EST4--- //---OERLIKON EST4---
void TESt::CheckReleaser(double dt) void TESt::CheckReleaser(double dt)
{ {
double VVP; double VVP = std::min(ValveRes->P(), BrakeRes->P() + 0.05);
double BVP; double CVP = CntrlRes->P() - 0.0;
double CVP;
VVP = Min0R(ValveRes->P(), BrakeRes->P() + 0.05);
CVP = CntrlRes->P() - 0.0;
// odluzniacz // odluzniacz
if ((BrakeStatus & b_rls) == b_rls) if ((BrakeStatus & b_rls) == b_rls)
if ((CVP - VVP < 0)) if ((CVP - VVP < 0))
BrakeStatus &= 247; BrakeStatus &= ~b_rls;
else else
{ {
CntrlRes->Flow(+PF(CVP, 0, 0.1) * dt); CntrlRes->Flow(+PF(CVP, 0, 0.1) * dt);
@@ -592,33 +588,33 @@ void TESt::CheckState(double BCP, double &dV1)
CVP = CntrlRes->P() - 0.0; CVP = CntrlRes->P() - 0.0;
// sprawdzanie stanu // sprawdzanie stanu
if (((BrakeStatus & 1) == 1) && (BCP > 0.25)) if (((BrakeStatus & b_hld) == b_hld) && (BCP > 0.25))
if ((VVP + 0.003 + BCP / BVM < CVP)) if ((VVP + 0.003 + BCP / BVM < CVP))
BrakeStatus |= 2; // hamowanie stopniowe BrakeStatus |= b_on; // hamowanie stopniowe
else if ((VVP - 0.003 + (BCP - 0.1) / BVM > CVP)) else if ((VVP - 0.003 + (BCP - 0.1) / BVM > CVP))
BrakeStatus &= 252; // luzowanie BrakeStatus &= ~( b_on | b_hld ); // luzowanie
else if ((VVP + BCP / BVM > CVP)) else if ((VVP + BCP / BVM > CVP))
BrakeStatus &= 253; // zatrzymanie napelaniania BrakeStatus &= ~b_on; // zatrzymanie napelaniania
else else
; ;
else if ((VVP + 0.10 < CVP) && (BCP < 0.25)) // poczatek hamowania else if ((VVP + 0.10 < CVP) && (BCP < 0.25)) // poczatek hamowania
{ {
if ((BrakeStatus & 1) == 0) if ((BrakeStatus & b_hld) == b_off)
{ {
ValveRes->CreatePress(0.02 * VVP); ValveRes->CreatePress(0.02 * VVP);
SoundFlag |= sf_Acc; SoundFlag |= sf_Acc;
ValveRes->Act(); ValveRes->Act();
} }
BrakeStatus |= 3; BrakeStatus |= (b_on | b_hld);
// ValveRes.CreatePress(0); // ValveRes.CreatePress(0);
// dV1:=1; // dV1:=1;
} }
else if ((VVP + (BCP - 0.1) / BVM < CVP) && ((CVP - VVP) * BVM > 0.25) && else if ((VVP + (BCP - 0.1) / BVM < CVP) && ((CVP - VVP) * BVM > 0.25) &&
(BCP > 0.25)) // zatrzymanie luzowanie (BCP > 0.25)) // zatrzymanie luzowanie
BrakeStatus |= 1; BrakeStatus |= b_hld;
if ((BrakeStatus & 1) == 0) if ((BrakeStatus & b_hld) == b_off)
SoundFlag |= sf_CylU; SoundFlag |= sf_CylU;
} }
@@ -743,7 +739,7 @@ void TESt::Init(double PP, double HPP, double LPP, double BP, int BDF)
BrakeRes->CreatePress(PP); BrakeRes->CreatePress(PP);
CntrlRes->CreateCap(15); CntrlRes->CreateCap(15);
CntrlRes->CreatePress(HPP); CntrlRes->CreatePress(HPP);
BrakeStatus = 0; BrakeStatus = b_off;
BVM = 1.0 / (HPP - LPP) * MaxBP; BVM = 1.0 / (HPP - LPP) * MaxBP;
@@ -796,13 +792,13 @@ double TEStEP2::GetPF(double PP, double dt, double Vel)
CheckReleaser(dt); CheckReleaser(dt);
// sprawdzanie stanu // sprawdzanie stanu
if (((BrakeStatus & 1) == 1) && (BCP > 0.25)) if (((BrakeStatus & b_hld) == b_hld) && (BCP > 0.25))
if ((VVP + 0.003 + BCP / BVM < CVP - 0.12)) if ((VVP + 0.003 + BCP / BVM < CVP - 0.12))
BrakeStatus |= 2; // hamowanie stopniowe; BrakeStatus |= b_on; // hamowanie stopniowe;
else if ((VVP - 0.003 + BCP / BVM > CVP - 0.12)) else if ((VVP - 0.003 + BCP / BVM > CVP - 0.12))
BrakeStatus &= 252; // luzowanie; BrakeStatus &= ~(b_on | b_hld); // luzowanie;
else if ((VVP + BCP / BVM > CVP - 0.12)) else if ((VVP + BCP / BVM > CVP - 0.12))
BrakeStatus &= 253; // zatrzymanie napelaniania; BrakeStatus &= ~b_on; // zatrzymanie napelaniania;
else else
; ;
else if ((VVP + 0.10 < CVP - 0.12) && (BCP < 0.25)) // poczatek hamowania else if ((VVP + 0.10 < CVP - 0.12) && (BCP < 0.25)) // poczatek hamowania
@@ -813,13 +809,13 @@ double TEStEP2::GetPF(double PP, double dt, double Vel)
// // SoundFlag:=SoundFlag or sf_Acc; // // SoundFlag:=SoundFlag or sf_Acc;
// // ValveRes.Act; // // ValveRes.Act;
//} //}
BrakeStatus |= 3; BrakeStatus |= (b_on | b_hld);
} }
else if ((VVP + BCP / BVM < CVP - 0.12) && (BCP > 0.25)) // zatrzymanie luzowanie else if ((VVP + BCP / BVM < CVP - 0.12) && (BCP > 0.25)) // zatrzymanie luzowanie
BrakeStatus |= 1; BrakeStatus |= b_hld;
// przeplyw ZS <-> PG // przeplyw ZS <-> PG
if ((BVP < CVP - 0.2) || (BrakeStatus > 0) || (BCP > 0.25)) if ((BVP < CVP - 0.2) || (BrakeStatus != b_off) || (BCP > 0.25))
temp = 0; temp = 0;
else if ((VVP > CVP + 0.4)) else if ((VVP > CVP + 0.4))
temp = 0.1; temp = 0.1;
@@ -1113,7 +1109,7 @@ double TESt3AL2::GetPF(double PP, double dt, double Vel)
dV1 = dV1 - 0.96 * dv; dV1 = dV1 - 0.96 * dv;
// luzowanie KI // luzowanie KI
if ((BrakeStatus && b_hld) == b_off) if ((BrakeStatus & b_hld) == b_off)
dv = PF(0, BCP, 0.00017 * (1.37 - int(BrakeDelayFlag == bdelay_G))) * dt; dv = PF(0, BCP, 0.00017 * (1.37 - int(BrakeDelayFlag == bdelay_G))) * dt;
else else
dv = 0; dv = 0;
@@ -1213,7 +1209,7 @@ double TLSt::GetPF(double PP, double dt, double Vel)
// sprawdzanie stanu // sprawdzanie stanu
if ((BrakeStatus & b_rls) == b_rls) if ((BrakeStatus & b_rls) == b_rls)
if ((CVP < 0)) if ((CVP < 0))
BrakeStatus &= 247; BrakeStatus &= ~b_rls;
else else
{ // 008 { // 008
dv = PF1(CVP, BCP, 0.024) * dt; dv = PF1(CVP, BCP, 0.024) * dt;
@@ -1363,7 +1359,6 @@ double TEStED::GetPF(double PP, double dt, double Vel)
double CVP; double CVP;
double MPP; double MPP;
double nastG; double nastG;
int i;
BVP = BrakeRes->P(); BVP = BrakeRes->P();
VVP = ValveRes->P(); VVP = ValveRes->P();
@@ -1380,13 +1375,13 @@ double TEStED::GetPF(double PP, double dt, double Vel)
// sprawdzanie stanu // sprawdzanie stanu
if ((VVP + 0.002 + BCP / BVM < CVP - 0.05) && (Przys_blok)) if ((VVP + 0.002 + BCP / BVM < CVP - 0.05) && (Przys_blok))
BrakeStatus |= 3; // hamowanie stopniowe; BrakeStatus |= (b_on | b_hld); // hamowanie stopniowe;
else if ((VVP - 0.002 + (BCP - 0.1) / BVM > CVP - 0.05)) else if ((VVP - 0.002 + (BCP - 0.1) / BVM > CVP - 0.05))
BrakeStatus &= 252; // luzowanie; BrakeStatus &= ~(b_on | b_hld); // luzowanie;
else if ((VVP + BCP / BVM > CVP - 0.05)) else if ((VVP + BCP / BVM > CVP - 0.05))
BrakeStatus &= 253; // zatrzymanie napelaniania; BrakeStatus &= ~b_on; // zatrzymanie napelaniania;
else if ((VVP + (BCP - 0.1) / BVM < CVP - 0.05) && (BCP > 0.25)) // zatrzymanie luzowania else if ((VVP + (BCP - 0.1) / BVM < CVP - 0.05) && (BCP > 0.25)) // zatrzymanie luzowania
BrakeStatus |= 1; BrakeStatus |= b_hld;
if ((VVP + 0.10 < CVP) && (BCP < 0.25)) // poczatek hamowania if ((VVP + 0.10 < CVP) && (BCP < 0.25)) // poczatek hamowania
if ((!Przys_blok)) if ((!Przys_blok))
@@ -1513,7 +1508,7 @@ void TEStED::Init(double PP, double HPP, double LPP, double BP, int BDF)
// CntrlRes.CreateCap(15); // CntrlRes.CreateCap(15);
// CntrlRes.CreatePress(1*HPP); // CntrlRes.CreatePress(1*HPP);
BrakeStatus = int(BP > 1); BrakeStatus = (BP > 1.0) ? 1 : 0;
Miedzypoj->CreateCap(5); Miedzypoj->CreateCap(5);
Miedzypoj->CreatePress(PP); Miedzypoj->CreatePress(PP);
@@ -1579,25 +1574,25 @@ void TCV1::CheckState(double BCP, double &dV1)
// odluzniacz // odluzniacz
if (((BrakeStatus & b_rls) == b_rls) && (CVP - VVP < 0)) if (((BrakeStatus & b_rls) == b_rls) && (CVP - VVP < 0))
BrakeStatus &= 247; BrakeStatus &= ~b_rls;
// sprawdzanie stanu // sprawdzanie stanu
if ((BrakeStatus & b_hld) == b_hld) if ((BrakeStatus & b_hld) == b_hld)
if ((VVP + 0.003 + BCP / BVM < CVP)) if ((VVP + 0.003 + BCP / BVM < CVP))
BrakeStatus |= 2; // hamowanie stopniowe; BrakeStatus |= b_on; // hamowanie stopniowe;
else if ((VVP - 0.003 + BCP * 1.0 / BVM > CVP)) else if ((VVP - 0.003 + BCP * 1.0 / BVM > CVP))
BrakeStatus &= 252; // luzowanie; BrakeStatus &= ~( b_on | b_hld ); // luzowanie;
else if ((VVP + BCP * 1.0 / BVM > CVP)) else if ((VVP + BCP * 1.0 / BVM > CVP))
BrakeStatus &= 253; // zatrzymanie napelaniania; BrakeStatus &= ~b_on; // zatrzymanie napelaniania;
else else
; ;
else if ((VVP + 0.10 < CVP) && (BCP < 0.1)) // poczatek hamowania else if ((VVP + 0.10 < CVP) && (BCP < 0.1)) // poczatek hamowania
{ {
BrakeStatus |= 3; BrakeStatus |= ( b_on | b_hld );
dV1 = 1.25; dV1 = 1.25;
} }
else if ((VVP + BCP / BVM < CVP) && (BCP > 0.25)) // zatrzymanie luzowanie else if ((VVP + BCP / BVM < CVP) && (BCP > 0.25)) // zatrzymanie luzowanie
BrakeStatus |= 1; BrakeStatus |= b_hld;
} }
double TCV1::CVs(double BP) double TCV1::CVs(double BP)
@@ -1703,7 +1698,7 @@ void TCV1::Init(double PP, double HPP, double LPP, double BP, int BDF)
BrakeRes->CreatePress(PP); BrakeRes->CreatePress(PP);
CntrlRes->CreateCap(15); CntrlRes->CreateCap(15);
CntrlRes->CreatePress(HPP); CntrlRes->CreatePress(HPP);
BrakeStatus = 0; BrakeStatus = b_off;
BVM = 1.0 / (HPP - LPP) * MaxBP; BVM = 1.0 / (HPP - LPP) * MaxBP;
@@ -1837,7 +1832,7 @@ void TKE::CheckReleaser(double dt)
// odluzniacz // odluzniacz
if ( true == ((BrakeStatus & b_rls) == b_rls)) if ( true == ((BrakeStatus & b_rls) == b_rls))
if ((CVP - VVP < 0)) if ((CVP - VVP < 0))
BrakeStatus &= 247; BrakeStatus &= ~b_rls;
else else
CntrlRes->Flow(+PF(CVP, 0, 0.1) * dt); CntrlRes->Flow(+PF(CVP, 0, 0.1) * dt);
} }
@@ -1853,22 +1848,22 @@ void TKE::CheckState(double BCP, double &dV1)
CVP = CntrlRes->P(); CVP = CntrlRes->P();
// sprawdzanie stanu // sprawdzanie stanu
if ((BrakeStatus && 1) == 1) if ((BrakeStatus & b_hld) == b_hld)
if ((VVP + 0.003 + BCP / BVM < CVP)) if ((VVP + 0.003 + BCP / BVM < CVP))
BrakeStatus |= 2; // hamowanie stopniowe; BrakeStatus |= b_on; // hamowanie stopniowe;
else if ((VVP - 0.003 + BCP / BVM > CVP)) else if ((VVP - 0.003 + BCP / BVM > CVP))
BrakeStatus &= 252; // luzowanie; BrakeStatus &= ~( b_on | b_hld ); // luzowanie;
else if ((VVP + BCP / BVM > CVP)) else if ((VVP + BCP / BVM > CVP))
BrakeStatus &= 253; // zatrzymanie napelaniania; BrakeStatus &= ~b_on; // zatrzymanie napelaniania;
else else
; ;
else if ((VVP + 0.10 < CVP) && (BCP < 0.1)) // poczatek hamowania else if ((VVP + 0.10 < CVP) && (BCP < 0.1)) // poczatek hamowania
{ {
BrakeStatus |= 3; BrakeStatus |= (b_on | b_hld);
ValveRes->CreatePress(0.8 * VVP); // przyspieszacz ValveRes->CreatePress(0.8 * VVP); // przyspieszacz
} }
else if ((VVP + BCP / BVM < CVP) && ((CVP - VVP) * BVM > 0.25)) // zatrzymanie luzowanie else if ((VVP + BCP / BVM < CVP) && ((CVP - VVP) * BVM > 0.25)) // zatrzymanie luzowanie
BrakeStatus |= 1; BrakeStatus |= b_hld;
} }
double TKE::CVs(double BP) double TKE::CVs(double BP)
@@ -2038,7 +2033,7 @@ void TKE::Init(double PP, double HPP, double LPP, double BP, int BDF)
ImplsRes->CreateCap(1); ImplsRes->CreateCap(1);
ImplsRes->CreatePress(BP); ImplsRes->CreatePress(BP);
BrakeStatus = 0; BrakeStatus = b_off;
BVM = 1.0 / (HPP - LPP) * MaxBP; BVM = 1.0 / (HPP - LPP) * MaxBP;
@@ -2651,7 +2646,6 @@ double TSt113::GetPF(double i_bcp, double PP, double HP, double dt, double ep)
static double const NomPress = 5.0; static double const NomPress = 5.0;
double LimPP; double LimPP;
double dpPipe;
double dpMainValve; double dpMainValve;
double ActFlowSpeed; double ActFlowSpeed;
int BCP; int BCP;
@@ -2710,7 +2704,6 @@ void TSt113::Init(double Press)
double Ttest::GetPF(double i_bcp, double PP, double HP, double dt, double ep) double Ttest::GetPF(double i_bcp, double PP, double HP, double dt, double ep)
{ {
double result;
static int const LBDelay = 100; static int const LBDelay = 100;
double LimPP; double LimPP;
@@ -2822,7 +2815,6 @@ double TFVel6::GetPF(double i_bcp, double PP, double HP, double dt, double ep)
static int const LBDelay = 100; static int const LBDelay = 100;
double LimPP; double LimPP;
double dpPipe;
double dpMainValve; double dpMainValve;
double ActFlowSpeed; double ActFlowSpeed;