Skip to content

Commit

Permalink
core, editoast: rename rolling stock to physics consist
Browse files Browse the repository at this point in the history
Now that consists are supported instead of a single traction engine
(named rolling stock in the entire application), it's reasonable
to rename all along up to `core`.

Signed-off-by: Jean SIMARD <[email protected]>
  • Loading branch information
woshilapin committed Jan 7, 2025
1 parent bba0fcd commit a4190de
Show file tree
Hide file tree
Showing 9 changed files with 29 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,17 @@ import fr.sncf.osrd.train.RollingStock.*

/** Parse the rolling stock model into something the backend can work with */
fun parseRawRollingStock(
rawRollingStock: PhysicsRollingStockModel,
rawPhysicsConsist: PhysicsConsistModel,
loadingGaugeType: RJSLoadingGaugeType = RJSLoadingGaugeType.G1,
rollingStockSupportedSignalingSystems: List<String> = listOf(),
): RollingStock {
// Parse effort_curves
val rawModes = rawRollingStock.effortCurves.modes
val rawModes = rawPhysicsConsist.effortCurves.modes

if (!rawModes.containsKey(rawRollingStock.effortCurves.defaultMode))
if (!rawModes.containsKey(rawPhysicsConsist.effortCurves.defaultMode))
throw OSRDError.newInvalidRollingStockError(
ErrorType.InvalidRollingStockDefaultModeNotFound,
rawRollingStock.effortCurves.defaultMode
rawPhysicsConsist.effortCurves.defaultMode
)

// Parse tractive effort curves modes
Expand All @@ -29,28 +29,28 @@ fun parseRawRollingStock(
modes[key] = parseModeEffortCurves(value, "effort_curves.modes.$key")
}

val rollingResistance = parseRollingResistance(rawRollingStock.rollingResistance)
val rollingResistance = parseRollingResistance(rawPhysicsConsist.rollingResistance)

return RollingStock(
"placeholder_name",
rawRollingStock.length.distance.meters,
rawRollingStock.mass.toDouble(),
rawRollingStock.inertiaCoefficient,
rawPhysicsConsist.length.distance.meters,
rawPhysicsConsist.mass.toDouble(),
rawPhysicsConsist.inertiaCoefficient,
rollingResistance.A,
rollingResistance.B,
rollingResistance.C,
rawRollingStock.maxSpeed,
rawRollingStock.startupTime.seconds,
rawRollingStock.startupAcceleration,
rawRollingStock.comfortAcceleration,
rawRollingStock.constGamma,
rawPhysicsConsist.maxSpeed,
rawPhysicsConsist.startupTime.seconds,
rawPhysicsConsist.startupAcceleration,
rawPhysicsConsist.comfortAcceleration,
rawPhysicsConsist.constGamma,
loadingGaugeType,
modes,
rawRollingStock.effortCurves.defaultMode,
rawRollingStock.basePowerClass,
rawRollingStock.powerRestrictions,
rawRollingStock.electricalPowerStartupTime?.seconds,
rawRollingStock.raisePantographTime?.seconds,
rawPhysicsConsist.effortCurves.defaultMode,
rawPhysicsConsist.basePowerClass,
rawPhysicsConsist.powerRestrictions,
rawPhysicsConsist.electricalPowerStartupTime?.seconds,
rawPhysicsConsist.raisePantographTime?.seconds,
rollingStockSupportedSignalingSystems.toTypedArray(),
)
}
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ class SimulationEndpoint(
electricalProfileSetManager.getProfileMap(request.electricalProfileSetId)

// Parse rolling stocks
val rollingStock = parseRawRollingStock(request.rollingStock)
val rollingStock = parseRawRollingStock(request.physicsConsist)

// Parse path
val chunkPath = makeChunkPath(infra.rawInfra, request.path.trackSectionRanges)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ class SimulationRequest(
@Json(name = "speed_limit_tag") val speedLimitTag: String?,
@Json(name = "power_restrictions") val powerRestrictions: List<SimulationPowerRestrictionItem>,
val options: TrainScheduleOptions,
@Json(name = "rolling_stock") val rollingStock: PhysicsRollingStockModel,
@Json(name = "physics_consist") val physicsConsist: PhysicsConsistModel,
@Json(name = "electrical_profile_set_id") val electricalProfileSetId: String?
) {
companion object {
Expand All @@ -57,7 +57,7 @@ enum class AllowanceDistribution {
}
}

class PhysicsRollingStockModel(
class PhysicsConsistModel(
@Json(name = "effort_curves") val effortCurves: EffortCurve,
@Json(name = "base_power_class") val basePowerClass: String?,
val length: Length<RollingStock>,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ class STDCMEndpointV2(private val infraManager: InfraManager) : Take {
buildTemporarySpeedLimitManager(infra, request.temporarySpeedLimits)
val rollingStock =
parseRawRollingStock(
request.rollingStock,
request.physicsConsist,
request.rollingStockLoadingGauge,
request.rollingStockSupportedSignalingSystems
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import fr.sncf.osrd.api.api_v2.WorkSchedule
import fr.sncf.osrd.api.api_v2.conflicts.TrainRequirementsRequest
import fr.sncf.osrd.api.api_v2.standalone_sim.MarginValue
import fr.sncf.osrd.api.api_v2.standalone_sim.MarginValueAdapter
import fr.sncf.osrd.api.api_v2.standalone_sim.PhysicsRollingStockModel
import fr.sncf.osrd.api.api_v2.standalone_sim.PhysicsConsistModel
import fr.sncf.osrd.railjson.schema.rollingstock.Comfort
import fr.sncf.osrd.railjson.schema.rollingstock.RJSLoadingGaugeType
import fr.sncf.osrd.railjson.schema.rollingstock.RJSRollingResistance
Expand All @@ -25,7 +25,7 @@ class STDCMRequestV2(
@Json(name = "expected_version") var expectedVersion: String,

// Rolling stock
@Json(name = "rolling_stock") val rollingStock: PhysicsRollingStockModel,
@Json(name = "physics_consist") val physicsConsist: PhysicsConsistModel,

// Pathfinding inputs
/// List of waypoints. Each waypoint is a list of track offsets
Expand Down
2 changes: 1 addition & 1 deletion editoast/src/core/simulation.rs
Original file line number Diff line number Diff line change
Expand Up @@ -443,7 +443,7 @@ pub struct SimulationRequest {
pub speed_limit_tag: Option<String>,
pub power_restrictions: Vec<SimulationPowerRestrictionItem>,
pub options: TrainScheduleOptions,
pub rolling_stock: PhysicsConsist,
pub physics_consist: PhysicsConsist,
pub electrical_profile_set_id: Option<i64>,
}

Expand Down
2 changes: 1 addition & 1 deletion editoast/src/core/stdcm.rs
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ pub struct Request {
/// The comfort of the train
pub comfort: Comfort,
pub speed_limit_tag: Option<String>,
pub rolling_stock: PhysicsConsist,
pub physics_consist: PhysicsConsist,

// STDCM search parameters
pub trains_requirements: HashMap<i64, TrainRequirements>,
Expand Down
2 changes: 1 addition & 1 deletion editoast/src/views/timetable/stdcm.rs
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@ async fn stdcm(
rolling_stock_supported_signaling_systems: rolling_stock
.supported_signaling_systems
.clone(),
rolling_stock: PhysicsConsistParameters {
physics_consist: PhysicsConsistParameters {
max_speed: stdcm_request.max_speed,
total_length: stdcm_request.total_length,
total_mass: stdcm_request.total_mass,
Expand Down
3 changes: 2 additions & 1 deletion editoast/src/views/train_schedule.rs
Original file line number Diff line number Diff line change
Expand Up @@ -586,7 +586,8 @@ fn build_simulation_request(
speed_limit_tag: train_schedule.speed_limit_tag.clone(),
power_restrictions,
options: train_schedule.options.clone(),
rolling_stock: PhysicsConsistParameters::with_traction_engine(rolling_stock.into()).into(),
physics_consist: PhysicsConsistParameters::with_traction_engine(rolling_stock.into())
.into(),
electrical_profile_set_id,
}
}
Expand Down

0 comments on commit a4190de

Please sign in to comment.