diff --git a/core/kt-osrd-sncf-signaling/src/main/kotlin/fr/sncf/osrd/signaling/tvm300/TVM300.kt b/core/kt-osrd-sncf-signaling/src/main/kotlin/fr/sncf/osrd/signaling/tvm300/TVM300.kt index af85bd4dd0b..fdb8c7a563c 100644 --- a/core/kt-osrd-sncf-signaling/src/main/kotlin/fr/sncf/osrd/signaling/tvm300/TVM300.kt +++ b/core/kt-osrd-sncf-signaling/src/main/kotlin/fr/sncf/osrd/signaling/tvm300/TVM300.kt @@ -39,7 +39,12 @@ object TVM300 : SignalingSystemDriver { } override fun isConstraining(signalState: SigState, trainState: SignalingTrainState): Boolean { - return trainState.speed <= maxSpeedForState(signalState) + if (signalState.getEnum("aspect").contains("VL")) { + // VL should never be considered constraining, + // it would cause infinite loops in spacing resource generation + return false + } + return trainState.speed > maxSpeedForState(signalState) } override fun checkBlock(reporter: BlockDiagReporter, block: SigBlock) {