diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs index 15f8883ed2ae995fa9fd4e8ee5d5670621a33932..46065fe6837898415cb2c64c1e145161331d1f40 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs @@ -141,15 +141,15 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter { TransmissionLossMap axleLossMap; if (data.LossMap == null && useEfficiencyFallback) { - axleLossMap = TransmissionLossMapReader.Create(data.Efficiency, data.Ratio, "AxleGear"); + axleLossMap = TransmissionLossMapReader.Create(data.Efficiency, data.Ratio, "Axlegear"); } else { if (data.LossMap == null) { - throw new Exception("LossMap for AxleGear is missing."); + throw new InvalidFileFormatException("LossMap for Axlegear is missing."); } - axleLossMap = TransmissionLossMapReader.Create(data.LossMap, data.Ratio, "AxleGear"); + axleLossMap = TransmissionLossMapReader.Create(data.LossMap, data.Ratio, "Axlegear"); } if (axleLossMap == null) { - throw new Exception("LossMap for AxleGear is missing."); + throw new InvalidFileFormatException("LossMap for Axlegear is missing."); } return new AxleGearData { diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/AccelerationCurve.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/AccelerationCurve.cs index ad52bffd2940dc50b46252ddd1edfd6397fdd9bb..35a68b857d43b58fc169edb8e58f22740f973b2a 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Data/AccelerationCurve.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/AccelerationCurve.cs @@ -31,6 +31,7 @@ using System; using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; using System.Diagnostics; using System.Linq; using TUGraz.VectoCommon.Utils; @@ -100,7 +101,10 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data [DebuggerDisplay("Acceleration: {Acceleration}, Deceleration: {Deceleration}")] public class AccelerationEntry { + [Required, SIRange(0.3, 10)] public MeterPerSquareSecond Acceleration { get; set; } + + [Required, SIRange(-0.5, -10)] public MeterPerSquareSecond Deceleration { get; set; } } diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/VehicleData.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/VehicleData.cs index 8d484b39a51d16d93be0be34fd71fcc74330a512..9f2c83b285f95fda4cb9e55b14cd71896493d85f 100644 --- a/VectoCore/VectoCore/Models/SimulationComponent/Data/VehicleData.cs +++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/VehicleData.cs @@ -205,12 +205,12 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data } // vvvvvvv these checks apply only for declaration mode! vvvvvv - if (vehicleData.AxleConfiguration.NumAxles() != vehicleData.AxleData.Count) { - return - new ValidationResult( - string.Format("For a {0} type vehicle exactly {1} number of axles have to pe specified. Found {2}", - vehicleData.AxleConfiguration.GetName(), vehicleData.AxleConfiguration.NumAxles(), vehicleData.AxleData.Count)); - } + //if (vehicleData.AxleConfiguration.NumAxles() != vehicleData.AxleData.Count) { + // return + // new ValidationResult( + // string.Format("For a {0} type vehicle exactly {1} number of axles have to pe specified. Found {2}", + // vehicleData.AxleConfiguration.GetName(), vehicleData.AxleConfiguration.NumAxles(), vehicleData.AxleData.Count)); + //} if (vehicleData.TotalVehicleWeight() > gvwTotal) { return new ValidationResult( diff --git a/VectoCore/VectoCoreTest/FileIO/JsonTest.cs b/VectoCore/VectoCoreTest/FileIO/JsonTest.cs index 61d734158f9615f00e41a905131f4325958f157e..00fe6de361ed1f4e1f65e2cd758754a561f63e0e 100644 --- a/VectoCore/VectoCoreTest/FileIO/JsonTest.cs +++ b/VectoCore/VectoCoreTest/FileIO/JsonTest.cs @@ -94,8 +94,8 @@ namespace TUGraz.VectoCore.Tests.FileIO var json = (JObject)JToken.ReadFrom(new JsonTextReader(File.OpenText(TestJobFile))); ((JObject)json["Body"]).Property("Cycles").Remove(); - AssertHelper.Exception<InvalidFileFormatException>( - () => { var tmp = new JSONInputDataV2(json, TestJobFile).Cycles; }, "Key Cycles not found"); + var tmp = new JSONInputDataV2(json, TestJobFile).Cycles; + Assert.AreEqual(0, tmp.Count); } [TestMethod] @@ -115,10 +115,9 @@ namespace TUGraz.VectoCore.Tests.FileIO var json = (JObject)JToken.ReadFrom(new JsonTextReader(File.OpenText(TestJobFile))); ((JObject)json["Body"]).Property("VACC").Remove(); - AssertHelper.Exception<VectoException>(() => { - IEngineeringInputDataProvider input = new JSONInputDataV2(json, TestJobFile); - var tmp = input.DriverInputData.AccelerationCurve; - }, "AccelerationCurve (VACC) required"); + IEngineeringInputDataProvider input = new JSONInputDataV2(json, TestJobFile); + var tmp = input.DriverInputData.AccelerationCurve; + Assert.IsNull(tmp); } [TestMethod] diff --git a/VectoCore/VectoCoreTest/Integration/ATPowerTrain.cs b/VectoCore/VectoCoreTest/Integration/ATPowerTrain.cs index cb5971d3e6210eaa1d152a60bdbf414c5c420204..b53a86c0bc97f8ae68f698c3e7e6560cb0d6eba5 100644 --- a/VectoCore/VectoCoreTest/Integration/ATPowerTrain.cs +++ b/VectoCore/VectoCoreTest/Integration/ATPowerTrain.cs @@ -175,7 +175,7 @@ namespace TUGraz.VectoCore.Tests.Integration AccelerationCurve = AccelerationCurveReader.ReadFromFile(accelerationFile), LookAheadCoasting = new DriverData.LACData { Enabled = true, - //MinSpeed = 50.KMPHtoMeterPerSecond(), + MinSpeed = 50.KMPHtoMeterPerSecond(), //Deceleration = -0.5.SI<MeterPerSquareSecond>() LookAheadDistanceFactor = DeclarationData.Driver.LookAhead.LookAheadDistanceFactor, LookAheadDecisionFactor = new LACDecisionFactor() diff --git a/VectoCore/VectoCoreTest/Integration/CoachAdvancedAuxPowertrain.cs b/VectoCore/VectoCoreTest/Integration/CoachAdvancedAuxPowertrain.cs index 29e2aa7d5cabf7cd2b9a2dab8f9f477ae02f27c4..3018ddcc37b1068f3175d9f4cb4141a43996d7be 100644 --- a/VectoCore/VectoCoreTest/Integration/CoachAdvancedAuxPowertrain.cs +++ b/VectoCore/VectoCoreTest/Integration/CoachAdvancedAuxPowertrain.cs @@ -193,7 +193,7 @@ namespace TUGraz.VectoCore.Tests.Integration AccelerationCurve = AccelerationCurveReader.ReadFromFile(accelerationFile), LookAheadCoasting = new DriverData.LACData { Enabled = true, - //MinSpeed = 50.KMPHtoMeterPerSecond(), + MinSpeed = 50.KMPHtoMeterPerSecond(), //Deceleration = -0.5.SI<MeterPerSquareSecond>() LookAheadDistanceFactor = DeclarationData.Driver.LookAhead.LookAheadDistanceFactor, LookAheadDecisionFactor = new LACDecisionFactor() diff --git a/VectoCore/VectoCoreTest/Integration/CoachPowerTrain.cs b/VectoCore/VectoCoreTest/Integration/CoachPowerTrain.cs index 5c4738dfb0e3e13021ec05da297df9e5342a0fd0..549d9d70cb022f715673b560d3b1e6265568a0f6 100644 --- a/VectoCore/VectoCoreTest/Integration/CoachPowerTrain.cs +++ b/VectoCore/VectoCoreTest/Integration/CoachPowerTrain.cs @@ -196,7 +196,7 @@ namespace TUGraz.VectoCore.Tests.Integration AccelerationCurve = AccelerationCurveReader.ReadFromFile(accelerationFile), LookAheadCoasting = new DriverData.LACData { Enabled = true, - //MinSpeed = 50.KMPHtoMeterPerSecond(), + MinSpeed = 50.KMPHtoMeterPerSecond(), //Deceleration = -0.5.SI<MeterPerSquareSecond>() LookAheadDistanceFactor = DeclarationData.Driver.LookAhead.LookAheadDistanceFactor, LookAheadDecisionFactor = new LACDecisionFactor() diff --git a/VectoCore/VectoCoreTest/Integration/Truck40tPowerTrain.cs b/VectoCore/VectoCoreTest/Integration/Truck40tPowerTrain.cs index c9802f412b3ba5d4eb9a49547d4b16a3ca8fa052..10a8ec888a00f89542499485920945f1a43a3d18 100644 --- a/VectoCore/VectoCoreTest/Integration/Truck40tPowerTrain.cs +++ b/VectoCore/VectoCoreTest/Integration/Truck40tPowerTrain.cs @@ -230,7 +230,7 @@ namespace TUGraz.VectoCore.Tests.Integration AccelerationCurve = AccelerationCurveReader.ReadFromFile(accelerationFile), LookAheadCoasting = new DriverData.LACData { Enabled = true, - //MinSpeed = 50.KMPHtoMeterPerSecond(), + MinSpeed = 50.KMPHtoMeterPerSecond(), //Deceleration = -0.5.SI<MeterPerSquareSecond>(), LookAheadDistanceFactor = DeclarationData.Driver.LookAhead.LookAheadDistanceFactor, LookAheadDecisionFactor = new LACDecisionFactor() diff --git a/VectoCore/VectoCoreTest/Models/SimulationComponent/ATGearboxTest.cs b/VectoCore/VectoCoreTest/Models/SimulationComponent/ATGearboxTest.cs index 8f62fa8781c58895e69be14ce963eb9e57726f2c..e46ffa316d80812ba9b2c27e985b445fb4850db8 100644 --- a/VectoCore/VectoCoreTest/Models/SimulationComponent/ATGearboxTest.cs +++ b/VectoCore/VectoCoreTest/Models/SimulationComponent/ATGearboxTest.cs @@ -27,10 +27,10 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent TestCase(5, 600, 1), TestCase(15, 100, 3), TestCase(15, 300, 3), - TestCase(15, 600, 2), + TestCase(15, 600, 3), TestCase(40, 100, 6), - TestCase(40, 300, 5), - TestCase(40, 600, 4), + TestCase(40, 300, 6), + TestCase(40, 600, 6), TestCase(70, 100, 6), TestCase(70, 300, 6), TestCase(70, 600, 6), diff --git a/VectoCore/VectoCoreTest/TestData/Components/AT_GBX/GearboxPowerSplit.vgbx b/VectoCore/VectoCoreTest/TestData/Components/AT_GBX/GearboxPowerSplit.vgbx index c9f9715f9027e5bf754bbf7a9862c4c389dc6386..e6667e5d17fb988d41a51d14f2f1f4bc48a7220f 100644 --- a/VectoCore/VectoCoreTest/TestData/Components/AT_GBX/GearboxPowerSplit.vgbx +++ b/VectoCore/VectoCoreTest/TestData/Components/AT_GBX/GearboxPowerSplit.vgbx @@ -18,19 +18,19 @@ { "Ratio": 1.35, "Efficiency": "0.98", - "ShiftPolygon": "<NOFILE>", + "ShiftPolygon": "AT-Shift.vgbs", "FullLoadCurve": "<NOFILE>" }, { "Ratio": 1.0, "Efficiency": "0.98", - "ShiftPolygon": "<NOFILE>", + "ShiftPolygon": "AT-Shift.vgbs", "FullLoadCurve": "<NOFILE>" }, { "Ratio": 0.73, "Efficiency": "0.98", - "ShiftPolygon": "<NOFILE>", + "ShiftPolygon": "AT-Shift.vgbs", "FullLoadCurve": "<NOFILE>" }, ], @@ -45,6 +45,7 @@ "TorqueConverter": { "Enabled": true, "File": "TorqueConverterPowerSplit.vtcc", + "ShiftPolygon": "AT-Shift.vgbs", "RefRPM": 1000.0, "Inertia": 0.0 }, diff --git a/VectoCore/VectoCoreTest/TestData/Components/AT_GBX/GearboxSerialDualTC.vgbx b/VectoCore/VectoCoreTest/TestData/Components/AT_GBX/GearboxSerialDualTC.vgbx index bc75d4a29bb2fc061fb91354db454a26a127bc4a..350c4602373e90054485362db955f09e2a4104a9 100644 --- a/VectoCore/VectoCoreTest/TestData/Components/AT_GBX/GearboxSerialDualTC.vgbx +++ b/VectoCore/VectoCoreTest/TestData/Components/AT_GBX/GearboxSerialDualTC.vgbx @@ -18,31 +18,31 @@ { "Ratio": 4.35, "Efficiency": "0.98", - "ShiftPolygon": "<NOFILE>", + "ShiftPolygon": "AT-Shift.vgbs", "FullLoadCurve": "<NOFILE>" }, { "Ratio": 2.4, "Efficiency": "0.98", - "ShiftPolygon": "<NOFILE>", + "ShiftPolygon": "AT-Shift.vgbs", "FullLoadCurve": "<NOFILE>" }, { "Ratio": 1.8, "Efficiency": "0.98", - "ShiftPolygon": "<NOFILE>", + "ShiftPolygon": "AT-Shift.vgbs", "FullLoadCurve": "<NOFILE>" }, { "Ratio": 1.3, "Efficiency": "0.98", - "ShiftPolygon": "<NOFILE>", + "ShiftPolygon": "AT-Shift.vgbs", "FullLoadCurve": "<NOFILE>" }, { "Ratio": 1.0, "Efficiency": "0.98", - "ShiftPolygon": "<NOFILE>", + "ShiftPolygon": "AT-Shift.vgbs", "FullLoadCurve": "<NOFILE>" } ], @@ -57,6 +57,7 @@ "TorqueConverter": { "Enabled": true, "File": "TorqueConverter.vtcc", + "ShiftPolygon": "AT-Shift.vgbs", "RefRPM": 1000.0, "Inertia": 0.0 },