Skip to content

Commit b9a0ea3

Browse files
committed
Added new parameter for battery switch
1 parent 6cf0e64 commit b9a0ea3

File tree

10 files changed

+34
-1
lines changed

10 files changed

+34
-1
lines changed

Source/Documentation/Manual/physics.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4291,12 +4291,16 @@ In real life, the battery switch may not
42914291
close instantly, so you can add a delay with the optional parameter
42924292
``ORTSBattery( Delay ( ) )`` (by default in seconds).
42934293

4294+
It is possible for the battery switch to be switched on at the start of the simulation.
4295+
To activate this behaviour, you can add the optional parameter ``ORTSBattery( DefaultOn ( 1 ) )``
4296+
42944297
Example::
42954298

42964299
Engine (
42974300
ORTSBattery (
42984301
Mode ( PushButtons )
42994302
Delay ( 2s )
4303+
DefaultOn ( 1 )
43004304
)
43014305
)
43024306

Source/Orts.Simulation/Simulation/RollingStocks/MSTSControlTrailerCar.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ public override void Parse(string lowercasetoken, STFReader stf)
8888
case "engine(ortstractioncutoffrelayclosingdelay":
8989
case "engine(ortsbattery(mode":
9090
case "engine(ortsbattery(delay":
91+
case "engine(ortsbattery(defaulton":
9192
case "engine(ortsmasterkey(mode":
9293
case "engine(ortsmasterkey(delayoff":
9394
case "engine(ortsmasterkey(headlightcontrol":

Source/Orts.Simulation/Simulation/RollingStocks/MSTSDieselLocomotive.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@ public override void Parse(string lowercasetoken, STFReader stf)
156156
case "engine(ortstractioncutoffrelayclosingdelay":
157157
case "engine(ortsbattery(mode":
158158
case "engine(ortsbattery(delay":
159+
case "engine(ortsbattery(defaulton":
159160
case "engine(ortsmasterkey(mode":
160161
case "engine(ortsmasterkey(delayoff":
161162
case "engine(ortsmasterkey(headlightcontrol":

Source/Orts.Simulation/Simulation/RollingStocks/MSTSElectricLocomotive.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ public override void Parse(string lowercasetoken, STFReader stf)
7474
case "engine(ortscircuitbreakerclosingdelay":
7575
case "engine(ortsbattery(mode":
7676
case "engine(ortsbattery(delay":
77+
case "engine(ortsbattery(defaulton":
7778
case "engine(ortsmasterkey(mode":
7879
case "engine(ortsmasterkey(delayoff":
7980
case "engine(ortsmasterkey(headlightcontrol":

Source/Orts.Simulation/Simulation/RollingStocks/MSTSSteamLocomotive.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -868,6 +868,7 @@ public override void Parse(string lowercasetoken, STFReader stf)
868868

869869
case "engine(ortsbattery(mode":
870870
case "engine(ortsbattery(delay":
871+
case "engine(ortsbattery(defaulton":
871872
case "engine(ortsmasterkey(mode":
872873
case "engine(ortsmasterkey(delayoff":
873874
case "engine(ortsmasterkey(headlightcontrol":

Source/Orts.Simulation/Simulation/RollingStocks/MSTSWagon.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1380,6 +1380,7 @@ public virtual void Parse(string lowercasetoken, STFReader stf)
13801380
case "wagon(ortspowerondelay":
13811381
case "wagon(ortsbattery(mode":
13821382
case "wagon(ortsbattery(delay":
1383+
case "wagon(ortsbattery(defaulton":
13831384
case "wagon(ortspowersupplycontinuouspower":
13841385
case "wagon(ortspowersupplyheatingpower":
13851386
case "wagon(ortspowersupplyairconditioningpower":

Source/Orts.Simulation/Simulation/RollingStocks/SubSystems/PowerSupplies/BatterySwitch.cs

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ public enum ModeType
3434
}
3535
public ModeType Mode { get; protected set; } = ModeType.AlwaysOn;
3636
public float DelayS { get; protected set; } = 0f;
37+
public bool DefaultOn { get; protected set; } = false;
3738

3839
// Variables
3940
readonly MSTSWagon Wagon;
@@ -79,27 +80,47 @@ public virtual void Parse(string lowercasetoken, STFReader stf)
7980
case "wagon(ortsbattery(delay":
8081
DelayS = stf.ReadFloatBlock(STFReader.UNITS.Time, 0f);
8182
break;
83+
84+
case "engine(ortsbattery(defaulton":
85+
case "wagon(ortsbattery(defaulton":
86+
DefaultOn = stf.ReadBoolBlock(false);
87+
break;
8288
}
8389
}
8490

8591
public void Copy(BatterySwitch other)
8692
{
8793
Mode = other.Mode;
8894
DelayS = other.DelayS;
95+
DefaultOn = other.DefaultOn;
8996
}
9097

9198
public virtual void Initialize()
9299
{
93100
Timer.Setup(DelayS);
101+
102+
if (DefaultOn)
103+
{
104+
On = true;
105+
106+
if (Mode == ModeType.Switch)
107+
{
108+
CommandSwitch = true;
109+
}
110+
}
94111
}
95112

96113
/// <summary>
97114
/// Initialization when simulation starts with moving train
98115
/// </summary>
99116
public virtual void InitializeMoving()
100117
{
101-
CommandSwitch = true;
102118
On = true;
119+
120+
if (Mode == ModeType.Switch)
121+
{
122+
CommandSwitch = true;
123+
}
103124
}
104125

105126
public virtual void Save(BinaryWriter outf)

Source/Orts.Simulation/Simulation/RollingStocks/SubSystems/PowerSupplies/LocomotivePowerSupply.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ public virtual void Parse(string lowercasetoken, STFReader stf)
112112

113113
case "engine(ortsbattery(mode":
114114
case "engine(ortsbattery(delay":
115+
case "engine(ortsbattery(defaulton":
115116
BatterySwitch.Parse(lowercasetoken, stf);
116117
break;
117118
case "engine(ortsmasterkey(mode":

Source/Orts.Simulation/Simulation/RollingStocks/SubSystems/PowerSupplies/PassengerCarPowerSupply.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,7 @@ public virtual void Parse(string lowercasetoken, STFReader stf)
8888

8989
case "wagon(ortsbattery(mode":
9090
case "wagon(ortsbattery(delay":
91+
case "wagon(ortsbattery(defaulton":
9192
BatterySwitch.Parse(lowercasetoken, stf);
9293
break;
9394

Source/Orts.Simulation/Simulation/RollingStocks/SubSystems/PowerSupplies/SteamPowerSupply.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ public virtual void Parse(string lowercasetoken, STFReader stf)
7373
{
7474
case "engine(ortsbattery(mode":
7575
case "engine(ortsbattery(delay":
76+
case "engine(ortsbattery(defaulton":
7677
BatterySwitch.Parse(lowercasetoken, stf);
7778
break;
7879
case "engine(ortsmasterkey(mode":

0 commit comments

Comments
 (0)