Skip to content

Commit 68927cd

Browse files
committed
front: fix electrical profiles in csv export
in exportTrainCSV.ts electrical profiles are based on electrificationRanges, which are not the good ones use simulatedTrain.electrical_profiles instead
1 parent 76f971d commit 68927cd

File tree

1 file changed

+31
-12
lines changed

1 file changed

+31
-12
lines changed

front/src/modules/simulationResult/SimulationResultExport/exportTrainCSV.ts

+31-12
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,8 @@ const overloadSteps = (
5959
trainRegime: ReportTrain,
6060
operationalPoints: OperationalPointWithTimeAndSpeed[],
6161
speedLimits: SpeedRanges,
62-
electrificationRanges: ElectrificationRange[]
62+
electrificationRanges: ElectrificationRange[],
63+
electricalProfiles: SimulationResponseSuccess['electrical_profiles']
6364
): PositionSpeedTimeOP[] => {
6465
const speedsAtOps = operationalPoints.map((op) => ({
6566
position: op.position,
@@ -81,24 +82,16 @@ const overloadSteps = (
8182
const speedsAtElectrificationRanges: PositionSpeedTimeOP[] = [];
8283
electrificationRanges.forEach((electrification, idx) => {
8384
const electrificationType = electrification.electrificationUsage.type;
84-
const electricalProfileType = electrification.electrificationUsage.electrical_profile_type;
8585

8686
const electrificationMode =
8787
electrificationType === 'electrification' ? electrification.electrificationUsage.voltage : '';
88-
const electrificationProfile =
89-
electrificationType === 'electrification' &&
90-
electricalProfileType === 'profile' &&
91-
electrification.electrificationUsage.profile
92-
? electrification.electrificationUsage.profile
93-
: '';
9488
const electrificationStart = electrification.start;
9589

9690
speedsAtElectrificationRanges.push({
9791
position: mmToM(electrificationStart),
9892
speed: interpolateValue(trainRegime, electrificationStart, 'speeds'),
9993
electrificationType,
10094
electrificationMode,
101-
electrificationProfile,
10295
time: interpolateValue(trainRegime, electrificationStart, 'times'),
10396
});
10497

@@ -114,7 +107,6 @@ const overloadSteps = (
114107
speed: interpolateValue(trainRegime, electrification.stop + 1, 'speeds'),
115108
electrificationType: '',
116109
electrificationMode: '',
117-
electrificationProfile: '',
118110
time: interpolateValue(trainRegime, electrification.stop + 1, 'times'),
119111
});
120112
}
@@ -126,10 +118,35 @@ const overloadSteps = (
126118
time: trainRegime.times[index],
127119
}));
128120

121+
const formattedElectricalProfiles = electricalProfiles.values.map((value, index) => {
122+
const currentTrainRegime = {
123+
speed: interpolateValue(
124+
trainRegime,
125+
mmToM(electricalProfiles.boundaries[index - 1]) || 0,
126+
'speeds'
127+
),
128+
position: mmToM(electricalProfiles.boundaries[index - 1]) || 0,
129+
time:
130+
interpolateValue(trainRegime, mmToM(electricalProfiles.boundaries[index - 1]), 'times') ||
131+
0,
132+
};
133+
if (value.electrical_profile_type === 'profile') {
134+
return {
135+
electrificationProfile: value.profile || '',
136+
...currentTrainRegime,
137+
};
138+
}
139+
return {
140+
electrificationProfile: '',
141+
...currentTrainRegime,
142+
};
143+
});
144+
129145
const speedsWithOPsAndSpeedLimits = formattedTrainRegime.concat(
130146
speedsAtOps,
131147
speedsAtSpeedLimitChange,
132-
speedsAtElectrificationRanges
148+
speedsAtElectrificationRanges,
149+
formattedElectricalProfiles
133150
);
134151

135152
return speedsWithOPsAndSpeedLimits.sort((stepA, stepB) => stepA.position - stepB.position);
@@ -211,7 +228,8 @@ export default function exportTrainCSV(
211228
trainRegimeWithAccurateTime,
212229
operationalPoints,
213230
formattedMrsp,
214-
electrificationRanges
231+
electrificationRanges,
232+
simulatedTrain.electrical_profiles
215233
);
216234

217235
const steps = speedsWithOPsAndSpeedLimits.map((speed) => ({
@@ -228,5 +246,6 @@ export default function exportTrainCSV(
228246
electrificationMode: speed.electrificationMode,
229247
electrificationProfile: speed.electrificationProfile,
230248
}));
249+
231250
if (steps) createFakeLinkWithData(train.train_name, spreadDataBetweenSteps(steps));
232251
}

0 commit comments

Comments
 (0)