Skip to content

Commit fd53951

Browse files
authored
Merge pull request #735 from Sharpe49/feature/battery-switch-defaulton
Added new parameter for battery switch
2 parents ad1c4e3 + b9a0ea3 commit fd53951

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
@@ -4313,12 +4313,16 @@ In real life, the battery switch may not
43134313
close instantly, so you can add a delay with the optional parameter
43144314
``ORTSBattery( Delay ( ) )`` (by default in seconds).
43154315

4316+
It is possible for the battery switch to be switched on at the start of the simulation.
4317+
To activate this behaviour, you can add the optional parameter ``ORTSBattery( DefaultOn ( 1 ) )``
4318+
43164319
Example::
43174320

43184321
Engine (
43194322
ORTSBattery (
43204323
Mode ( PushButtons )
43214324
Delay ( 2s )
4325+
DefaultOn ( 1 )
43224326
)
43234327
)
43244328

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
@@ -878,6 +878,7 @@ public override void Parse(string lowercasetoken, STFReader stf)
878878

879879
case "engine(ortsbattery(mode":
880880
case "engine(ortsbattery(delay":
881+
case "engine(ortsbattery(defaulton":
881882
case "engine(ortsmasterkey(mode":
882883
case "engine(ortsmasterkey(delayoff":
883884
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
@@ -1411,6 +1411,7 @@ public virtual void Parse(string lowercasetoken, STFReader stf)
14111411
case "wagon(ortspowerondelay":
14121412
case "wagon(ortsbattery(mode":
14131413
case "wagon(ortsbattery(delay":
1414+
case "wagon(ortsbattery(defaulton":
14141415
case "wagon(ortspowersupplycontinuouspower":
14151416
case "wagon(ortspowersupplyheatingpower":
14161417
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)