diff --git a/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.vecto b/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.vecto index 144ce492de63643e20dc845c4305c3728908d5e9..72969c4dc9d99efeaae341111c35f94f4eaa1e5f 100644 --- a/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.vecto +++ b/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.vecto @@ -1,8 +1,8 @@ { "Header": { - "CreatedBy": "John.Norris@ricardo-aea.com, Rasa.Narkeviciute@ricardo-aea.com, Scott.Hanchett@ricardo-aea.com, Dana.Nurse@ricardo-aea.com, pascal.revereault@ricardo.com, james.baxter@ricardo.com (51e9f02e-c88f-4c25-9798-3f807530e154)", - "Date": "20/07/2015 12:19:33", - "AppVersion": "2.0.4-beta", + "CreatedBy": " ()", + "Date": "17.06.2016 08:12:45", + "AppVersion": "2.2", "FileVersion": 2 }, "Body": { @@ -18,40 +18,7 @@ "AuxiliaryAssembly": "CLASSIC", "AuxiliaryVersion": "CLASSIC", "AdvancedAuxiliaryFilePath": "", - "Aux": [ - { - "ID": "FAN", - "Type": "Fan", - "Path": "<NOFILE>", - "Technology": "" - }, - { - "ID": "STP", - "Type": "Steering pump", - "Path": "<NOFILE>", - "Technology": "" - }, - { - "ID": "AC", - "Type": "HVAC", - "Path": "<NOFILE>", - "Technology": "" - }, - { - "ID": "ES", - "Type": "Electric System", - "Path": "<NOFILE>", - "Technology": "", - "TechList": [] - }, - { - "ID": "PS", - "Type": "Pneumatic System", - "Path": "<NOFILE>", - "Technology": "" - } - ], - "VACC": "Coach.vacc", + "VACC": "Truck.vacc", "EngineOnlyMode": false, "StartStop": { "Enabled": true, diff --git a/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.veng b/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.veng index 13a029772622b9bca036e6b4425af83eee515130..9e3015efdd65dd6ce5e881088f9b073e6506f0e6 100644 --- a/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.veng +++ b/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.veng @@ -1,9 +1,9 @@ { "Header": { - "CreatedBy": "Terry Burns (cdfbee63-58c9-44d5-a649-9903ea7eb6b5)", - "Date": "13/01/2015 08:55:15", - "AppVersion": "2.0.4-beta", - "FileVersion": 2 + "CreatedBy": " ()", + "Date": "17.06.2016 07:48:12", + "AppVersion": "2.2", + "FileVersion": 3 }, "Body": { "SavedInDeclMode": false, @@ -11,15 +11,10 @@ "Displacement": 7700.0, "IdlingSpeed": 600.0, "Inertia": 3.789, - "FullLoadCurves": [ - { - "Path": "12t Delivery Truck.vfld", - "Gears": "0 - 99" - } - ], + "FullLoadCurve": "12t Delivery Truck.vfld", "FuelMap": "12t Delivery Truck.vmap", - "WHTC-Urban": 215.0, - "WHTC-Rural": 202.0, - "WHTC-Motorway": 204.0 + "WHTC-Urban": 0.0, + "WHTC-Rural": 0.0, + "WHTC-Motorway": 0.0 } } \ No newline at end of file diff --git a/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.vgbx b/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.vgbx index 9f1323dd1ec608bc36f203ee926cf9d7c0d7b53a..19b10889a85b6f2ac68bacc0b96d5578ba427c9c 100644 --- a/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.vgbx +++ b/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.vgbx @@ -1,9 +1,9 @@ { "Header": { - "CreatedBy": "Terry Burns (cdfbee63-58c9-44d5-a649-9903ea7eb6b5)", - "Date": "13/01/2015 08:55:19", - "AppVersion": "2.0.4-beta", - "FileVersion": 4 + "CreatedBy": " ()", + "Date": "17.06.2016 08:12:24", + "AppVersion": "2.2", + "FileVersion": 5 }, "Body": { "SavedInDeclMode": false, @@ -19,37 +19,43 @@ "Ratio": 6.75, "LossMap": "Indirect Gear.vtlm", "TCactive": false, - "ShiftPolygon": "-" + "ShiftPolygon": "ShiftPolygons.vgbs", + "FullLoadCurve": "<NOFILE>" }, { "Ratio": 3.6, "LossMap": "Indirect Gear.vtlm", "TCactive": false, - "ShiftPolygon": "-" + "ShiftPolygon": "ShiftPolygons.vgbs", + "FullLoadCurve": "<NOFILE>" }, { "Ratio": 2.13, "LossMap": "Indirect Gear.vtlm", "TCactive": false, - "ShiftPolygon": "-" + "ShiftPolygon": "ShiftPolygons.vgbs", + "FullLoadCurve": "<NOFILE>" }, { "Ratio": 1.39, "LossMap": "Indirect Gear.vtlm", "TCactive": false, - "ShiftPolygon": "-" + "ShiftPolygon": "ShiftPolygons.vgbs", + "FullLoadCurve": "<NOFILE>" }, { "Ratio": 1.0, "LossMap": "Direct Gear.vtlm", "TCactive": false, - "ShiftPolygon": "-" + "ShiftPolygon": "ShiftPolygons.vgbs", + "FullLoadCurve": "<NOFILE>" }, { "Ratio": 0.78, "LossMap": "Indirect Gear.vtlm", "TCactive": false, - "ShiftPolygon": "-" + "ShiftPolygon": "ShiftPolygons.vgbs", + "FullLoadCurve": "<NOFILE>" } ], "TqReserve": 20.0, diff --git a/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.vveh b/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.vveh index 9dbf2131c66aeca5da3a93ef47cae77b902f2fbc..f7d8fe842b220a23478297a34810c54ca378c82d 100644 --- a/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.vveh +++ b/Generic Vehicles/Engineering Mode/12t Delivery Truck/12t Delivery Truck.vveh @@ -1,9 +1,9 @@ { "Header": { - "CreatedBy": "Terry Burns (cdfbee63-58c9-44d5-a649-9903ea7eb6b5)", - "Date": "13/01/2015 08:55:12", - "AppVersion": "2.0.4-beta", - "FileVersion": 5 + "CreatedBy": " ()", + "Date": "17.06.2016 07:50:47", + "AppVersion": "2.2", + "FileVersion": 7 }, "Body": { "SavedInDeclMode": false, @@ -12,11 +12,10 @@ "CurbWeightExtra": 0.0, "Loading": 0.0, "MassMax": 11.9, - "Cd": 0.6, - "CrossSecArea": 8.8, + "CdA": 5.28, "rdyn": 406.9297, "Rim": "15° DC Rims", - "CdCorrMode": "CdOfV", + "CdCorrMode": "Off", "CdCorrFile": "12t Delivery Truck.vcdv", "Retarder": { "Type": "None", @@ -28,16 +27,16 @@ "Axles": [ { "Inertia": 6.0, - "Wheels": "245/70 R 19.5", - "AxleWeightShare": 0.0, + "Wheels": "245/70 R19.5", + "AxleWeightShare": 0.4, "TwinTyres": false, "RRCISO": 0.008343465, "FzISO": 20800.0 }, { "Inertia": 6.0, - "Wheels": "245/70 R 19.5", - "AxleWeightShare": 0.0, + "Wheels": "245/70 R19.5", + "AxleWeightShare": 0.6, "TwinTyres": true, "RRCISO": 0.00943769, "FzISO": 20800.0 diff --git a/VectoCommon/VectoCommon/Exceptions/VectoExceptions.cs b/VectoCommon/VectoCommon/Exceptions/VectoExceptions.cs index d5551f7a00dcc7a93c7c373f04b27eec3f40dbc2..2fa74371cf429282d52cf85fb08df64808186476 100644 --- a/VectoCommon/VectoCommon/Exceptions/VectoExceptions.cs +++ b/VectoCommon/VectoCommon/Exceptions/VectoExceptions.cs @@ -60,7 +60,7 @@ namespace TUGraz.VectoCommon.Exceptions LogManager.Flush(); } - protected VectoException(string message, Exception inner, params object[] args) + public VectoException(string message, Exception inner, params object[] args) : base(string.Format(message, args), inner) { LogManager.Flush(); diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs index ffbf6bab3609efb177172eb292eee4d0d95d78c2..a780e644173c1d02879c364c919533101fc7dcd1 100644 --- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs @@ -209,31 +209,22 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON if (!EmptyOrInvalidFileName(gearboxFile)) { Gearbox = JSONInputDataFactory.ReadGearbox(Path.Combine(BasePath, gearboxFile)); } - } catch (Exception e) { - throw new VectoException("Failed to read Gearbox file.", e); - } - try { + var axleGear = Gearbox as IAxleGearInputData; if (axleGear != null) { AxleGear = axleGear; } - } catch (Exception e) { - throw new VectoException("Failed to read AxleGear file.", e); - } - try { + Engine = JSONInputDataFactory.ReadEngine( Path.Combine(BasePath, Body.GetEx(JsonKeys.Vehicle_EngineFile).Value<string>())); - } catch (Exception e) { - throw new VectoException("Failed to read Engine file.", e); - } - try { + var vehicleFile = Body.GetEx(JsonKeys.Vehicle_VehicleFile).Value<string>(); if (!EmptyOrInvalidFileName(vehicleFile)) { VehicleData = JSONInputDataFactory.ReadJsonVehicle( Path.Combine(BasePath, vehicleFile)); } } catch (Exception e) { - throw new VectoException("Failed to read Vehicle file.", e); + throw new VectoException("Failed to read input data: {0}", e, e.Message); } var retarder = VehicleData as IRetarderInputData; if (retarder != null) { @@ -265,7 +256,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON public virtual IVehicleEngineeringInputData VehicleInputData { - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1065:DoNotRaiseExceptionsInUnexpectedLocations")] + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", + "CA1065:DoNotRaiseExceptionsInUnexpectedLocations")] get { if (VehicleData == null) { @@ -277,7 +269,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON public virtual IGearboxEngineeringInputData GearboxInputData { - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1065:DoNotRaiseExceptionsInUnexpectedLocations")] + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", + "CA1065:DoNotRaiseExceptionsInUnexpectedLocations")] get { if (Gearbox == null) { @@ -289,7 +282,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON public virtual IAxleGearInputData AxleGearInputData { - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1065:DoNotRaiseExceptionsInUnexpectedLocations")] + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", + "CA1065:DoNotRaiseExceptionsInUnexpectedLocations")] get { if (AxleGear == null) { @@ -306,7 +300,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON public virtual IEngineEngineeringInputData EngineInputData { - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1065:DoNotRaiseExceptionsInUnexpectedLocations")] + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", + "CA1065:DoNotRaiseExceptionsInUnexpectedLocations")] get { if (Engine == null) { @@ -333,7 +328,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON public virtual IRetarderInputData RetarderInputData { - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1065:DoNotRaiseExceptionsInUnexpectedLocations")] + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", + "CA1065:DoNotRaiseExceptionsInUnexpectedLocations")] get { if (Retarder == null) { @@ -359,7 +355,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON public virtual IList<ICycleData> Cycles { - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1065:DoNotRaiseExceptionsInUnexpectedLocations")] + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", + "CA1065:DoNotRaiseExceptionsInUnexpectedLocations")] get { var retVal = new List<ICycleData>(); @@ -467,7 +464,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON public virtual DataTable AccelerationCurve { - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1065:DoNotRaiseExceptionsInUnexpectedLocations")] + [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", + "CA1065:DoNotRaiseExceptionsInUnexpectedLocations")] get { var acceleration = Body[JsonKeys.DriverData_AccelerationCurve]; diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdaper/EngineeringDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdaper/EngineeringDataAdapter.cs index a0460d71682da51e88b6f6c875553976729d44b2..0fb97dd10f5cfe7d1bc119e6cbe7bae7fe93d413 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdaper/EngineeringDataAdapter.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdaper/EngineeringDataAdapter.cs @@ -173,12 +173,17 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper WarnEngineeringMode("AuxData"); } - return auxInputData.Auxiliaries.Select(a => new VectoRunData.AuxData { - ID = a.ID, - Technology = a.Technology, - TechList = a.TechList.DefaultIfNull(Enumerable.Empty<string>()).ToArray(), - DemandType = AuxiliaryDemandType.Mapping, - Data = new AuxiliaryData(a, a.ID) //AuxiliaryData.Create(a.DemandMap) + return auxInputData.Auxiliaries.Select(a => { + if (a.DemandMap == null) { + throw new VectoSimulationException("Demand Map for auxiliary {0} {1} required", a.ID, a.Technology); + } + return new VectoRunData.AuxData { + ID = a.ID, + Technology = a.Technology, + TechList = a.TechList.DefaultIfNull(Enumerable.Empty<string>()).ToArray(), + DemandType = AuxiliaryDemandType.Mapping, + Data = new AuxiliaryData(a, a.ID) //AuxiliaryData.Create(a.DemandMap) + }; }).Concat(new VectoRunData.AuxData { ID = "", DemandType = AuxiliaryDemandType.Direct }.ToEnumerable()).ToList(); } diff --git a/VectoCore/VectoCoreTest/Integration/BusAuxiliaries/AuxDemandTest.cs b/VectoCore/VectoCoreTest/Integration/BusAuxiliaries/AuxDemandTest.cs index 443e5aa264ced4cbc042401dfa5b0aa6d276da29..20daafe9d14d2732160336147022e983662333c6 100644 --- a/VectoCore/VectoCoreTest/Integration/BusAuxiliaries/AuxDemandTest.cs +++ b/VectoCore/VectoCoreTest/Integration/BusAuxiliaries/AuxDemandTest.cs @@ -86,7 +86,7 @@ namespace TUGraz.VectoCore.Tests.Integration.BusAuxiliaries var torque = busAux.PowerDemand(0.SI<Second>(), 1.SI<Second>(), engineDrivelinePower / engineSpeed, (internalPower * 1000).SI<Watt>() / engineSpeed, engineSpeed); Assert.AreEqual(6086.9321, (torque * engineSpeed).Value(), 1e-3); - busAux.CommitSimulationStep(modalData); + busAux.DoWriteModalResults(modalData); } Assert.AreEqual(79.303, ((SI)modalData[ModalResultField.AA_TotalCycleFC_Grams]).Value(), 0.0001); @@ -98,7 +98,7 @@ namespace TUGraz.VectoCore.Tests.Integration.BusAuxiliaries var torque = busAux.PowerDemand(0.SI<Second>(), 1.SI<Second>(), engineDrivelinePower / engineSpeed, (internalPower * 1000).SI<Watt>() / engineSpeed, engineSpeed); Assert.AreEqual(8954.1396, (torque * engineSpeed).Value(), 1e-3); - busAux.CommitSimulationStep(modalData); + busAux.DoWriteModalResults(modalData); } Assert.AreEqual(82.5783, ((SI)modalData[ModalResultField.AA_TotalCycleFC_Grams]).Value(), 0.0001); @@ -110,7 +110,7 @@ namespace TUGraz.VectoCore.Tests.Integration.BusAuxiliaries var torque = busAux.PowerDemand(0.SI<Second>(), 1.SI<Second>(), engineDrivelinePower / engineSpeed, (internalPower * 1000).SI<Watt>() / engineSpeed, engineSpeed); Assert.AreEqual(6086.9321, (torque * engineSpeed).Value(), 1e-3); - busAux.CommitSimulationStep(modalData); + busAux.DoWriteModalResults(modalData); } Assert.AreEqual(162.4654, ((SI)modalData[ModalResultField.AA_TotalCycleFC_Grams]).Value(), 0.0001);