mirror of
https://github.com/MaSzyna-EU07/maszyna.git
synced 2026-07-22 18:39:18 +02:00
Added SpeedCtrl for TRAXX
This commit is contained in:
committed by
tmj-fstate
parent
916a611c8d
commit
b9117c6fa8
@@ -5011,7 +5011,44 @@ double TMoverParameters::TractionForce( double dt ) {
|
||||
{
|
||||
if( true == Mains ) {
|
||||
//tempomat
|
||||
if (ScndCtrlPosNo > 1)
|
||||
if (ScndCtrlPosNo == 4 && SpeedCtrlTypeTime)
|
||||
{
|
||||
switch (ScndCtrlPos) {
|
||||
case 0:
|
||||
NewSpeed = 0;
|
||||
ScndCtrlActualPos = 0;
|
||||
SpeedCtrlTimer = 10;
|
||||
break;
|
||||
case 1:
|
||||
if (SpeedCtrlTimer > SpeedCtrlDelay) {
|
||||
SpeedCtrlTimer = 0;
|
||||
NewSpeed -= 10;
|
||||
if (NewSpeed < 0) NewSpeed = 0;
|
||||
}
|
||||
else
|
||||
SpeedCtrlTimer += dt;
|
||||
break;
|
||||
case 2:
|
||||
SpeedCtrlTimer = 10;
|
||||
ScndCtrlActualPos = NewSpeed;
|
||||
break;
|
||||
case 3:
|
||||
if (SpeedCtrlTimer > SpeedCtrlDelay) {
|
||||
SpeedCtrlTimer = 0;
|
||||
NewSpeed += 10;
|
||||
if (NewSpeed > Vmax) NewSpeed = Vmax;
|
||||
}
|
||||
else
|
||||
SpeedCtrlTimer += dt;
|
||||
break;
|
||||
case 4:
|
||||
NewSpeed = Vmax;
|
||||
ScndCtrlActualPos = Vmax;
|
||||
SpeedCtrlTimer = 10;
|
||||
break;
|
||||
}
|
||||
}
|
||||
else if (ScndCtrlPosNo > 1)
|
||||
{
|
||||
if (ScndCtrlPos != NewSpeed)
|
||||
{
|
||||
@@ -8604,6 +8641,10 @@ void TMoverParameters::LoadFIZ_Cntrl( std::string const &line ) {
|
||||
|
||||
// speed control
|
||||
extract_value( SpeedCtrlDelay, "SpeedCtrlDelay", line, "" );
|
||||
SpeedCtrlTypeTime =
|
||||
(extract_value("SpeedCtrlType", line) == "Time") ?
|
||||
true :
|
||||
false;
|
||||
|
||||
// converter
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user