@@ -150,7 +150,11 @@ public void Update()
150
150
Throttle . Value = Percentage ( readBuffer [ 2 ] , throttle ) / 100 ;
151
151
if ( ! fullRangeThrottle )
152
152
DynamicBrake . Value = Percentage ( readBuffer [ 2 ] , dynamicBrake ) / 100 ;
153
- TrainBrake . Value = Percentage ( readBuffer [ 3 ] , autoBrake ) / 100 ;
153
+ float trainBrake = Percentage ( readBuffer [ 3 ] , autoBrake ) / 100 ;
154
+ if ( trainBrake >= 1 && Percentage ( readBuffer [ 3 ] , emergencyBrake ) > 50 )
155
+ TrainBrake . Value = 2 ;
156
+ else
157
+ TrainBrake . Value = trainBrake ;
154
158
EngineBrake . Value = Percentage ( readBuffer [ 4 ] , independentBrake ) / 100 ;
155
159
float a = EngineBrake . Value ;
156
160
float calOff = ( 1 - a ) * bailoffDisengaged . Item1 + a * bailoffDisengaged . Item2 ;
@@ -163,27 +167,6 @@ public void Update()
163
167
{
164
168
if ( button is RailDriverButton rd ) rd . Update ( readBuffer ) ;
165
169
}
166
-
167
- /* TODO: Emergency position of train brake controller is different to EBPB
168
- if (TrainBrakePercent >= 100)
169
- Emergency = Percentage(readBuffer[3], emergencyBrake) > 50;
170
- if (IsPressed(EmergencyStopCommandUp) || IsPressed(EmergencyStopCommandDown))
171
- Emergency = true;
172
- */
173
- /* TODO: Not every command resets alerter. Should be handled by HandleEvent
174
- on TrainControlSystem elsewhere
175
- // check for alerter reset
176
- if (readBuffer?.Length >= 8 && readBufferHistory?.Length >= 8)
177
- {
178
- for (int i = 1; i <= 5; i++)
179
- {
180
- if (Math.Abs(readBuffer[i] - readBufferHistory[i]) > 1)
181
- {
182
- Changed = true;
183
- break;
184
- }
185
- }
186
- }*/
187
170
}
188
171
}
189
172
}
0 commit comments