Skip to content

Commit 24aee69

Browse files
committed
core: tvm: fix condition for constraining signals
The condition was inverted. Additionally, VL now always returns false as a safety measure.
1 parent e83413d commit 24aee69

File tree

1 file changed

+6
-1
lines changed
  • core/kt-osrd-sncf-signaling/src/main/kotlin/fr/sncf/osrd/signaling/tvm300

1 file changed

+6
-1
lines changed

core/kt-osrd-sncf-signaling/src/main/kotlin/fr/sncf/osrd/signaling/tvm300/TVM300.kt

+6-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,12 @@ object TVM300 : SignalingSystemDriver {
3939
}
4040

4141
override fun isConstraining(signalState: SigState, trainState: SignalingTrainState): Boolean {
42-
return trainState.speed <= maxSpeedForState(signalState)
42+
if (signalState.getEnum("aspect").contains("VL")) {
43+
// VL should never be considered constraining,
44+
// it would cause infinite loops in spacing resource generation
45+
return false
46+
}
47+
return trainState.speed > maxSpeedForState(signalState)
4348
}
4449

4550
override fun checkBlock(reporter: BlockDiagReporter, block: SigBlock) {

0 commit comments

Comments
 (0)