mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-22 23:19:19 +02:00
Poprawione pliki. Kompiluje się, ale nie buduje. Problem z linkerem.
This commit is contained in:
21
EU07.bpr
21
EU07.bpr
@@ -4,17 +4,16 @@
|
|||||||
<MACROS>
|
<MACROS>
|
||||||
<VERSION value="BCB.05.03"/>
|
<VERSION value="BCB.05.03"/>
|
||||||
<PROJECT value="E:\Gry\MaSzyna_15_04\EU07.exe"/>
|
<PROJECT value="E:\Gry\MaSzyna_15_04\EU07.exe"/>
|
||||||
<OBJFILES value="QueryParserComp.obj McZapkie\_mover.obj McZapkie\hamulce.obj EU07.obj
|
<OBJFILES value="QueryParserComp.obj McZapkie\_mover.obj EU07.obj dumb3d.obj Camera.obj
|
||||||
dumb3d.obj Camera.obj Texture.obj World.obj Model3d.obj MdlMngr.obj
|
Texture.obj World.obj Model3d.obj MdlMngr.obj Train.obj wavread.obj
|
||||||
Train.obj wavread.obj Timer.obj Event.obj MemCell.obj Logs.obj Spring.obj
|
Timer.obj Event.obj MemCell.obj Logs.obj Spring.obj Button.obj Globals.obj
|
||||||
Button.obj Globals.obj Gauge.obj AnimModel.obj Ground.obj TrkFoll.obj
|
Gauge.obj AnimModel.obj Ground.obj TrkFoll.obj Segment.obj Sound.obj
|
||||||
Segment.obj Sound.obj AdvSound.obj Track.obj DynObj.obj RealSound.obj
|
AdvSound.obj Track.obj DynObj.obj RealSound.obj EvLaunch.obj FadeSound.obj
|
||||||
EvLaunch.obj FadeSound.obj Traction.obj TractionPower.obj parser.obj
|
Traction.obj TractionPower.obj parser.obj sky.obj AirCoupler.obj
|
||||||
sky.obj AirCoupler.obj opengl\glew.obj ResourceManager.obj VBO.obj
|
opengl\glew.obj ResourceManager.obj VBO.obj mtable.obj TextureDDS.obj
|
||||||
mtable.obj TextureDDS.obj opengl\ARB_Multisample.obj Float3d.obj
|
opengl\ARB_Multisample.obj Float3d.obj Classes.obj Driver.obj Names.obj
|
||||||
Classes.obj Driver.obj Names.obj Console.obj Mover.obj
|
Console.obj Mover.obj McZapkie\hamulce.obj McZapkie\Oerlikon_ESt.obj
|
||||||
McZapkie\Oerlikon_ESt.obj Console\PoKeys55.obj Forth.obj Console\LPT.obj
|
Console\PoKeys55.obj Forth.obj Console\LPT.obj PyInt.obj"/>
|
||||||
PyInt.obj"/>
|
|
||||||
<RESFILES value="EU07.res"/>
|
<RESFILES value="EU07.res"/>
|
||||||
<IDLFILES value=""/>
|
<IDLFILES value=""/>
|
||||||
<IDLGENFILES value=""/>
|
<IDLGENFILES value=""/>
|
||||||
|
|||||||
2
EU07.cpp
2
EU07.cpp
@@ -81,7 +81,7 @@ USEUNIT("Names.cpp");
|
|||||||
USEUNIT("Console.cpp");
|
USEUNIT("Console.cpp");
|
||||||
USEUNIT("Mover.cpp");
|
USEUNIT("Mover.cpp");
|
||||||
USEUNIT("McZapkie\_mover.pas");
|
USEUNIT("McZapkie\_mover.pas");
|
||||||
USEUNIT("McZapkie\hamulce.pas");
|
USEUNIT("McZapkie\hamulce.cpp");
|
||||||
USEUNIT("McZapkie\Oerlikon_ESt.cpp");
|
USEUNIT("McZapkie\Oerlikon_ESt.cpp");
|
||||||
USEUNIT("Console\PoKeys55.cpp");
|
USEUNIT("Console\PoKeys55.cpp");
|
||||||
USEUNIT("Forth.cpp");
|
USEUNIT("Forth.cpp");
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
// All rights reserved
|
// All rights reserved
|
||||||
|
|
||||||
// (DO NOT EDIT: machine generated header) '_mover.pas' rev: 5.00
|
// (DO NOT EDIT: machine generated header) '_mover.pas' rev: 5.00
|
||||||
//Ra: eee... tam, sam siê generuje b³êdnie i trzeba rêcznie poprawiaæ!
|
//Ra: eee... tam, sam si<EFBFBD> generuje b<EFBFBD><EFBFBD>dnie i trzeba r<EFBFBD>cznie poprawia<EFBFBD>!
|
||||||
|
|
||||||
#ifndef _moverHPP
|
#ifndef _moverHPP
|
||||||
#define _moverHPP
|
#define _moverHPP
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
#pragma option push -w-
|
#pragma option push -w-
|
||||||
#pragma option push -Vx
|
#pragma option push -Vx
|
||||||
#include <Oerlikon_ESt.h> // Pascal unit
|
#include <Oerlikon_ESt.h> // Pascal unit
|
||||||
#include <hamulce.hpp> // Pascal unit
|
#include <hamulce.h> // Pascal unit
|
||||||
#include <SysUtils.hpp> // Pascal unit
|
#include <SysUtils.hpp> // Pascal unit
|
||||||
#include <mctools.hpp> // Pascal unit
|
#include <mctools.hpp> // Pascal unit
|
||||||
#include <SysInit.hpp> // Pascal unit
|
#include <SysInit.hpp> // Pascal unit
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ double d2A(double d)
|
|||||||
|
|
||||||
// ------ RURA ------
|
// ------ RURA ------
|
||||||
|
|
||||||
double __fastcall TRura::P(void)
|
double TRura::P(void)
|
||||||
{
|
{
|
||||||
return Next->P();
|
return Next->P();
|
||||||
}
|
}
|
||||||
@@ -209,7 +209,7 @@ void TPrzekED::Update(double dt)
|
|||||||
|
|
||||||
// ------ OERLIKON EST NA BOGATO ------
|
// ------ OERLIKON EST NA BOGATO ------
|
||||||
|
|
||||||
double __fastcall TNESt3::GetPF(double PP, double dt, double Vel) // przeplyw miedzy komora wstepna i PG
|
double TNESt3::GetPF(double PP, double dt, double Vel) // przeplyw miedzy komora wstepna i PG
|
||||||
{
|
{
|
||||||
double dV;
|
double dV;
|
||||||
double dV1;
|
double dV1;
|
||||||
@@ -322,7 +322,7 @@ void TNESt3::EStParams(double i_crc) // parametry charakterystyczne dla ESt
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void __fastcall TNESt3::Init(double PP, double HPP, double LPP, double BP, unsigned char BDF)
|
void TNESt3::Init(double PP, double HPP, double LPP, double BP, unsigned char BDF)
|
||||||
{
|
{
|
||||||
ValveRes->CreatePress(1 * PP);
|
ValveRes->CreatePress(1 * PP);
|
||||||
BrakeCyl->CreatePress(1 * BP);
|
BrakeCyl->CreatePress(1 * BP);
|
||||||
@@ -347,7 +347,7 @@ void __fastcall TNESt3::Init(double PP, double HPP, double LPP, double BP, unsig
|
|||||||
RapidStaly = true;
|
RapidStaly = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
double __fastcall TNESt3::GetCRP()
|
double TNESt3::GetCRP()
|
||||||
{
|
{
|
||||||
return CntrlRes->P();
|
return CntrlRes->P();
|
||||||
// return Przekladniki[1].P;
|
// return Przekladniki[1].P;
|
||||||
@@ -462,7 +462,7 @@ void TNESt3::PLC(double mass)
|
|||||||
1);
|
1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void __fastcall TNESt3::ForceEmptiness()
|
void TNESt3::ForceEmptiness()
|
||||||
{
|
{
|
||||||
ValveRes->CreatePress(0);
|
ValveRes->CreatePress(0);
|
||||||
BrakeRes->CreatePress(0);
|
BrakeRes->CreatePress(0);
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ http://mozilla.org/MPL/2.0/.
|
|||||||
Copyright (C) 2007-2014 Maciej Cierniak
|
Copyright (C) 2007-2014 Maciej Cierniak
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <hamulce.hpp> // Pascal unit
|
#include "hamulce.h" // Pascal unit
|
||||||
#include <friction.hpp> // Pascal unit
|
#include <friction.hpp> // Pascal unit
|
||||||
#include <SysUtils.hpp> // Pascal unit
|
#include <SysUtils.hpp> // Pascal unit
|
||||||
#include <mctools.hpp> // Pascal unit
|
#include <mctools.hpp> // Pascal unit
|
||||||
@@ -93,7 +93,7 @@ class TRura : public TPrzekladnik // nieprzekladnik, rura laczaca
|
|||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
public:
|
public:
|
||||||
virtual __fastcall double P(void) /*override*/;
|
virtual double P(void) /*override*/;
|
||||||
virtual void Update(double dt) /*override*/;
|
virtual void Update(double dt) /*override*/;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -190,11 +190,11 @@ class TNESt3 : public TBrake
|
|||||||
double LBP; // cisnienie hamulca pomocniczego
|
double LBP; // cisnienie hamulca pomocniczego
|
||||||
|
|
||||||
public:
|
public:
|
||||||
virtual double __fastcall GetPF(double PP, double dt,
|
virtual double GetPF(double PP, double dt,
|
||||||
double Vel) /*override*/; // przeplyw miedzy komora wstepna i PG
|
double Vel) /*override*/; // przeplyw miedzy komora wstepna i PG
|
||||||
void EStParams(double i_crc); // parametry charakterystyczne dla ESt
|
void EStParams(double i_crc); // parametry charakterystyczne dla ESt
|
||||||
virtual void __fastcall Init(double PP, double HPP, double LPP, double BP, unsigned char BDF) /*override*/;
|
virtual void Init(double PP, double HPP, double LPP, double BP, unsigned char BDF) /*override*/;
|
||||||
virtual double __fastcall GetCRP() /*override*/;
|
virtual double GetCRP() /*override*/;
|
||||||
void CheckState(double BCP, double &dV1); // glowny przyrzad rozrzadczy
|
void CheckState(double BCP, double &dV1); // glowny przyrzad rozrzadczy
|
||||||
void CheckReleaser(double dt); // odluzniacz
|
void CheckReleaser(double dt); // odluzniacz
|
||||||
double CVs(double BP); // napelniacz sterujacego
|
double CVs(double BP); // napelniacz sterujacego
|
||||||
@@ -202,7 +202,7 @@ class TNESt3 : public TBrake
|
|||||||
void SetSize(int size, std::string params); // ustawianie dysz (rozmiaru ZR), przekladniki
|
void SetSize(int size, std::string params); // ustawianie dysz (rozmiaru ZR), przekladniki
|
||||||
void PLC(double mass); // wspolczynnik cisnienia przystawki wazacej
|
void PLC(double mass); // wspolczynnik cisnienia przystawki wazacej
|
||||||
void SetLP(double TM, double LM, double TBP); // parametry przystawki wazacej
|
void SetLP(double TM, double LM, double TBP); // parametry przystawki wazacej
|
||||||
virtual void __fastcall ForceEmptiness() /*override*/; // wymuszenie bycia pustym
|
virtual void ForceEmptiness() /*override*/; // wymuszenie bycia pustym
|
||||||
void SetLBP(double P); // cisnienie z hamulca pomocniczego
|
void SetLBP(double P); // cisnienie z hamulca pomocniczego
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
#pragma delphiheader begin
|
#pragma delphiheader begin
|
||||||
#pragma option push -w-
|
#pragma option push -w-
|
||||||
#pragma option push -Vx
|
#pragma option push -Vx
|
||||||
#include <hamulce.hpp> // Pascal unit
|
#include <hamulce.h> // Pascal unit
|
||||||
#include <friction.hpp> // Pascal unit
|
#include <friction.hpp> // Pascal unit
|
||||||
#include <SysUtils.hpp> // Pascal unit
|
#include <SysUtils.hpp> // Pascal unit
|
||||||
#include <mctools.hpp> // Pascal unit
|
#include <mctools.hpp> // Pascal unit
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
#pragma option push -w-
|
#pragma option push -w-
|
||||||
#pragma option push -Vx
|
#pragma option push -Vx
|
||||||
#include <Oerlikon_ESt.h> // Pascal unit
|
#include <Oerlikon_ESt.h> // Pascal unit
|
||||||
#include <hamulce.hpp> // Pascal unit
|
#include <hamulce.h> // Pascal unit
|
||||||
#include <SysUtils.hpp> // Pascal unit
|
#include <SysUtils.hpp> // Pascal unit
|
||||||
#include <mctools.hpp> // Pascal unit
|
#include <mctools.hpp> // Pascal unit
|
||||||
#include <SysInit.hpp> // Pascal unit
|
#include <SysInit.hpp> // Pascal unit
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ Copyright (C) 2007-2014 Maciej Cierniak
|
|||||||
|
|
||||||
#include "hamulce.h"
|
#include "hamulce.h"
|
||||||
#include "../Mover.h"
|
#include "../Mover.h"
|
||||||
#include <math.h>
|
|
||||||
#include <typeinfo>
|
#include <typeinfo>
|
||||||
#include <cmath>
|
#include <cmath>
|
||||||
|
|
||||||
@@ -46,7 +45,7 @@ double PF(double P1, double P2, double S, double DP = 0.25)
|
|||||||
double PH = Max0R(P1, P2) + 1; // wyzsze cisnienie absolutne
|
double PH = Max0R(P1, P2) + 1; // wyzsze cisnienie absolutne
|
||||||
double PL = P1 + P2 - PH + 2; // nizsze cisnienie absolutne
|
double PL = P1 + P2 - PH + 2; // nizsze cisnienie absolutne
|
||||||
double sg = PL * 1.0 / PH; // bezwymiarowy stosunek cisnien
|
double sg = PL * 1.0 / PH; // bezwymiarowy stosunek cisnien
|
||||||
double FM = PH * 197 * S * sign(P2 - P1); // najwyzszy mozliwy przeplyw, wraz z kierunkiem
|
double FM = PH * 197 * S * Sign(P2 - P1); // najwyzszy mozliwy przeplyw, wraz z kierunkiem
|
||||||
if ((sg > 0.5)) // jesli ponizej stosunku krytycznego
|
if ((sg > 0.5)) // jesli ponizej stosunku krytycznego
|
||||||
if ((PH - PL) < DP) // niewielka roznica cisnien
|
if ((PH - PL) < DP) // niewielka roznica cisnien
|
||||||
return (1 - sg) * 1.0 / DPL * FM * 2 * sqrt((DP) * (PH - DP));
|
return (1 - sg) * 1.0 / DPL * FM * 2 * sqrt((DP) * (PH - DP));
|
||||||
@@ -64,7 +63,7 @@ double PF1(double P1, double P2, double S)
|
|||||||
double PH = Max0R(P1, P2) + 1; // wyzsze cisnienie absolutne
|
double PH = Max0R(P1, P2) + 1; // wyzsze cisnienie absolutne
|
||||||
double PL = P1 + P2 - PH + 2; // nizsze cisnienie absolutne
|
double PL = P1 + P2 - PH + 2; // nizsze cisnienie absolutne
|
||||||
double sg = PL * 1.0 / PH; // bezwymiarowy stosunek cisnien
|
double sg = PL * 1.0 / PH; // bezwymiarowy stosunek cisnien
|
||||||
double FM = PH * 197 * S * sign(P2 - P1); // najwyzszy mozliwy przeplyw, wraz z kierunkiem
|
double FM = PH * 197 * S * Sign(P2 - P1); // najwyzszy mozliwy przeplyw, wraz z kierunkiem
|
||||||
if ((sg > 0.5)) // jesli ponizej stosunku krytycznego
|
if ((sg > 0.5)) // jesli ponizej stosunku krytycznego
|
||||||
if ((sg < DPS)) // niewielka roznica cisnien
|
if ((sg < DPS)) // niewielka roznica cisnien
|
||||||
return (1 - sg) * 1.0 / DPS * FM * 2 * sqrt((DPS) * (1 - DPS));
|
return (1 - sg) * 1.0 / DPS * FM * 2 * sqrt((DPS) * (1 - DPS));
|
||||||
@@ -74,6 +73,11 @@ double PF1(double P1, double P2, double S)
|
|||||||
return FM;
|
return FM;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
long lround(double value)
|
||||||
|
{
|
||||||
|
return floorl(value + 0.5);
|
||||||
|
}
|
||||||
|
|
||||||
double PFVa(double PH, double PL, double S, double LIM,
|
double PFVa(double PH, double PL, double S, double LIM,
|
||||||
double DP = 0.1) // zawor napelniajacy z PH do PL, PL do LIM
|
double DP = 0.1) // zawor napelniajacy z PH do PL, PL do LIM
|
||||||
{
|
{
|
||||||
@@ -1841,24 +1845,24 @@ void TKE::CheckState(double BCP, double &dV1)
|
|||||||
// sprawdzanie stanu
|
// sprawdzanie stanu
|
||||||
if ((BrakeStatus && 1) == 1)
|
if ((BrakeStatus && 1) == 1)
|
||||||
if ((VVP + 0.003 + BCP * 1.0 / BVM < CVP))
|
if ((VVP + 0.003 + BCP * 1.0 / BVM < CVP))
|
||||||
BrakeStatus =
|
BrakeStatus = (BrakeStatus || 2); // hamowanie stopniowe;
|
||||||
(BrakeStatus || 2) // hamowanie stopniowe;else if( ( VVP-0.003+BCP*1.0/BVM>CVP ) )
|
else if ((VVP - 0.003 + BCP * 1.0 / BVM > CVP))
|
||||||
BrakeStatus = (BrakeStatus && 252) // luzowanie;else if( ( VVP+BCP*1.0/BVM>CVP ) )
|
BrakeStatus = (BrakeStatus && 252); // luzowanie;
|
||||||
BrakeStatus = (BrakeStatus && 253) // zatrzymanie napelaniania;else
|
else if ((VVP + BCP * 1.0 / BVM > CVP))
|
||||||
|
BrakeStatus = (BrakeStatus && 253); // zatrzymanie napelaniania;
|
||||||
|
else
|
||||||
;
|
;
|
||||||
else if ((VVP + 0.10 < CVP) && (BCP < 0.1)) // poczatek hamowania
|
else if ((VVP + 0.10 < CVP) && (BCP < 0.1)) // poczatek hamowania
|
||||||
{
|
{
|
||||||
BrakeStatus = (BrakeStatus || 3);
|
BrakeStatus = (BrakeStatus || 3);
|
||||||
ValveRes.CreatePress(0.8 * VVP); // przyspieszacz
|
ValveRes->CreatePress(0.8 * VVP); // przyspieszacz
|
||||||
}
|
}
|
||||||
else if ((VVP + BCP * 1.0 / BVM < CVP) &&
|
else if ((VVP + BCP * 1.0 / BVM < CVP) && ((CVP - VVP) * BVM > 0.25)) // zatrzymanie luzowanie
|
||||||
((CVP - VVP) * BVM > 0.25)) // zatrzymanie luzowanie
|
|
||||||
BrakeStatus = (BrakeStatus || 1);
|
BrakeStatus = (BrakeStatus || 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
double TKE::CVs(double BP)
|
double TKE::CVs(double BP)
|
||||||
{
|
{
|
||||||
double result;
|
|
||||||
double VVP;
|
double VVP;
|
||||||
double BVP;
|
double BVP;
|
||||||
double CVP;
|
double CVP;
|
||||||
@@ -1869,17 +1873,15 @@ double TKE::CVs(double BP)
|
|||||||
|
|
||||||
// przeplyw ZS <-> PG
|
// przeplyw ZS <-> PG
|
||||||
if ((BP > 0.2))
|
if ((BP > 0.2))
|
||||||
CVs = 0;
|
return 0;
|
||||||
else if ((VVP > CVP + 0.4))
|
else if ((VVP > CVP + 0.4))
|
||||||
CVs = 0.05;
|
return 0.05;
|
||||||
else
|
else
|
||||||
CVs = 0.23;
|
return 0.23;
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
double TKE::BVs(double BCP)
|
double TKE::BVs(double BCP)
|
||||||
{
|
{
|
||||||
double result;
|
|
||||||
double VVP;
|
double VVP;
|
||||||
double BVP;
|
double BVP;
|
||||||
double CVP;
|
double CVP;
|
||||||
@@ -1890,12 +1892,11 @@ double TKE::BVs(double BCP)
|
|||||||
|
|
||||||
// przeplyw ZP <-> rozdzielacz
|
// przeplyw ZP <-> rozdzielacz
|
||||||
if ((BVP > VVP))
|
if ((BVP > VVP))
|
||||||
BVs = 0;
|
return 0;
|
||||||
else if ((BVP < CVP - 0.3))
|
else if ((BVP < CVP - 0.3))
|
||||||
BVs = 0.6;
|
return 0.6;
|
||||||
else
|
else
|
||||||
BVs = 0.13;
|
return 0.13;
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
double TKE::GetPF(double PP, double dt, double Vel)
|
double TKE::GetPF(double PP, double dt, double Vel)
|
||||||
@@ -2077,32 +2078,32 @@ void TKE::SetLBP(double P)
|
|||||||
|
|
||||||
//---KRANY---
|
//---KRANY---
|
||||||
|
|
||||||
double HANDLE::GetPF(double i_bcp, double PP, double HP, double dt, double ep)
|
double THandle::GetPF(double i_bcp, double PP, double HP, double dt, double ep)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void HANDLE::Init(double Press)
|
void THandle::Init(double Press)
|
||||||
{
|
{
|
||||||
Time = false;
|
Time = false;
|
||||||
TimeEP = false;
|
TimeEP = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void HANDLE::SetReductor(double nAdj)
|
void THandle::SetReductor(double nAdj)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
double HANDLE::GetCP()
|
double THandle::GetCP()
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
double HANDLE::GetSound(Byte i)
|
double THandle::GetSound(Byte i)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
double HANDLE::GetPos(Byte i)
|
double THandle::GetPos(Byte i)
|
||||||
{
|
{
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,6 +43,9 @@ Knorr/West EP -
|
|||||||
|
|
||||||
using namespace Friction;
|
using namespace Friction;
|
||||||
|
|
||||||
|
namespace Hamulce
|
||||||
|
{
|
||||||
|
|
||||||
static int const LocalBrakePosNo = 10; /*ilosc nastaw hamulca recznego lub pomocniczego*/
|
static int const LocalBrakePosNo = 10; /*ilosc nastaw hamulca recznego lub pomocniczego*/
|
||||||
static int const MainBrakeMaxPos = 10; /*max. ilosc nastaw hamulca zasadniczego*/
|
static int const MainBrakeMaxPos = 10; /*max. ilosc nastaw hamulca zasadniczego*/
|
||||||
|
|
||||||
@@ -129,26 +132,26 @@ using namespace Friction;
|
|||||||
//zas dlugosc pojazdow jest podana w metrach
|
//zas dlugosc pojazdow jest podana w metrach
|
||||||
//a predkosc przeplywu w m/s //3.5
|
//a predkosc przeplywu w m/s //3.5
|
||||||
//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 const 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 const 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 const 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 const 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) };
|
||||||
// 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));
|
||||||
// BPT: array[-2..6] of array [0..1] of real= ((0, 0),(0, 0),(0, 0),(0, 0),(0, 0),(0, 0),(0, 0),(0, 0),(0, 0));
|
// BPT: array[-2..6] of array [0..1] of real= ((0, 0),(0, 0),(0, 0),(0, 0),(0, 0),(0, 0),(0, 0),(0, 0),(0, 0));
|
||||||
static int const i_bcpno = 6;
|
static int const i_bcpno = 6;
|
||||||
|
static double const pi = 3.141592653589793;
|
||||||
|
|
||||||
//klasa obejmujaca pojedyncze zbiorniki
|
//klasa obejmujaca pojedyncze zbiorniki
|
||||||
|
|
||||||
|
|
||||||
class TReservoir: public TObject
|
class TReservoir
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
double Cap;
|
double Cap;
|
||||||
double Vol;
|
double Vol;
|
||||||
double dVol;
|
double dVol;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
TReservoir();
|
TReservoir();
|
||||||
void CreateCap(double Capacity);
|
void CreateCap(double Capacity);
|
||||||
void CreatePress(double Press);
|
void CreatePress(double Press);
|
||||||
@@ -157,28 +160,28 @@ public:
|
|||||||
void Flow(double dv);
|
void Flow(double dv);
|
||||||
void Act();
|
void Act();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
typedef TReservoir *PReservoir;
|
typedef TReservoir *PReservoir;
|
||||||
|
|
||||||
|
|
||||||
class TBrakeCyl: public TReservoir
|
class TBrakeCyl : public TReservoir
|
||||||
|
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
double pa()/*override*/;
|
virtual double pa()/*override*/;
|
||||||
double P()/*override*/;
|
virtual double P()/*override*/;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
//klasa obejmujaca uklad hamulca zespolonego pojazdu
|
//klasa obejmujaca uklad hamulca zespolonego pojazdu
|
||||||
|
|
||||||
|
|
||||||
class TBrake: public TObject
|
class TBrake
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
TReservoir *BrakeCyl; //silownik
|
TReservoir *BrakeCyl; //silownik
|
||||||
TReservoir *BrakeRes; //ZP
|
TReservoir *BrakeRes; //ZP
|
||||||
TReservoir *ValveRes; //komora wstepna
|
TReservoir *ValveRes; //komora wstepna
|
||||||
@@ -199,7 +202,7 @@ protected:
|
|||||||
Byte BrakeStatus; //flaga stanu
|
Byte BrakeStatus; //flaga stanu
|
||||||
Byte SoundFlag;
|
Byte SoundFlag;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
TBrake(double i_mbp, double i_bcr, double i_bcd, double i_brc,
|
TBrake(double i_mbp, double i_bcr, double i_bcd, double i_brc,
|
||||||
Byte i_bcn, Byte i_BD, Byte i_mat, Byte i_ba, Byte i_nbpa);
|
Byte i_bcn, Byte i_BD, Byte i_mat, Byte i_ba, Byte i_nbpa);
|
||||||
//maksymalne cisnienie, promien, skok roboczy, pojemnosc ZP;
|
//maksymalne cisnienie, promien, skok roboczy, pojemnosc ZP;
|
||||||
@@ -222,16 +225,16 @@ public:
|
|||||||
void SetASBP(double Press); //ustalenie cisnienia pp
|
void SetASBP(double Press); //ustalenie cisnienia pp
|
||||||
virtual void ForceEmptiness();
|
virtual void ForceEmptiness();
|
||||||
Byte GetSoundFlag();
|
Byte GetSoundFlag();
|
||||||
// procedure
|
// procedure
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class TWest: public TBrake
|
class TWest : public TBrake
|
||||||
|
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
double LBP; //cisnienie hamulca pomocniczego
|
double LBP; //cisnienie hamulca pomocniczego
|
||||||
double dVP; //pobor powietrza wysokiego cisnienia
|
double dVP; //pobor powietrza wysokiego cisnienia
|
||||||
double EPS; //stan elektropneumatyka
|
double EPS; //stan elektropneumatyka
|
||||||
@@ -239,7 +242,7 @@ private:
|
|||||||
double TareBP; //cisnienie dla proznego
|
double TareBP; //cisnienie dla proznego
|
||||||
double LoadC; //wspolczynnik przystawki wazacej
|
double LoadC; //wspolczynnik przystawki wazacej
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void SetLBP(double P); //cisnienie z hamulca pomocniczego
|
void SetLBP(double P); //cisnienie z hamulca pomocniczego
|
||||||
double GetPF(double PP, double dt, double Vel)/*override*/; //przeplyw miedzy komora wstepna i PG
|
double GetPF(double PP, double dt, double Vel)/*override*/; //przeplyw miedzy komora wstepna i PG
|
||||||
void Init(double PP, double HPP, double LPP, double BP, Byte BDF)/*override*/;
|
void Init(double PP, double HPP, double LPP, double BP, Byte BDF)/*override*/;
|
||||||
@@ -248,18 +251,21 @@ public:
|
|||||||
void SetEPS(double nEPS)/*override*/; //stan hamulca EP
|
void SetEPS(double nEPS)/*override*/; //stan hamulca EP
|
||||||
void SetLP(double TM, double LM, double TBP); //parametry przystawki wazacej
|
void SetLP(double TM, double LM, double TBP); //parametry przystawki wazacej
|
||||||
|
|
||||||
};
|
inline TWest(double i_mbp, double i_bcr, double i_bcd, double i_brc,
|
||||||
|
Byte i_bcn, Byte i_BD, Byte i_mat, Byte i_ba, Byte i_nbpa) : TBrake(i_mbp, i_bcr, i_bcd, i_brc, i_bcn
|
||||||
|
, i_BD, i_mat, i_ba, i_nbpa) { }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class TESt: public TBrake
|
class TESt : public TBrake
|
||||||
|
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
TReservoir *CntrlRes; //zbiornik steruj¹cy
|
TReservoir *CntrlRes; //zbiornik steruj¹cy
|
||||||
double BVM; //przelozenie PG-CH
|
double BVM; //przelozenie PG-CH
|
||||||
|
|
||||||
public:
|
public:
|
||||||
double GetPF(double PP, double dt, double Vel)/*override*/; //przeplyw miedzy komora wstepna i PG
|
double GetPF(double PP, double dt, double Vel)/*override*/; //przeplyw miedzy komora wstepna i PG
|
||||||
void EStParams(double i_crc); //parametry charakterystyczne dla ESt
|
void EStParams(double i_crc); //parametry charakterystyczne dla ESt
|
||||||
void Init(double PP, double HPP, double LPP, double BP, Byte BDF)/*override*/;
|
void Init(double PP, double HPP, double LPP, double BP, Byte BDF)/*override*/;
|
||||||
@@ -269,70 +275,82 @@ public:
|
|||||||
double CVs(double BP); //napelniacz sterujacego
|
double CVs(double BP); //napelniacz sterujacego
|
||||||
double BVs(double BCP); //napelniacz pomocniczego
|
double BVs(double BCP); //napelniacz pomocniczego
|
||||||
|
|
||||||
};
|
inline TESt(double i_mbp, double i_bcr, double i_bcd, double i_brc,
|
||||||
|
Byte i_bcn, Byte i_BD, Byte i_mat, Byte i_ba, Byte i_nbpa) : TBrake(i_mbp, i_bcr, i_bcd, i_brc, i_bcn
|
||||||
|
, i_BD, i_mat, i_ba, i_nbpa) { }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class TESt3: public TESt
|
class TESt3 : public TESt
|
||||||
|
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
double CylFlowSpeed[2][2];
|
double CylFlowSpeed[2][2];
|
||||||
|
|
||||||
public:
|
public:
|
||||||
double GetPF(double PP, double dt, double Vel)/*override*/; //przeplyw miedzy komora wstepna i PG
|
double GetPF(double PP, double dt, double Vel)/*override*/; //przeplyw miedzy komora wstepna i PG
|
||||||
|
|
||||||
};
|
inline TESt3(double i_mbp, double i_bcr, double i_bcd, double i_brc,
|
||||||
|
Byte i_bcn, Byte i_BD, Byte i_mat, Byte i_ba, Byte i_nbpa) : TESt(i_mbp, i_bcr, i_bcd, i_brc, i_bcn
|
||||||
|
, i_BD, i_mat, i_ba, i_nbpa) { }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class TESt3AL2: public TESt3
|
class TESt3AL2 : public TESt3
|
||||||
|
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
double TareM; double LoadM; //masa proznego i pelnego
|
double TareM; double LoadM; //masa proznego i pelnego
|
||||||
double TareBP; //cisnienie dla proznego
|
double TareBP; //cisnienie dla proznego
|
||||||
double LoadC;
|
double LoadC;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
TReservoir *ImplsRes; //komora impulsowa
|
TReservoir *ImplsRes; //komora impulsowa
|
||||||
double GetPF(double PP, double dt, double Vel)/*override*/; //przeplyw miedzy komora wstepna i PG
|
double GetPF(double PP, double dt, double Vel)/*override*/; //przeplyw miedzy komora wstepna i PG
|
||||||
void PLC(double mass); //wspolczynnik cisnienia przystawki wazacej
|
void PLC(double mass); //wspolczynnik cisnienia przystawki wazacej
|
||||||
void SetLP(double TM, double LM, double TBP); //parametry przystawki wazacej
|
void SetLP(double TM, double LM, double TBP); //parametry przystawki wazacej
|
||||||
void Init(double PP, double HPP, double LPP, double BP, Byte BDF)/*override*/;
|
void Init(double PP, double HPP, double LPP, double BP, Byte BDF)/*override*/;
|
||||||
|
|
||||||
};
|
inline TESt3AL2(double i_mbp, double i_bcr, double i_bcd, double i_brc
|
||||||
|
, Byte i_bcn, Byte i_BD, Byte i_mat, Byte i_ba, Byte i_nbpa) : TESt3(i_mbp, i_bcr, i_bcd, i_brc, i_bcn
|
||||||
|
, i_BD, i_mat, i_ba, i_nbpa) { }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class TESt4R: public TESt
|
class TESt4R : public TESt
|
||||||
|
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
bool RapidStatus;
|
bool RapidStatus;
|
||||||
protected:
|
protected:
|
||||||
TReservoir *ImplsRes; //komora impulsowa
|
TReservoir *ImplsRes; //komora impulsowa
|
||||||
double RapidTemp; //akrualne, zmienne przelozenie
|
double RapidTemp; //akrualne, zmienne przelozenie
|
||||||
|
|
||||||
public:
|
public:
|
||||||
double GetPF(double PP, double dt, double Vel)/*override*/; //przeplyw miedzy komora wstepna i PG
|
double GetPF(double PP, double dt, double Vel)/*override*/; //przeplyw miedzy komora wstepna i PG
|
||||||
void Init(double PP, double HPP, double LPP, double BP, Byte BDF)/*override*/;
|
void Init(double PP, double HPP, double LPP, double BP, Byte BDF)/*override*/;
|
||||||
|
|
||||||
};
|
inline TESt4R(double i_mbp, double i_bcr, double i_bcd, double i_brc
|
||||||
|
, Byte i_bcn, Byte i_BD, Byte i_mat, Byte i_ba, Byte i_nbpa) : TESt(i_mbp, i_bcr, i_bcd, i_brc, i_bcn
|
||||||
|
, i_BD, i_mat, i_ba, i_nbpa) { }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class TLSt: public TESt4R
|
class TLSt : public TESt4R
|
||||||
|
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
double CylFlowSpeed[2][2];
|
double CylFlowSpeed[2][2];
|
||||||
protected:
|
protected:
|
||||||
double LBP; //cisnienie hamulca pomocniczego
|
double LBP; //cisnienie hamulca pomocniczego
|
||||||
double RM; //przelozenie rapida
|
double RM; //przelozenie rapida
|
||||||
double EDFlag; //luzowanie hamulca z powodu zalaczonego ED
|
double EDFlag; //luzowanie hamulca z powodu zalaczonego ED
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void SetLBP(double P); //cisnienie z hamulca pomocniczego
|
void SetLBP(double P); //cisnienie z hamulca pomocniczego
|
||||||
void SetRM(double RMR); //ustalenie przelozenia rapida
|
void SetRM(double RMR); //ustalenie przelozenia rapida
|
||||||
double GetPF(double PP, double dt, double Vel)/*override*/; //przeplyw miedzy komora wstepna i PG
|
double GetPF(double PP, double dt, double Vel)/*override*/; //przeplyw miedzy komora wstepna i PG
|
||||||
@@ -341,14 +359,17 @@ public:
|
|||||||
virtual double GetEDBCP(); //cisnienie tylko z hamulca zasadniczego, uzywane do hamulca ED w EP09
|
virtual double GetEDBCP(); //cisnienie tylko z hamulca zasadniczego, uzywane do hamulca ED w EP09
|
||||||
void SetED(double EDstate); //stan hamulca ED do luzowania
|
void SetED(double EDstate); //stan hamulca ED do luzowania
|
||||||
|
|
||||||
};
|
inline TLSt(double i_mbp, double i_bcr, double i_bcd, double i_brc,
|
||||||
|
Byte i_bcn, Byte i_BD, Byte i_mat, Byte i_ba, Byte i_nbpa) : TESt4R(i_mbp, i_bcr, i_bcd, i_brc, i_bcn
|
||||||
|
, i_BD, i_mat, i_ba, i_nbpa) { }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class TEStED: public TLSt //zawor z EP09 - Est4 z oddzielnym przekladnikiem, kontrola rapidu i takie tam
|
class TEStED : public TLSt //zawor z EP09 - Est4 z oddzielnym przekladnikiem, kontrola rapidu i takie tam
|
||||||
|
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
double Nozzles[11]; //dysze
|
double Nozzles[11]; //dysze
|
||||||
bool Zamykajacy; //pamiec zaworka zamykajacego
|
bool Zamykajacy; //pamiec zaworka zamykajacego
|
||||||
bool Przys_blok; //blokada przyspieszacza
|
bool Przys_blok; //blokada przyspieszacza
|
||||||
@@ -357,46 +378,52 @@ private:
|
|||||||
double TareBP; //cisnienie dla proznego
|
double TareBP; //cisnienie dla proznego
|
||||||
double LoadC;
|
double LoadC;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void Init(double PP, double HPP, double LPP, double BP, Byte BDF)/*override*/;
|
void Init(double PP, double HPP, double LPP, double BP, Byte BDF)/*override*/;
|
||||||
double GetPF(double PP, double dt, double Vel)/*override*/; //przeplyw miedzy komora wstepna i PG
|
double GetPF(double PP, double dt, double Vel)/*override*/; //przeplyw miedzy komora wstepna i PG
|
||||||
double GetEDBCP()/*override*/; //cisnienie tylko z hamulca zasadniczego, uzywane do hamulca ED
|
double GetEDBCP()/*override*/; //cisnienie tylko z hamulca zasadniczego, uzywane do hamulca ED
|
||||||
void PLC(double mass); //wspolczynnik cisnienia przystawki wazacej
|
void PLC(double mass); //wspolczynnik cisnienia przystawki wazacej
|
||||||
void SetLP(double TM, double LM, double TBP); //parametry przystawki wazacej
|
void SetLP(double TM, double LM, double TBP); //parametry przystawki wazacej
|
||||||
|
|
||||||
};
|
inline TEStED(double i_mbp, double i_bcr, double i_bcd, double i_brc
|
||||||
|
, Byte i_bcn, Byte i_BD, Byte i_mat, Byte i_ba, Byte i_nbpa) : TLSt(i_mbp, i_bcr, i_bcd, i_brc, i_bcn
|
||||||
|
, i_BD, i_mat, i_ba, i_nbpa) { }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class TEStEP2: public TLSt
|
class TEStEP2 : public TLSt
|
||||||
|
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
double TareM; double LoadM; //masa proznego i pelnego
|
double TareM; double LoadM; //masa proznego i pelnego
|
||||||
double TareBP; //cisnienie dla proznego
|
double TareBP; //cisnienie dla proznego
|
||||||
double LoadC;
|
double LoadC;
|
||||||
double EPS;
|
double EPS;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
double GetPF(double PP, double dt, double Vel)/*override*/; //przeplyw miedzy komora wstepna i PG
|
double GetPF(double PP, double dt, double Vel)/*override*/; //przeplyw miedzy komora wstepna i PG
|
||||||
void Init(double PP, double HPP, double LPP, double BP, Byte BDF)/*override*/; //inicjalizacja
|
void Init(double PP, double HPP, double LPP, double BP, Byte BDF)/*override*/; //inicjalizacja
|
||||||
void PLC(double mass); //wspolczynnik cisnienia przystawki wazacej
|
void PLC(double mass); //wspolczynnik cisnienia przystawki wazacej
|
||||||
void SetEPS(double nEPS)/*override*/; //stan hamulca EP
|
void SetEPS(double nEPS)/*override*/; //stan hamulca EP
|
||||||
void SetLP(double TM, double LM, double TBP); //parametry przystawki wazacej
|
void SetLP(double TM, double LM, double TBP); //parametry przystawki wazacej
|
||||||
|
|
||||||
};
|
inline TEStEP2(double i_mbp, double i_bcr, double i_bcd, double i_brc
|
||||||
|
, Byte i_bcn, Byte i_BD, Byte i_mat, Byte i_ba, Byte i_nbpa) : TLSt(i_mbp, i_bcr, i_bcd, i_brc, i_bcn
|
||||||
|
, i_BD, i_mat, i_ba, i_nbpa) { }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class TCV1: public TBrake
|
class TCV1 : public TBrake
|
||||||
|
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
double BVM; //przelozenie PG-CH
|
double BVM; //przelozenie PG-CH
|
||||||
protected:
|
protected:
|
||||||
TReservoir *CntrlRes; //zbiornik steruj¹cy
|
TReservoir *CntrlRes; //zbiornik steruj¹cy
|
||||||
|
|
||||||
public:
|
public:
|
||||||
double GetPF(double PP, double dt, double Vel)/*override*/; //przeplyw miedzy komora wstepna i PG
|
double GetPF(double PP, double dt, double Vel)/*override*/; //przeplyw miedzy komora wstepna i PG
|
||||||
void Init(double PP, double HPP, double LPP, double BP, Byte BDF)/*override*/;
|
void Init(double PP, double HPP, double LPP, double BP, Byte BDF)/*override*/;
|
||||||
double GetCRP()/*override*/;
|
double GetCRP()/*override*/;
|
||||||
@@ -404,46 +431,55 @@ public:
|
|||||||
double CVs(double BP);
|
double CVs(double BP);
|
||||||
double BVs(double BCP);
|
double BVs(double BCP);
|
||||||
|
|
||||||
};
|
inline TCV1(double i_mbp, double i_bcr, double i_bcd, double i_brc,
|
||||||
|
Byte i_bcn, Byte i_BD, Byte i_mat, Byte i_ba, Byte i_nbpa) : TBrake(i_mbp, i_bcr, i_bcd, i_brc, i_bcn
|
||||||
|
, i_BD, i_mat, i_ba, i_nbpa) { }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class TCV1R: public TCV1
|
class TCV1R : public TCV1
|
||||||
|
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
TReservoir *ImplsRes; //komora impulsowa
|
TReservoir *ImplsRes; //komora impulsowa
|
||||||
bool RapidStatus;
|
bool RapidStatus;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// function GetPF(PP, dt, Vel: real): real; override; //przeplyw miedzy komora wstepna i PG
|
// function GetPF(PP, dt, Vel: real): real; override; //przeplyw miedzy komora wstepna i PG
|
||||||
// procedure Init(PP, HPP, LPP, BP: real; BDF: byte); override;
|
// procedure Init(PP, HPP, LPP, BP: real; BDF: byte); override;
|
||||||
|
|
||||||
};
|
inline TCV1R(double i_mbp, double i_bcr, double i_bcd, double i_brc,
|
||||||
|
Byte i_bcn, Byte i_BD, Byte i_mat, Byte i_ba, Byte i_nbpa) : TCV1(i_mbp, i_bcr, i_bcd, i_brc, i_bcn
|
||||||
|
, i_BD, i_mat, i_ba, i_nbpa) { }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class TCV1L_TR: public TCV1
|
class TCV1L_TR : public TCV1
|
||||||
|
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
TReservoir *ImplsRes; //komora impulsowa
|
TReservoir *ImplsRes; //komora impulsowa
|
||||||
double LBP; //cisnienie hamulca pomocniczego
|
double LBP; //cisnienie hamulca pomocniczego
|
||||||
|
|
||||||
public:
|
public:
|
||||||
double GetPF(double PP, double dt, double Vel)/*override*/; //przeplyw miedzy komora wstepna i PG
|
double GetPF(double PP, double dt, double Vel)/*override*/; //przeplyw miedzy komora wstepna i PG
|
||||||
void Init(double PP, double HPP, double LPP, double BP, Byte BDF)/*override*/;
|
void Init(double PP, double HPP, double LPP, double BP, Byte BDF)/*override*/;
|
||||||
void SetLBP(double P); //cisnienie z hamulca pomocniczego
|
void SetLBP(double P); //cisnienie z hamulca pomocniczego
|
||||||
double GetHPFlow(double HP, double dt)/*override*/; //przeplyw - 8 bar
|
double GetHPFlow(double HP, double dt)/*override*/; //przeplyw - 8 bar
|
||||||
|
|
||||||
};
|
inline TCV1L_TR(double i_mbp, double i_bcr, double i_bcd, double i_brc
|
||||||
|
, Byte i_bcn, Byte i_BD, Byte i_mat, Byte i_ba, Byte i_nbpa) : TCV1(i_mbp, i_bcr, i_bcd, i_brc, i_bcn
|
||||||
|
, i_BD, i_mat, i_ba, i_nbpa) { }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class TKE: public TBrake //Knorr Einheitsbauart — jeden do wszystkiego
|
class TKE : public TBrake //Knorr Einheitsbauart — jeden do wszystkiego
|
||||||
|
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
bool RapidStatus;
|
bool RapidStatus;
|
||||||
TReservoir *ImplsRes; //komora impulsowa
|
TReservoir *ImplsRes; //komora impulsowa
|
||||||
TReservoir *CntrlRes; //zbiornik steruj¹cy
|
TReservoir *CntrlRes; //zbiornik steruj¹cy
|
||||||
@@ -455,7 +491,7 @@ private:
|
|||||||
double RM; //przelozenie rapida
|
double RM; //przelozenie rapida
|
||||||
double LBP; //cisnienie hamulca pomocniczego
|
double LBP; //cisnienie hamulca pomocniczego
|
||||||
|
|
||||||
public:
|
public:
|
||||||
void SetRM(double RMR); //ustalenie przelozenia rapida
|
void SetRM(double RMR); //ustalenie przelozenia rapida
|
||||||
double GetPF(double PP, double dt, double Vel)/*override*/; //przeplyw miedzy komora wstepna i PG
|
double GetPF(double PP, double dt, double Vel)/*override*/; //przeplyw miedzy komora wstepna i PG
|
||||||
void Init(double PP, double HPP, double LPP, double BP, Byte BDF)/*override*/;
|
void Init(double PP, double HPP, double LPP, double BP, Byte BDF)/*override*/;
|
||||||
@@ -469,7 +505,10 @@ public:
|
|||||||
void SetLP(double TM, double LM, double TBP); //parametry przystawki wazacej
|
void SetLP(double TM, double LM, double TBP); //parametry przystawki wazacej
|
||||||
void SetLBP(double P); //cisnienie z hamulca pomocniczego
|
void SetLBP(double P); //cisnienie z hamulca pomocniczego
|
||||||
|
|
||||||
};
|
inline TKE(double i_mbp, double i_bcr, double i_bcd, double i_brc, Byte
|
||||||
|
i_bcn, Byte i_BD, Byte i_mat, Byte i_ba, Byte i_nbpa) : TBrake(i_mbp, i_bcr, i_bcd, i_brc, i_bcn,
|
||||||
|
i_BD, i_mat, i_ba, i_nbpa) { }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -478,12 +517,12 @@ public:
|
|||||||
//klasa obejmujaca krany
|
//klasa obejmujaca krany
|
||||||
|
|
||||||
|
|
||||||
class HANDLE: public TObject
|
class THandle
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
// BCP: integer;
|
// BCP: integer;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
bool Time;
|
bool Time;
|
||||||
bool TimeEP;
|
bool TimeEP;
|
||||||
double Sounds[5]; //wielkosci przeplywow dla dzwiekow
|
double Sounds[5]; //wielkosci przeplywow dla dzwiekow
|
||||||
@@ -494,28 +533,30 @@ public:
|
|||||||
virtual double GetSound(Byte i);
|
virtual double GetSound(Byte i);
|
||||||
virtual double GetPos(Byte i);
|
virtual double GetPos(Byte i);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class TFV4a: public HANDLE
|
class TFV4a : public THandle
|
||||||
|
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
double CP; double TP; double RP; //zbiornik steruj¹cy, czasowy, redukcyjny
|
double CP; double TP; double RP; //zbiornik steruj¹cy, czasowy, redukcyjny
|
||||||
|
|
||||||
public:
|
public:
|
||||||
double GetPF(double i_bcp, double PP, double HP, double dt, double ep)/*override*/;
|
double GetPF(double i_bcp, double PP, double HP, double dt, double ep)/*override*/;
|
||||||
void Init(double Press)/*override*/;
|
void Init(double Press)/*override*/;
|
||||||
|
|
||||||
};
|
inline TFV4a(void) : THandle() { }
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class TFV4aM: public HANDLE
|
class TFV4aM : public THandle
|
||||||
|
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
double CP; double TP; double RP; //zbiornik steruj¹cy, czasowy, redukcyjny
|
double CP; double TP; double RP; //zbiornik steruj¹cy, czasowy, redukcyjny
|
||||||
double XP; //komora powietrzna w reduktorze — jest potrzebna do odwzorowania fali
|
double XP; //komora powietrzna w reduktorze — jest potrzebna do odwzorowania fali
|
||||||
double RedAdj; //dostosowanie reduktora cisnienia (krecenie kapturkiem)
|
double RedAdj; //dostosowanie reduktora cisnienia (krecenie kapturkiem)
|
||||||
@@ -523,28 +564,29 @@ private:
|
|||||||
bool Fala;
|
bool Fala;
|
||||||
double LPP_RP(double pos);
|
double LPP_RP(double pos);
|
||||||
bool EQ(double pos, double i_pos);
|
bool EQ(double pos, double i_pos);
|
||||||
public:
|
public:
|
||||||
double GetPF(double i_bcp, double PP, double HP, double dt, double ep)/*override*/;
|
double GetPF(double i_bcp, double PP, double HP, double dt, double ep)/*override*/;
|
||||||
void Init(double Press)/*override*/;
|
void Init(double Press)/*override*/;
|
||||||
void SetReductor(double nAdj)/*override*/;
|
void SetReductor(double nAdj)/*override*/;
|
||||||
double GetSound(Byte i)/*override*/;
|
double GetSound(Byte i)/*override*/;
|
||||||
double GetPos(Byte i)/*override*/;
|
double GetPos(Byte i)/*override*/;
|
||||||
|
|
||||||
};
|
inline TFV4aM(void) : THandle() { }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class TMHZ_EN57: public HANDLE
|
class TMHZ_EN57 : public THandle
|
||||||
|
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
double CP; double TP; double RP; //zbiornik steruj¹cy, czasowy, redukcyjny
|
double CP; double TP; double RP; //zbiornik steruj¹cy, czasowy, redukcyjny
|
||||||
double RedAdj; //dostosowanie reduktora cisnienia (krecenie kapturkiem)
|
double RedAdj; //dostosowanie reduktora cisnienia (krecenie kapturkiem)
|
||||||
bool Fala;
|
bool Fala;
|
||||||
double LPP_RP(double pos);
|
double LPP_RP(double pos);
|
||||||
bool EQ(double pos, double i_pos);
|
bool EQ(double pos, double i_pos);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
double GetPF(double i_bcp, double PP, double HP, double dt, double ep)/*override*/;
|
double GetPF(double i_bcp, double PP, double HP, double dt, double ep)/*override*/;
|
||||||
void Init(double Press)/*override*/;
|
void Init(double Press)/*override*/;
|
||||||
void SetReductor(double nAdj)/*override*/;
|
void SetReductor(double nAdj)/*override*/;
|
||||||
@@ -553,16 +595,17 @@ public:
|
|||||||
double GetCP()/*override*/;
|
double GetCP()/*override*/;
|
||||||
double GetEP(double pos);
|
double GetEP(double pos);
|
||||||
|
|
||||||
};
|
inline TMHZ_EN57(void) : THandle() { }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* FBS2= class(THandle)
|
/* FBS2= class(TTHandle)
|
||||||
private
|
private
|
||||||
CP, TP, RP: real; //zbiornik steruj¹cy, czasowy, redukcyjny
|
CP, TP, RP: real; //zbiornik steruj¹cy, czasowy, redukcyjny
|
||||||
XP: real; //komora powietrzna w reduktorze — jest potrzebna do odwzorowania fali
|
XP: real; //komora powietrzna w reduktorze — jest potrzebna do odwzorowania fali
|
||||||
RedAdj: real; //dostosowanie reduktora cisnienia (krecenie kapturkiem)
|
RedAdj: real; //dostosowanie reduktora cisnienia (krecenie kapturkiem)
|
||||||
// Sounds: array[0..4] of real; //wielkosci przeplywow dla dzwiekow
|
// Sounds: array[0..4] of real; //wielkosci przeplywow dla dzwiekow
|
||||||
Fala: boolean;
|
Fala: boolean;
|
||||||
public
|
public
|
||||||
function GetPF(i_bcp:real; pp, hp, dt, ep: real): real; override;
|
function GetPF(i_bcp:real; pp, hp, dt, ep: real): real; override;
|
||||||
@@ -572,12 +615,12 @@ public:
|
|||||||
function GetPos(i: byte): real; override;
|
function GetPos(i: byte): real; override;
|
||||||
end; */
|
end; */
|
||||||
|
|
||||||
/* TD2= class(THandle)
|
/* TD2= class(TTHandle)
|
||||||
private
|
private
|
||||||
CP, TP, RP: real; //zbiornik steruj¹cy, czasowy, redukcyjny
|
CP, TP, RP: real; //zbiornik steruj¹cy, czasowy, redukcyjny
|
||||||
XP: real; //komora powietrzna w reduktorze — jest potrzebna do odwzorowania fali
|
XP: real; //komora powietrzna w reduktorze — jest potrzebna do odwzorowania fali
|
||||||
RedAdj: real; //dostosowanie reduktora cisnienia (krecenie kapturkiem)
|
RedAdj: real; //dostosowanie reduktora cisnienia (krecenie kapturkiem)
|
||||||
// Sounds: array[0..4] of real; //wielkosci przeplywow dla dzwiekow
|
// Sounds: array[0..4] of real; //wielkosci przeplywow dla dzwiekow
|
||||||
Fala: boolean;
|
Fala: boolean;
|
||||||
public
|
public
|
||||||
function GetPF(i_bcp:real; pp, hp, dt, ep: real): real; override;
|
function GetPF(i_bcp:real; pp, hp, dt, ep: real): real; override;
|
||||||
@@ -588,132 +631,142 @@ public:
|
|||||||
end;*/
|
end;*/
|
||||||
|
|
||||||
|
|
||||||
class TM394: public HANDLE
|
class TM394 : public THandle
|
||||||
|
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
double CP; //zbiornik steruj¹cy, czasowy, redukcyjny
|
double CP; //zbiornik steruj¹cy, czasowy, redukcyjny
|
||||||
double RedAdj; //dostosowanie reduktora cisnienia (krecenie kapturkiem)
|
double RedAdj; //dostosowanie reduktora cisnienia (krecenie kapturkiem)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
double GetPF(double i_bcp, double PP, double HP, double dt, double ep)/*override*/;
|
double GetPF(double i_bcp, double PP, double HP, double dt, double ep)/*override*/;
|
||||||
void Init(double Press)/*override*/;
|
void Init(double Press)/*override*/;
|
||||||
void SetReductor(double nAdj)/*override*/;
|
void SetReductor(double nAdj)/*override*/;
|
||||||
double GetCP()/*override*/;
|
double GetCP()/*override*/;
|
||||||
double GetPos(Byte i)/*override*/;
|
double GetPos(Byte i)/*override*/;
|
||||||
|
|
||||||
};
|
inline TM394(void) : THandle() { }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class TH14K1: public HANDLE
|
class TH14K1 : public THandle
|
||||||
|
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
double CP; //zbiornik steruj¹cy, czasowy, redukcyjny
|
double CP; //zbiornik steruj¹cy, czasowy, redukcyjny
|
||||||
double RedAdj; //dostosowanie reduktora cisnienia (krecenie kapturkiem)
|
double RedAdj; //dostosowanie reduktora cisnienia (krecenie kapturkiem)
|
||||||
|
|
||||||
public:
|
public:
|
||||||
double GetPF(double i_bcp, double PP, double HP, double dt, double ep)/*override*/;
|
double GetPF(double i_bcp, double PP, double HP, double dt, double ep)/*override*/;
|
||||||
void Init(double Press)/*override*/;
|
void Init(double Press)/*override*/;
|
||||||
void SetReductor(double nAdj)/*override*/;
|
void SetReductor(double nAdj)/*override*/;
|
||||||
double GetCP()/*override*/;
|
double GetCP()/*override*/;
|
||||||
double GetPos(Byte i)/*override*/;
|
double GetPos(Byte i)/*override*/;
|
||||||
|
|
||||||
};
|
inline TH14K1(void) : THandle() { }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class TSt113: public TH14K1
|
class TSt113 : public TH14K1
|
||||||
|
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
double EPS;
|
double EPS;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
double GetPF(double i_bcp, double PP, double HP, double dt, double ep)/*override*/;
|
double GetPF(double i_bcp, double PP, double HP, double dt, double ep)/*override*/;
|
||||||
double GetCP()/*override*/;
|
double GetCP()/*override*/;
|
||||||
double GetPos(Byte i)/*override*/;
|
double GetPos(Byte i)/*override*/;
|
||||||
void Init(double Press)/*override*/;
|
void Init(double Press)/*override*/;
|
||||||
|
|
||||||
};
|
inline TSt113(void) : TH14K1() { }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class Ttest: public HANDLE
|
class Ttest : public THandle
|
||||||
|
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
double CP;
|
double CP;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
double GetPF(double i_bcp, double PP, double HP, double dt, double ep)/*override*/;
|
double GetPF(double i_bcp, double PP, double HP, double dt, double ep)/*override*/;
|
||||||
void Init(double Press)/*override*/;
|
void Init(double Press)/*override*/;
|
||||||
|
|
||||||
};
|
inline Ttest(void) : THandle() { }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class TFD1: public HANDLE
|
class TFD1 : public THandle
|
||||||
|
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
double MaxBP; //najwyzsze cisnienie
|
double MaxBP; //najwyzsze cisnienie
|
||||||
double BP; //aktualne cisnienie
|
double BP; //aktualne cisnienie
|
||||||
|
|
||||||
public:
|
public:
|
||||||
double Speed; //szybkosc dzialania
|
double Speed; //szybkosc dzialania
|
||||||
double GetPF(double i_bcp, double PP, double HP, double dt, double ep)/*override*/;
|
double GetPF(double i_bcp, double PP, double HP, double dt, double ep)/*override*/;
|
||||||
void Init(double Press)/*override*/;
|
void Init(double Press)/*override*/;
|
||||||
double GetCP()/*override*/;
|
double GetCP()/*override*/;
|
||||||
void SetSpeed(double nSpeed);
|
void SetSpeed(double nSpeed);
|
||||||
// procedure Init(press: real; MaxBP: real); overload;
|
// procedure Init(press: real; MaxBP: real); overload;
|
||||||
|
|
||||||
};
|
inline TFD1(void) : THandle() { }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class TH1405: public HANDLE
|
class TH1405 : public THandle
|
||||||
|
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
double MaxBP; //najwyzsze cisnienie
|
double MaxBP; //najwyzsze cisnienie
|
||||||
double BP; //aktualne cisnienie
|
double BP; //aktualne cisnienie
|
||||||
|
|
||||||
public:
|
public:
|
||||||
double GetPF(double i_bcp, double PP, double HP, double dt, double ep)/*override*/;
|
double GetPF(double i_bcp, double PP, double HP, double dt, double ep)/*override*/;
|
||||||
void Init(double Press)/*override*/;
|
void Init(double Press)/*override*/;
|
||||||
double GetCP()/*override*/;
|
double GetCP()/*override*/;
|
||||||
// procedure Init(press: real; MaxBP: real); overload;
|
// procedure Init(press: real; MaxBP: real); overload;
|
||||||
|
|
||||||
};
|
inline TH1405(void) : THandle() { }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class TFVel6: public HANDLE
|
class TFVel6 : public THandle
|
||||||
|
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
double EPS;
|
double EPS;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
double GetPF(double i_bcp, double PP, double HP, double dt, double ep)/*override*/;
|
double GetPF(double i_bcp, double PP, double HP, double dt, double ep)/*override*/;
|
||||||
double GetCP()/*override*/;
|
double GetCP()/*override*/;
|
||||||
double GetPos(Byte i)/*override*/;
|
double GetPos(Byte i)/*override*/;
|
||||||
double GetSound(Byte i)/*override*/;
|
double GetSound(Byte i)/*override*/;
|
||||||
void Init(double Press)/*override*/;
|
void Init(double Press)/*override*/;
|
||||||
|
|
||||||
};
|
inline TFVel6(void) : THandle() { }
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
extern double PF(double P1, double P2, double S, double DP = 0.25);
|
extern double PF(double P1, double P2, double S, double DP = 0.25);
|
||||||
extern double PF1(double P1, double P2, double S);
|
extern double PF1(double P1, double P2, double S);
|
||||||
|
|
||||||
extern double PFVa(double PH, double PL, double S, double LIM, double DP = 0.1); //zawor napelniajacy z PH do PL, PL do LIM
|
|
||||||
extern double PFVd(double PH, double PL, double S, double LIM, double DP = 0.1); //zawor wypuszczajacy z PH do PL, PH do LIM
|
|
||||||
|
|
||||||
|
|
||||||
|
extern double PFVa(double PH, double PL, double S, double LIM, double DP = 0.1); //zawor napelniajacy z PH do PL, PL do LIM
|
||||||
|
extern double PFVd(double PH, double PL, double S, double LIM, double DP = 0.1); //zawor wypuszczajacy z PH do PL, PH do LIM
|
||||||
|
|
||||||
|
extern long lround(double value); //zastepuje funkcje nieobecna w C++99
|
||||||
|
}
|
||||||
|
#if !defined(NO_IMPLICIT_NAMESPACE_USE)
|
||||||
|
using namespace Hamulce;
|
||||||
|
#endif
|
||||||
#endif//INCLUDED_HAMULCE_H
|
#endif//INCLUDED_HAMULCE_H
|
||||||
//END
|
//END
|
||||||
|
|||||||
@@ -22,6 +22,8 @@ http://mozilla.org/MPL/2.0/.
|
|||||||
#include "Timer.h"
|
#include "Timer.h"
|
||||||
#include "Driver.h"
|
#include "Driver.h"
|
||||||
#include "Console.h"
|
#include "Console.h"
|
||||||
|
#include "McZapkie\hamulce.h"
|
||||||
|
#include <typeinfo>
|
||||||
//---------------------------------------------------------------------------
|
//---------------------------------------------------------------------------
|
||||||
|
|
||||||
#pragma package(smart_init)
|
#pragma package(smart_init)
|
||||||
@@ -321,7 +323,7 @@ PyObject *TTrain::GetTrainState()
|
|||||||
bool bEP, bPN;
|
bool bEP, bPN;
|
||||||
bEP = (mvControlled->LocHandle->GetCP()>0.2) || (fEIMParams[0][2]>0.01);
|
bEP = (mvControlled->LocHandle->GetCP()>0.2) || (fEIMParams[0][2]>0.01);
|
||||||
PyDict_SetItemString(dict, "dir_brake", PyGetBool(bEP));
|
PyDict_SetItemString(dict, "dir_brake", PyGetBool(bEP));
|
||||||
if (mvControlled->Hamulec->ClassNameIs("TLSt") || mvControlled->Hamulec->ClassNameIs("TEStED"))
|
if (typeid(mvControlled->Hamulec) == typeid(TLSt) || typeid(mvControlled->Hamulec) == typeid(TEStED))
|
||||||
{
|
{
|
||||||
TBrake* temp_ham = mvControlled->Hamulec;
|
TBrake* temp_ham = mvControlled->Hamulec;
|
||||||
// TLSt* temp_ham2 = temp_ham;
|
// TLSt* temp_ham2 = temp_ham;
|
||||||
|
|||||||
Reference in New Issue
Block a user