diff --git a/VECTO/GUI/F_MAINForm.vb b/VECTO/GUI/F_MAINForm.vb index 6f734809040ac730dc015f2a2d5a4b32504679fe..9ed92bfbaf72c05317d97aa5f97380155aa83831 100644 --- a/VECTO/GUI/F_MAINForm.vb +++ b/VECTO/GUI/F_MAINForm.vb @@ -1707,7 +1707,6 @@ lbFound: End Sub Private Sub VectoWorkerV3_OnProgressChanged(sender As Object, e As ProgressChangedEventArgs) - ToolStripProgBarOverall.Value = e.ProgressPercentage Select Case e.UserState.Target Case "ListBox" If e.UserState.GetType().GetProperty("Link") Is Nothing Then @@ -1717,11 +1716,15 @@ lbFound: End If Case "ListBoxWarning" MSGtoForm(tMsgID.Warn, e.UserState.Message, "", "") + Return Case "ListBoxError" MSGtoForm(tMsgID.Err, e.UserState.Message, "", "") + Return Case "Status" Status(e.UserState.Message) End Select + + ToolStripProgBarOverall.Value = e.ProgressPercentage End Sub Private Sub VectoWorkerV3_OnRunWorkerCompleted(sender As Object, e As RunWorkerCompletedEventArgs) diff --git a/VectoCore/Models/Simulation/Data/VectoRunData.cs b/VectoCore/Models/Simulation/Data/VectoRunData.cs index 864912239b1ce49325ae326fce22c5b656c78ab1..501a39e1b258c7b92dbd163fc402db655384820b 100644 --- a/VectoCore/Models/Simulation/Data/VectoRunData.cs +++ b/VectoCore/Models/Simulation/Data/VectoRunData.cs @@ -62,7 +62,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Data [Required, ValidateObject] public IEnumerable<AuxData> Aux { get; internal set; } - [Required, ValidateObject] + [ValidateObject] public string AccelerationLimitingFile { get; internal set; } [Required, ValidateObject] @@ -96,13 +96,13 @@ namespace TUGraz.VectoCore.Models.Simulation.Data public string Technology; - [Required] public string[] TechList; + public string[] TechList; [Required, SIRange(0, 100 * Constants.Kilo)] public Watt PowerDemand; [Required] public AuxiliaryDemandType DemandType; - [Required, ValidateObject] public AuxiliaryData Data; + [ValidateObject] public AuxiliaryData Data; } public class StartStopData @@ -113,7 +113,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Data [Required, SIRange(0, 100)] public Second Delay; } - public ValidationResult ValidateRunData(VectoRunData runData, ValidationContext validationContext) + public static ValidationResult ValidateRunData(VectoRunData runData, ValidationContext validationContext) { var gearboxData = runData.GearboxData; var engineData = runData.EngineData; diff --git a/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs b/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs index c1e3f9038b9c6af53424c6692345227a9cba21d2..48bfc16afc31a6076008a7a0e67ba0c9f993bff2 100644 --- a/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs +++ b/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs @@ -148,8 +148,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl var validationErrors = run.Validate(); if (validationErrors.Any()) { - throw new VectoException("Validation of Run-Data Failed: " + - "\n".Join(validationErrors.Select(r => r.ErrorMessage))); + throw new VectoException("Validation of Run-Data Failed: " + "\n".Join(validationErrors.Select(r => r.ErrorMessage))); } diff --git a/VectoCore/Models/SimulationComponent/Data/AuxiliaryData.cs b/VectoCore/Models/SimulationComponent/Data/AuxiliaryData.cs index b03d805036273a17b96519c588492b0f25f9f071..bbcf8dd0b7441e1681726ee63f4e36eb6ce9fb1b 100644 --- a/VectoCore/Models/SimulationComponent/Data/AuxiliaryData.cs +++ b/VectoCore/Models/SimulationComponent/Data/AuxiliaryData.cs @@ -41,6 +41,7 @@ using TUGraz.VectoCore.Utils; namespace TUGraz.VectoCore.Models.SimulationComponent.Data { + [CustomValidation(typeof(AuxiliaryData), "ValidateAuxMap")] public class AuxiliaryData { [Required, Range(double.Epsilon, 1)] @@ -52,8 +53,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data [Required, Range(double.Epsilon, 1)] public double EfficiencyToEngine { get; set; } - [Required, CustomValidation(typeof(AuxiliaryData), "ValidateAuxMap")] private readonly DelauneyMap _map = - new DelauneyMap(); + [Required] private readonly DelauneyMap _map = new DelauneyMap(); public Watt GetPowerDemand(PerSecond nAuxiliary, Watt powerAuxOut) { @@ -160,7 +160,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data /// <param name="data">The data.</param> /// <param name="context">The validation context.</param> /// <returns></returns> - protected static ValidationResult ValidateAuxMap(AuxiliaryData data, ValidationContext context) + public static ValidationResult ValidateAuxMap(AuxiliaryData data, ValidationContext context) { var xValidationRules = new[] { new RangeAttribute(0, double.MaxValue) }; var yValidationRules = new[] { new RangeAttribute(0, 100.SI().Kilo.Watt.Value()) }; diff --git a/VectoCore/Models/SimulationComponent/Data/RetarderData.cs b/VectoCore/Models/SimulationComponent/Data/RetarderData.cs index 4617f41f6518e66f4732cebaf78e8d3c4fc3cb74..691082f858b3535d39bba10bc2a5936d648cd5d8 100644 --- a/VectoCore/Models/SimulationComponent/Data/RetarderData.cs +++ b/VectoCore/Models/SimulationComponent/Data/RetarderData.cs @@ -29,7 +29,6 @@ * Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology */ -using System.ComponentModel.DataAnnotations; using TUGraz.VectoCore.Utils; namespace TUGraz.VectoCore.Models.SimulationComponent.Data @@ -49,7 +48,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data public RetarderType Type { get; internal set; } - [Required, SIRange(double.Epsilon, double.MaxValue)] + [SIRange(0, double.MaxValue)] public double Ratio { get; internal set; } } } \ No newline at end of file diff --git a/VectoCoreTest/Models/Simulation/LossMapRangeValidationTest.cs b/VectoCoreTest/Models/Simulation/LossMapRangeValidationTest.cs index 2ffbc723100477ef2c733cc241c63049d0a00d81..547e30c56a50d33511c814ab0ff89b9d86e8fd00 100644 --- a/VectoCoreTest/Models/Simulation/LossMapRangeValidationTest.cs +++ b/VectoCoreTest/Models/Simulation/LossMapRangeValidationTest.cs @@ -66,7 +66,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation var runData = new VectoRunData { GearboxData = gearboxData, EngineData = engineData, AxleGearData = axleGearData }; - var result = runData.ValidateRunData(runData, new ValidationContext(runData)); + var result = VectoRunData.ValidateRunData(runData, new ValidationContext(runData)); Assert.IsTrue(ValidationResult.Success == result); Assert.IsFalse(runData.IsValid()); } @@ -95,7 +95,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation var engineData = MockSimulationDataFactory.CreateEngineDataFromFile(EngineFile); var axleGearData = CreateAxleGearData(AxleGearLossMap); var runData = new VectoRunData { GearboxData = gearboxData, EngineData = engineData, AxleGearData = axleGearData }; - var result = runData.ValidateRunData(runData, new ValidationContext(runData)); + var result = VectoRunData.ValidateRunData(runData, new ValidationContext(runData)); Assert.IsFalse(ValidationResult.Success == result); } @@ -108,7 +108,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation var gearboxData = CreateGearboxData(GearboxDirectLoss, GearboxIndirectLoss); var engineData = MockSimulationDataFactory.CreateEngineDataFromFile(EngineFile); var runData = new VectoRunData { GearboxData = gearboxData, EngineData = engineData }; - var result = runData.ValidateRunData(runData, new ValidationContext(runData)); + var result = VectoRunData.ValidateRunData(runData, new ValidationContext(runData)); Assert.IsTrue(ValidationResult.Success == result); Assert.IsFalse(runData.IsValid()); } @@ -123,7 +123,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation var axleGearData = CreateAxleGearData(AxleGearLossMap); var runData = new VectoRunData { EngineData = engineData, AxleGearData = axleGearData }; - var result = runData.ValidateRunData(runData, new ValidationContext(runData)); + var result = VectoRunData.ValidateRunData(runData, new ValidationContext(runData)); Assert.IsTrue(ValidationResult.Success == result); Assert.IsFalse(runData.IsValid()); } diff --git a/VectoCoreTest/TestData/Components/24t Coach.veng b/VectoCoreTest/TestData/Components/24t Coach.veng index d93e66348bbf92fc91f80d7b24ae03ebc3a936e6..2d1fb173be9dd9fc5c919c5c9d29abf045e6a21d 100644 --- a/VectoCoreTest/TestData/Components/24t Coach.veng +++ b/VectoCoreTest/TestData/Components/24t Coach.veng @@ -13,8 +13,8 @@ "Inertia": 3.8, "FullLoadCurve": "24t Coach.vfld", "FuelMap": "24t Coach.vmap", - "WHTC-Urban": 0.0, - "WHTC-Rural": 0.0, - "WHTC-Motorway": 0.0 + "WHTC-Urban": 1.0, + "WHTC-Rural": 1.0, + "WHTC-Motorway": 1.0 } } \ No newline at end of file