16
0
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:
firleju
2016-10-02 14:14:38 +02:00
parent 5f7d4cc34b
commit 5ecf7915d2
10 changed files with 719 additions and 664 deletions

View File

@@ -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=""/>

View File

@@ -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");

View File

@@ -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

View File

@@ -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);

View File

@@ -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
}; };

View File

@@ -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

View File

@@ -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

View File

@@ -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;
} }

View File

@@ -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

View File

@@ -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;