From 1bdb452a8e263d4ff967957759e1920e502319ee Mon Sep 17 00:00:00 2001 From: Eloi Charpentier Date: Fri, 24 Jan 2025 13:02:24 +0100 Subject: [PATCH] core: stdcm: explicitely output route path --- .../src/main/kotlin/fr/sncf/osrd/utils/Extensions.kt | 11 +++++++++++ .../fr/sncf/osrd/api/api_v2/stdcm/STDCMEndpointV2.kt | 4 ++-- .../src/main/kotlin/fr/sncf/osrd/stdcm/STDCMResult.kt | 2 ++ .../fr/sncf/osrd/stdcm/graph/STDCMPostProcessing.kt | 1 + core/src/test/kotlin/fr/sncf/osrd/utils/Helpers.kt | 7 ------- 5 files changed, 16 insertions(+), 9 deletions(-) create mode 100644 core/kt-osrd-utils/src/main/kotlin/fr/sncf/osrd/utils/Extensions.kt diff --git a/core/kt-osrd-utils/src/main/kotlin/fr/sncf/osrd/utils/Extensions.kt b/core/kt-osrd-utils/src/main/kotlin/fr/sncf/osrd/utils/Extensions.kt new file mode 100644 index 00000000000..3bc2cd5db4b --- /dev/null +++ b/core/kt-osrd-utils/src/main/kotlin/fr/sncf/osrd/utils/Extensions.kt @@ -0,0 +1,11 @@ +package fr.sncf.osrd.utils + +import fr.sncf.osrd.utils.indexing.StaticIdx +import fr.sncf.osrd.utils.indexing.StaticIdxList +import fr.sncf.osrd.utils.indexing.mutableStaticIdxArrayListOf + +fun List>.toIdxList(): StaticIdxList { + val res = mutableStaticIdxArrayListOf() + res.addAll(this) + return res +} diff --git a/core/src/main/kotlin/fr/sncf/osrd/api/api_v2/stdcm/STDCMEndpointV2.kt b/core/src/main/kotlin/fr/sncf/osrd/api/api_v2/stdcm/STDCMEndpointV2.kt index 626abc5e598..09789058c27 100644 --- a/core/src/main/kotlin/fr/sncf/osrd/api/api_v2/stdcm/STDCMEndpointV2.kt +++ b/core/src/main/kotlin/fr/sncf/osrd/api/api_v2/stdcm/STDCMEndpointV2.kt @@ -25,7 +25,6 @@ import fr.sncf.osrd.sim_infra.api.Block import fr.sncf.osrd.sim_infra.api.DirTrackChunkId import fr.sncf.osrd.sim_infra.api.SpeedLimitProperty import fr.sncf.osrd.sim_infra.impl.TemporarySpeedLimitManager -import fr.sncf.osrd.sim_infra.utils.chunksToRoutes import fr.sncf.osrd.standalone_sim.makeElectricalProfiles import fr.sncf.osrd.standalone_sim.makeMRSPResponse import fr.sncf.osrd.standalone_sim.result.ElectrificationRange @@ -42,6 +41,7 @@ import fr.sncf.osrd.utils.Direction import fr.sncf.osrd.utils.DistanceRangeMap import fr.sncf.osrd.utils.DistanceRangeMap.RangeMapEntry import fr.sncf.osrd.utils.distanceRangeMapOf +import fr.sncf.osrd.utils.toIdxList import fr.sncf.osrd.utils.units.* import io.opentelemetry.api.trace.SpanKind import io.opentelemetry.instrumentation.annotations.WithSpan @@ -177,7 +177,7 @@ class STDCMEndpointV2(private val infraManager: InfraManager) : Take { path.trainPath, path.chunkPath, infra, - infra.blockInfra.chunksToRoutes(infra.rawInfra, path.chunkPath.chunks), + path.routePath.toIdxList(), rollingStock, parseSimulationScheduleItems(path.stopResults), listOf(), diff --git a/core/src/main/kotlin/fr/sncf/osrd/stdcm/STDCMResult.kt b/core/src/main/kotlin/fr/sncf/osrd/stdcm/STDCMResult.kt index 43a599db6ac..e6feb26423a 100644 --- a/core/src/main/kotlin/fr/sncf/osrd/stdcm/STDCMResult.kt +++ b/core/src/main/kotlin/fr/sncf/osrd/stdcm/STDCMResult.kt @@ -5,6 +5,7 @@ import fr.sncf.osrd.envelope_sim.PhysicsPath import fr.sncf.osrd.graph.PathfindingResultId import fr.sncf.osrd.sim_infra.api.Block import fr.sncf.osrd.sim_infra.api.PathProperties +import fr.sncf.osrd.sim_infra.api.RouteId import fr.sncf.osrd.sim_infra.impl.ChunkPath import fr.sncf.osrd.train.TrainStop @@ -18,6 +19,7 @@ data class STDCMResult( val trainPath: PathProperties, val chunkPath: ChunkPath, val physicsPath: PhysicsPath, + val routePath: List, val departureTime: Double, val stopResults: List ) diff --git a/core/src/main/kotlin/fr/sncf/osrd/stdcm/graph/STDCMPostProcessing.kt b/core/src/main/kotlin/fr/sncf/osrd/stdcm/graph/STDCMPostProcessing.kt index a186e53dcd5..84832f9605d 100644 --- a/core/src/main/kotlin/fr/sncf/osrd/stdcm/graph/STDCMPostProcessing.kt +++ b/core/src/main/kotlin/fr/sncf/osrd/stdcm/graph/STDCMPostProcessing.kt @@ -98,6 +98,7 @@ class STDCMPostProcessing(private val graph: STDCMGraph) { trainPath, chunkPath, physicsPath, + routes, updatedTimeData.departureTime, // Allow us to display OP, a hack that will be fixed diff --git a/core/src/test/kotlin/fr/sncf/osrd/utils/Helpers.kt b/core/src/test/kotlin/fr/sncf/osrd/utils/Helpers.kt index de120cb3f3f..5045f1c3d46 100644 --- a/core/src/test/kotlin/fr/sncf/osrd/utils/Helpers.kt +++ b/core/src/test/kotlin/fr/sncf/osrd/utils/Helpers.kt @@ -26,7 +26,6 @@ import fr.sncf.osrd.utils.indexing.MutableDirStaticIdxArrayList import fr.sncf.osrd.utils.indexing.MutableStaticIdxArrayList import fr.sncf.osrd.utils.indexing.StaticIdx import fr.sncf.osrd.utils.indexing.StaticIdxList -import fr.sncf.osrd.utils.indexing.mutableStaticIdxArrayListOf import fr.sncf.osrd.utils.moshi.MoshiUtils import fr.sncf.osrd.utils.units.Offset import java.io.File @@ -188,9 +187,3 @@ object Helpers { return buildChunkPath(infra, chunks, startOffset!!, endOffset!!) } } - -fun List>.toIdxList(): StaticIdxList { - val res = mutableStaticIdxArrayListOf() - res.addAll(this) - return res -}