diff --git a/VectoCore/VectoCore/Models/Declaration/LACDecisionFactor.cs b/VectoCore/VectoCore/Models/Declaration/LACDecisionFactor.cs index c3319c6c0050a27b36270f4f08008e5c8347b201..bb91fd2e35d28a6dfa59dcca384f4200b60f35aa 100644 --- a/VectoCore/VectoCore/Models/Declaration/LACDecisionFactor.cs +++ b/VectoCore/VectoCore/Models/Declaration/LACDecisionFactor.cs @@ -106,15 +106,21 @@ namespace TUGraz.VectoCore.Models.Declaration "LAC Decision Factor File for Vdrop must consist of at least two lines with numeric values (below file header)"); } - if (table.Columns.Contains("v_drop") && table.Columns.Contains("decision_factor")) { + if (table.Columns.Contains(Fields.VelocityDrop) && table.Columns.Contains(Fields.DecisionFactor)) { Data = table.Rows.Cast<DataRow>() - .ToDictionary(r => r.ParseDouble("v_drop").KMPHtoMeterPerSecond(), - r => r.ParseDouble("decision_factor")); + .ToDictionary(r => r.ParseDouble(Fields.VelocityDrop).KMPHtoMeterPerSecond(), + r => r.ParseDouble(Fields.DecisionFactor)); } else { Data = table.Rows.Cast<DataRow>() .ToDictionary(r => r.ParseDouble(0).KMPHtoMeterPerSecond(), r => r.ParseDouble(1)); } } + + private static class Fields + { + public const string DecisionFactor = "decision_factor"; + public const string VelocityDrop = "v_drop"; + } } private sealed class LACDecisionFactorVTarget : LookupData<MeterPerSecond, double> @@ -154,15 +160,21 @@ namespace TUGraz.VectoCore.Models.Declaration "LAC Decision Factor File for Vtarget must consist of at least two lines with numeric values (below file header)"); } - if (table.Columns.Contains("v_target") && table.Columns.Contains("decision_factor")) { + if (table.Columns.Contains(Fields.TargetVelocity) && table.Columns.Contains(Fields.DecisionFactor)) { Data = table.Rows.Cast<DataRow>() - .ToDictionary(r => r.ParseDouble("v_target").KMPHtoMeterPerSecond(), - r => r.ParseDouble("decision_factor")); + .ToDictionary(r => r.ParseDouble(Fields.TargetVelocity).KMPHtoMeterPerSecond(), + r => r.ParseDouble(Fields.DecisionFactor)); } else { Data = table.Rows.Cast<DataRow>() .ToDictionary(r => r.ParseDouble(0).KMPHtoMeterPerSecond(), r => r.ParseDouble(1)); } } + + private static class Fields + { + public const string TargetVelocity = "v_target"; + public const string DecisionFactor = "decision_factor"; + } } } } \ No newline at end of file diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/Engine/PT1Curve.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/Engine/PT1Curve.cs index c438b892d71cee9298588f6ba1cd07a56032017e..817e5ef2d842c5dccd318c33f82ee6e9d76d8140 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Data/Engine/PT1Curve.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/Engine/PT1Curve.cs @@ -44,14 +44,16 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data.Engine { private List<KeyValuePair<PerSecond, Second>> _entries; + // just for Lookup-inheritance compatibility protected override string ResourceId { get { return null; } } + // just for Lookup-inheritance compatibility protected override string ErrorMessage { - get { throw new NotImplementedException(); } + get { throw new InvalidOperationException(); } } private PT1Curve(DataTable data) @@ -92,10 +94,10 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data.Engine "FullLoadCurve/PT1 must consist of at least two lines with numeric values (below file header)"); } - if (data.Columns.Contains("engine speed") && data.Columns.Contains("PT1")) { + if (data.Columns.Contains(Fields.EngineSpeed) && data.Columns.Contains(Fields.PT1)) { _entries = data.Rows.Cast<DataRow>() - .Select(r => new KeyValuePair<PerSecond, Second>(r.ParseDouble("engine speed").RPMtoRad(), - r.ParseDouble("PT1").SI<Second>())) + .Select(r => new KeyValuePair<PerSecond, Second>(r.ParseDouble(Fields.EngineSpeed).RPMtoRad(), + r.ParseDouble(Fields.PT1).SI<Second>())) .OrderBy(x => x.Key).ToList(); } else { _entries = data.Rows.Cast<DataRow>() @@ -124,5 +126,11 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data.Engine } return pt1; } + + private static class Fields + { + public const string PT1 = "PT1"; + public const string EngineSpeed = "engine speed"; + } } } \ No newline at end of file