mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-22 16:19:19 +02:00
build 170427. improved multi-unit simulation accuracy, high voltage couplers modification
This commit is contained in:
@@ -139,7 +139,17 @@ static int const ctrain_passenger = 16; //mostek przejściowy
|
||||
static int const ctrain_scndpneumatic = 32; //przewody 8 atm (żółte; zasilanie powietrzem)
|
||||
static int const ctrain_heating = 64; //przewody ogrzewania WN
|
||||
static int const ctrain_depot = 128; //nie rozłączalny podczas zwykłych manewrów (międzyczłonowy), we wpisie wartość ujemna
|
||||
|
||||
enum coupling {
|
||||
faux = 0x0,
|
||||
coupler = 0x1,
|
||||
brakehose = 0x2,
|
||||
control = 0x4,
|
||||
highvoltage = 0x8,
|
||||
gangway = 0x10,
|
||||
mainhose = 0x20,
|
||||
heating = 0x40,
|
||||
permanent = 0x80
|
||||
};
|
||||
/*typ hamulca elektrodynamicznego*/
|
||||
static int const dbrake_none = 0;
|
||||
static int const dbrake_passive = 1;
|
||||
@@ -360,14 +370,14 @@ struct TBoilerType {
|
||||
};
|
||||
/*rodzaj odbieraka pradu*/
|
||||
struct TCurrentCollector {
|
||||
long CollectorsNo; //musi być tu, bo inaczej się kopie
|
||||
double MinH; double MaxH; //zakres ruchu pantografu, nigdzie nie używany
|
||||
double CSW; //szerokość części roboczej (styku) ślizgacza
|
||||
double MinV; double MaxV; //minimalne i maksymalne akceptowane napięcie
|
||||
double OVP; //czy jest przekaznik nadnapieciowy
|
||||
double InsetV; //minimalne napięcie wymagane do załączenia
|
||||
double MinPress; //minimalne ciśnienie do załączenia WS
|
||||
double MaxPress; //maksymalne ciśnienie za reduktorem
|
||||
long CollectorsNo{ 0.0 }; //musi być tu, bo inaczej się kopie
|
||||
double MinH{ 0.0 }; double MaxH{ 0.0 }; //zakres ruchu pantografu, nigdzie nie używany
|
||||
double CSW{ 0.0 }; //szerokość części roboczej (styku) ślizgacza
|
||||
double MinV{ 0.0 }; double MaxV{ 0.0 }; //minimalne i maksymalne akceptowane napięcie
|
||||
double OVP{ 0.0 }; //czy jest przekaznik nadnapieciowy
|
||||
double InsetV{ 0.0 }; //minimalne napięcie wymagane do załączenia
|
||||
double MinPress{ 0.0 }; //minimalne ciśnienie do załączenia WS
|
||||
double MaxPress{ 0.0 }; //maksymalne ciśnienie za reduktorem
|
||||
//inline TCurrentCollector() {
|
||||
// CollectorsNo = 0;
|
||||
// MinH, MaxH, CSW, MinV, MaxV = 0.0;
|
||||
@@ -536,6 +546,11 @@ struct TTransmision
|
||||
|
||||
enum TCouplerType { NoCoupler, Articulated, Bare, Chain, Screw, Automatic };
|
||||
|
||||
struct power_coupling {
|
||||
double outgoing{ 0.0 }; // power generated by coupling owner
|
||||
double incoming{ 0.0 }; // power supplied from outside source
|
||||
};
|
||||
|
||||
struct TCoupling {
|
||||
/*parametry*/
|
||||
double SpringKB = 1.0; /*stala sprezystosci zderzaka/sprzegu, %tlumiennosci */
|
||||
@@ -556,6 +571,9 @@ struct TCoupling {
|
||||
double CForce = 0.0; /*sila z jaka dzialal*/
|
||||
double Dist = 0.0; /*strzalka ugiecia zderzaków*/
|
||||
bool CheckCollision = false; /*czy sprawdzac sile czy pedy*/
|
||||
|
||||
power_coupling power_high;
|
||||
power_coupling power_low; // TODO: implement this
|
||||
};
|
||||
|
||||
class TMoverParameters
|
||||
@@ -768,7 +786,17 @@ public:
|
||||
TRotation Rot;
|
||||
std::string Name; /*nazwa wlasna*/
|
||||
TCoupling Couplers[2]; //urzadzenia zderzno-sprzegowe, polaczenia miedzy wagonami
|
||||
double HVCouplers[2][2]; //przewod WN
|
||||
enum side {
|
||||
front = 0,
|
||||
rear
|
||||
};
|
||||
#ifdef EU07_USE_OLD_HVCOUPLERS
|
||||
double HVCouplers[ 2 ][ 2 ]; //przewod WN
|
||||
enum hvcoupler {
|
||||
incoming = 0,
|
||||
outgoing
|
||||
};
|
||||
#endif
|
||||
int ScanCounter = 0; /*pomocnicze do skanowania sprzegow*/
|
||||
bool EventFlag = false; /*!o true jesli cos nietypowego sie wydarzy*/
|
||||
int SoundFlag = 0; /*!o patrz stale sound_ */
|
||||
@@ -804,6 +832,7 @@ public:
|
||||
bool CompressorFlag = false; /*!o czy wlaczona sprezarka*/
|
||||
bool PantCompFlag = false; /*!o czy wlaczona sprezarka pantografow*/
|
||||
bool CompressorAllow = false; /*! zezwolenie na uruchomienie sprezarki NBMX*/
|
||||
bool CompressorGovernorLock{ false }; // indicates whether compressor pressure switch was activated due to reaching cut-out pressure
|
||||
bool ConverterFlag = false ; /*! czy wlaczona przetwornica NBMX*/
|
||||
bool ConverterAllow = false; /*zezwolenie na prace przetwornicy NBMX*/
|
||||
int BrakeCtrlPos = -2; /*nastawa hamulca zespolonego*/
|
||||
@@ -886,7 +915,8 @@ public:
|
||||
double RventRot = 0.0; /*!s obroty wentylatorow rozruchowych*/
|
||||
bool UnBrake = false; /*w EZT - nacisniete odhamowywanie*/
|
||||
double PantPress = 0.0; /*Cisnienie w zbiornikach pantografow*/
|
||||
bool s_CAtestebrake = false; //hunter-091012: zmienna dla testu ca
|
||||
bool PantPressSwitchActive{ false }; // state of the pantograph pressure switch. gets primed when the pantograph is up
|
||||
bool s_CAtestebrake = false; //hunter-091012: zmienna dla testu ca
|
||||
|
||||
/*-zmienne dla lokomotywy spalinowej z przekladnia mechaniczna*/
|
||||
double dizel_fill = 0.0; /*napelnienie*/
|
||||
@@ -1058,7 +1088,7 @@ public:
|
||||
|
||||
/*--funkcje dla lokomotyw*/
|
||||
bool DirectionBackward(void);/*! kierunek ruchu*/
|
||||
bool MainSwitch(bool State);/*! wylacznik glowny*/
|
||||
bool MainSwitch( bool const State, bool const Multiunitcontrol = true );/*! wylacznik glowny*/
|
||||
bool ConverterSwitch(bool State);/*! wl/wyl przetwornicy*/
|
||||
bool CompressorSwitch(bool State);/*! wl/wyl sprezarki*/
|
||||
|
||||
@@ -1086,8 +1116,8 @@ public:
|
||||
bool AutoRelayCheck(void);//symulacja automatycznego rozruchu
|
||||
|
||||
bool ResistorsFlagCheck(void); //sprawdzenie kontrolki oporow rozruchowych NBMX
|
||||
bool PantFront(bool State); //obsluga pantografou przedniego
|
||||
bool PantRear(bool State); //obsluga pantografu tylnego
|
||||
bool PantFront(bool const State, bool const Multiunitcontrol = true ); //obsluga pantografou przedniego
|
||||
bool PantRear(bool const State, bool const Multiunitcontrol = true ); //obsluga pantografu tylnego
|
||||
|
||||
/*-funkcje typowe dla lokomotywy spalinowej z przekladnia mechaniczna*/
|
||||
bool dizel_EngageSwitch(double state);
|
||||
|
||||
Reference in New Issue
Block a user