Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Commit b3e98b4f authored by Michael KRISPER's avatar Michael KRISPER
Browse files

angulargear: correct exception with efficiency fallback, fullloadcurve: using DistinctBy now

parent 90919c47
No related branches found
No related tags found
No related merge requests found
......@@ -198,7 +198,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
case AngularGearType.SeparateAngularGear:
try {
angularGear.AngularGear.LossMap = TransmissionLossMap.Create(data.LossMap, data.Ratio, "AngularGear");
} catch (InvalidFileFormatException) {
} catch (VectoException) {
if (useEfficiencyFallback)
angularGear.AngularGear.LossMap = TransmissionLossMap.Create(data.Efficiency, data.Ratio, "AngularGear");
else {
......@@ -211,9 +211,12 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
case AngularGearType.LossesIncludedInGearbox:
case AngularGearType.None:
angularGear.AngularGear.Ratio = 1;
// if no angular gear or already included: Create LossMap with 100% efficiency
angularGear.AngularGear.LossMap = TransmissionLossMap.Create(1, angularGear.AngularGear.Ratio,
"Zero Losses AngularGear");
break;
default:
throw new ArgumentOutOfRangeException("data", "Unknown AngularGearType.");
throw new ArgumentOutOfRangeException("data", "Unknown AngularGear Type.");
}
return angularGear;
} catch (Exception e) {
......@@ -236,7 +239,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
var entries =
gearCurve.FullLoadEntries.Concat(engineCurve.FullLoadEntries)
.OrderBy(x => x.EngineSpeed)
.Distinct(new FullLoadEntryEqualityComparer())
.DistinctBy((x, y) => x.EngineSpeed.Value().IsEqual(y.EngineSpeed.Value()))
.Select(x => new FullLoadCurve.FullLoadCurveEntry {
EngineSpeed = x.EngineSpeed,
TorqueFullLoad =
......@@ -251,18 +254,5 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
};
return flc;
}
internal class FullLoadEntryEqualityComparer : IEqualityComparer<FullLoadCurve.FullLoadCurveEntry>
{
public bool Equals(FullLoadCurve.FullLoadCurveEntry x, FullLoadCurve.FullLoadCurveEntry y)
{
return x.EngineSpeed.Value().IsEqual(y.EngineSpeed.Value());
}
public int GetHashCode(FullLoadCurve.FullLoadCurveEntry obj)
{
return obj.EngineSpeed.Value().GetHashCode();
}
}
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment