diff --git a/VectoCore/InputData/FileIO/JSON/JSONEngineData.cs b/VectoCore/InputData/FileIO/JSON/JSONEngineData.cs index ce11e51e74dddc8983c374de3d64e046e428b595..ea62f4d299be43e83ee886f749636b5510394047 100644 --- a/VectoCore/InputData/FileIO/JSON/JSONEngineData.cs +++ b/VectoCore/InputData/FileIO/JSON/JSONEngineData.cs @@ -38,11 +38,6 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON { public JSONEngineDataV3(JObject data, string fileName) : base(data, fileName) {} - public virtual string ModelName - { - get { return Body.GetEx<string>(JsonKeys.Engine_ModelName); } - } - public virtual CubicMeter Displacement { get { return Body.GetEx<double>(JsonKeys.Engine_Displacement).SI().Cubic.Centi.Meter.Cast<CubicMeter>(); } @@ -92,5 +87,40 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON return Body.GetEx<double>(JsonKeys.Engine_WHTC_Urban).SI().Gramm.Per.Kilo.Watt.Hour.Cast<KilogramPerWattSecond>(); } } + + public string Vendor + { + get { return "N/A"; } + } + + public string MakeAndModel + { + get { return Body.GetEx<string>(JsonKeys.Engine_ModelName); } + } + + public string Creator + { + get { return "N/A"; } + } + + public string Date + { + get { return "N/A"; } + } + + public string TypeId + { + get { return "N/A"; } + } + + public string DigestValue + { + get { return "N/A"; } + } + + public IntegrityStatus IntegrityStatus + { + get { return IntegrityStatus.Unknown; } + } } } \ No newline at end of file diff --git a/VectoCore/InputData/FileIO/JSON/JSONGearboxData.cs b/VectoCore/InputData/FileIO/JSON/JSONGearboxData.cs index 963d4b66a759f52cb7f59a165395d87c293a669f..92e4e3121e954496f9edf75e91bb71ebb8e0aee8 100644 --- a/VectoCore/InputData/FileIO/JSON/JSONGearboxData.cs +++ b/VectoCore/InputData/FileIO/JSON/JSONGearboxData.cs @@ -151,9 +151,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON public virtual bool Enabled { - get - { - return false; // TODO @@@ + get { return false; // TODO @@@ } } @@ -190,5 +188,40 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON } #endregion + + public string Vendor + { + get { return "N/A"; } + } + + public string MakeAndModel + { + get { return "N/A"; } + } + + public string Creator + { + get { return "N/A"; } + } + + public string Date + { + get { return "N/A"; } + } + + public string TypeId + { + get { return "N/A"; } + } + + public string DigestValue + { + get { return ""; } + } + + public IntegrityStatus IntegrityStatus + { + get { return IntegrityStatus.Unknown; } + } } } \ No newline at end of file diff --git a/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs b/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs index e974e469d56e4d2797c35e2613db07177779d498..3cc0f03bb882071d6583b90ffd6873288ea17074 100644 --- a/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs +++ b/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs @@ -138,5 +138,40 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON } #endregion + + public string Vendor + { + get { return "N/A"; } + } + + public string MakeAndModel + { + get { return "N/A"; } + } + + public string Creator + { + get { return "N/A"; } + } + + public string Date + { + get { return "N/A"; } + } + + public string TypeId + { + get { return "N/A"; } + } + + public string DigestValue + { + get { return ""; } + } + + public IntegrityStatus IntegrityStatus + { + get { return IntegrityStatus.Unknown; } + } } } \ No newline at end of file diff --git a/VectoCore/InputData/Impl/InputData.cs b/VectoCore/InputData/Impl/InputData.cs index 4838d09d0486f9a3d84d3527d6fa5d183015fb6b..c22f1741cbcc6a14029f3be2d6ca46001a21dfeb 100644 --- a/VectoCore/InputData/Impl/InputData.cs +++ b/VectoCore/InputData/Impl/InputData.cs @@ -62,8 +62,25 @@ namespace TUGraz.VectoCore.InputData.Impl public class AxleInputData : IAxleInputData { + public bool SavedInDeclarationMode + { + get { throw new System.NotImplementedException(); } + } + + public string Vendor { get; internal set; } + public string MakeAndModel { get; internal set; } + public string Creator { get; internal set; } + + public string Date { get; internal set; } + + public string TypeId { get; internal set; } + + public string DigestValue { get; internal set; } + + public IntegrityStatus IntegrityStatus { get; internal set; } + public string Wheels { get; internal set; } public bool TwinTyres { get; internal set; } diff --git a/VectoCore/InputData/InputData.cs b/VectoCore/InputData/InputData.cs index 98aa5bbf671ba4e9876b9dcf527605c3b3ab2398..03b598a80ffe73da8508182de68e01e695580ac8 100644 --- a/VectoCore/InputData/InputData.cs +++ b/VectoCore/InputData/InputData.cs @@ -27,10 +27,27 @@ namespace TUGraz.VectoCore.InputData string JobName { get; } } - public interface IVehicleInputData + public interface IComponentInputData { bool SavedInDeclarationMode { get; } + string Vendor { get; } + + string MakeAndModel { get; } + + string Creator { get; } + + string Date { get; } + + string TypeId { get; } + + string DigestValue { get; } + + IntegrityStatus IntegrityStatus { get; } + } + + public interface IVehicleInputData : IComponentInputData + { /// <summary> /// P036 /// cf. VECTO Input Parameters.xlsx @@ -113,12 +130,8 @@ namespace TUGraz.VectoCore.InputData DataTable CrosswindCorrectionMap { get; } } - public interface IRetarderInputData + public interface IRetarderInputData : IComponentInputData { - bool SavedInDeclarationMode { get; } - - string ModelName { get; } - /// <summary> /// P052 /// cf. VECTO Input Parameters.xlsx @@ -139,10 +152,8 @@ namespace TUGraz.VectoCore.InputData DataTable LossMap { get; } } - public interface IAxleInputData + public interface IAxleInputData : IComponentInputData { - string MakeAndModel { get; } - /// <summary> /// P108 /// cf. VECTO Input Parameters.xlsx @@ -183,16 +194,8 @@ namespace TUGraz.VectoCore.InputData } - public interface IGearboxInputData + public interface IGearboxInputData : IComponentInputData { - bool SavedInDeclarationMode { get; } - - /// <summary> - /// P075 - /// cf. VECTO Input Parameters.xlsx - /// </summary> - string ModelName { get; } - /// <summary> /// P076 /// cf. VECTO Input Parameters.xlsx @@ -304,12 +307,8 @@ namespace TUGraz.VectoCore.InputData bool TorqueConverterActive { get; } } - public interface IAxleGearInputData + public interface IAxleGearInputData : IComponentInputData { - bool SavedInDeclarationMode { get; } - - string ModelName { get; } - /// <summary> /// P078 /// cf. VECTO Input Parameters.xlsx @@ -352,16 +351,8 @@ namespace TUGraz.VectoCore.InputData DataTable TCData { get; } } - public interface IEngineInputData + public interface IEngineInputData : IComponentInputData { - bool SavedInDeclarationMode { get; } - - /// <summary> - /// P059 - /// cf. VECTO Input Parameters.xlsx - /// </summary> - string ModelName { get; } - /// <summary> /// P061 /// cf. VECTO Input Parameters.xlsx diff --git a/VectoCore/InputData/Reader/DataObjectAdaper/AbstractSimulationDataAdapter.cs b/VectoCore/InputData/Reader/DataObjectAdaper/AbstractSimulationDataAdapter.cs index f6a886d2149f454624a65b399afa5a967f9c15c9..d2c7e160d83562bedc8fd902aa10ce7cc2d6ccc0 100644 --- a/VectoCore/InputData/Reader/DataObjectAdaper/AbstractSimulationDataAdapter.cs +++ b/VectoCore/InputData/Reader/DataObjectAdaper/AbstractSimulationDataAdapter.cs @@ -15,7 +15,13 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper { var retVal = new VehicleData { SavedInDeclarationMode = data.SavedInDeclarationMode, - VehicleCategory = data.VehicleCategory, + Vendor = data.Vendor, + MakeAndModel = data.MakeAndModel, + Creator = data.Creator, + Date = data.Date, + TypeId = data.TypeId, + DigestValue = data.DigestValue, + IntegrityStatus = data.IntegrityStatus, AxleConfiguration = data.AxleConfiguration, CurbWeight = data.CurbWeight, //CurbWeigthExtra = data.CurbWeightExtra.SI<Kilogram>(), @@ -35,6 +41,14 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper internal RetarderData SetCommonRetarderData(IRetarderInputData data) { var retarder = new RetarderData { + SavedInDeclarationMode = data.SavedInDeclarationMode, + Vendor = data.Vendor, + MakeAndModel = data.MakeAndModel, + Creator = data.Creator, + Date = data.Date, + TypeId = data.TypeId, + DigestValue = data.DigestValue, + IntegrityStatus = data.IntegrityStatus, Type = data.Type, }; if (retarder.Type == RetarderData.RetarderType.Primary || retarder.Type == RetarderData.RetarderType.Secondary) { @@ -48,7 +62,13 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper { var retVal = new CombustionEngineData { SavedInDeclarationMode = data.SavedInDeclarationMode, - ModelName = data.ModelName, + Vendor = data.Vendor, + MakeAndModel = data.MakeAndModel, + Creator = data.Creator, + Date = data.Date, + TypeId = data.TypeId, + DigestValue = data.DigestValue, + IntegrityStatus = data.IntegrityStatus, Displacement = data.Displacement, IdleSpeed = data.IdleSpeed, ConsumptionMap = FuelConsumptionMap.Create(data.FuelConsumptionMap), @@ -63,16 +83,30 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper { return new GearboxData { SavedInDeclarationMode = data.SavedInDeclarationMode, - ModelName = data.ModelName, + Vendor = data.Vendor, + MakeAndModel = data.MakeAndModel, + Creator = data.Creator, + Date = data.Date, + TypeId = data.TypeId, + DigestValue = data.DigestValue, + IntegrityStatus = data.IntegrityStatus, Type = data.Type }; } - internal AxleGearData CreateAxleGearData(IAxleGearInputData axleGear) + internal AxleGearData CreateAxleGearData(IAxleGearInputData data) { - var axleLossMap = TransmissionLossMap.Create(axleGear.LossMap, axleGear.Ratio, "AxleGear"); + var axleLossMap = TransmissionLossMap.Create(data.LossMap, data.Ratio, "AxleGear"); return new AxleGearData() { - AxleGear = new GearData() { LossMap = axleLossMap, Ratio = axleGear.Ratio, TorqueConverterActive = false } + SavedInDeclarationMode = data.SavedInDeclarationMode, + Vendor = data.Vendor, + MakeAndModel = data.MakeAndModel, + Creator = data.Creator, + Date = data.Date, + TypeId = data.TypeId, + DigestValue = data.DigestValue, + IntegrityStatus = data.IntegrityStatus, + AxleGear = new GearData() { LossMap = axleLossMap, Ratio = data.Ratio, TorqueConverterActive = false } }; } diff --git a/VectoCore/InputData/Reader/DataObjectAdaper/DeclarationDataAdapter.cs b/VectoCore/InputData/Reader/DataObjectAdaper/DeclarationDataAdapter.cs index b5514bf95cd3f4ce9517c8b8f711b7475f56be00..a6c41182bef29417e244ebb913bec03b61c1d381 100644 --- a/VectoCore/InputData/Reader/DataObjectAdaper/DeclarationDataAdapter.cs +++ b/VectoCore/InputData/Reader/DataObjectAdaper/DeclarationDataAdapter.cs @@ -95,6 +95,8 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper for (var i = 0; i < mission.AxleWeightDistribution.Length; i++) { var axleInput = axles[i]; var axle = new Axle { + WheelsDimension = axleInput.Wheels, + AxleType = axleInput.AxleType, AxleWeightShare = mission.AxleWeightDistribution[i], TwinTyres = axleInput.TwinTyres, RollResistanceCoefficient = axleInput.RollResistanceCoefficient, @@ -191,7 +193,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper var retVal = new List<VectoRunData.AuxData>(); foreach (var auxData in auxInputData.Auxiliaries) { var aux = new VectoRunData.AuxData { DemandType = AuxiliaryDemandType.Constant }; - + aux.Technology = auxData.Technology; switch (AuxiliaryTypeHelper.Parse(auxData.Type)) { case AuxiliaryType.Fan: aux.PowerDemand = DeclarationData.Fan.Lookup(mission, auxData.Technology); @@ -212,6 +214,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper case AuxiliaryType.ElectricSystem: aux.PowerDemand = DeclarationData.ElectricSystem.Lookup(mission, auxData.TechList.ToArray()); aux.ID = Constants.Auxiliaries.IDs.ElectricSystem; + aux.TechList = auxData.TechList.ToArray(); break; default: continue; diff --git a/VectoCore/InputData/Reader/DataObjectAdaper/EngineeringDataAdapter.cs b/VectoCore/InputData/Reader/DataObjectAdaper/EngineeringDataAdapter.cs index cf3d081c6ba3073c62b4c4838b3796ad418748ee..7e4a80d17baf0be53784694818d2387d72e1a784 100644 --- a/VectoCore/InputData/Reader/DataObjectAdaper/EngineeringDataAdapter.cs +++ b/VectoCore/InputData/Reader/DataObjectAdaper/EngineeringDataAdapter.cs @@ -48,6 +48,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdaper var axles = data.Axles; retVal.AxleData = axles.Select(axle => new Axle { + WheelsDimension = axle.Wheels, Inertia = axle.Inertia, TwinTyres = axle.TwinTyres, RollResistanceCoefficient = axle.RollResistanceCoefficient, diff --git a/VectoCore/Models/Declaration/Axle.cs b/VectoCore/Models/Declaration/Axle.cs index 289bfe0cc2ac0575b0d454e32373dac78a4aa00c..2763dbf090248f56a0b8f29fd38625463f5dcde1 100644 --- a/VectoCore/Models/Declaration/Axle.cs +++ b/VectoCore/Models/Declaration/Axle.cs @@ -21,6 +21,8 @@ namespace TUGraz.VectoCore.Models.Declaration { public class Axle : SimulationComponentData { + public object WheelsDimension { get; internal set; } + public KilogramSquareMeter Inertia { get; internal set; } public double RollResistanceCoefficient { get; internal set; } diff --git a/VectoCore/Models/SimulationComponent/Data/CombustionEngineData.cs b/VectoCore/Models/SimulationComponent/Data/CombustionEngineData.cs index ba26f053bea9b5422357008b591d9ea879edfc0d..099f2ba81143c169e56912ae22116f603e36cf75 100644 --- a/VectoCore/Models/SimulationComponent/Data/CombustionEngineData.cs +++ b/VectoCore/Models/SimulationComponent/Data/CombustionEngineData.cs @@ -24,8 +24,6 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data { public class CombustionEngineData : SimulationComponentData { - public string ModelName { get; internal set; } - [Required, SIRange(1000 / (Constants.Kilo * Constants.Kilo), 20000 / (Constants.Kilo * Constants.Kilo))] public CubicMeter Displacement { get; internal set; } @@ -56,7 +54,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data protected bool Equals(CombustionEngineData other) { - return Equals(FullLoadCurve, other.FullLoadCurve) && string.Equals(ModelName, other.ModelName) && + return Equals(FullLoadCurve, other.FullLoadCurve) && string.Equals(MakeAndModel, other.MakeAndModel) && Equals(Displacement, other.Displacement) && Equals(IdleSpeed, other.IdleSpeed) && Equals(Inertia, other.Inertia) && Equals(WHTCUrban, other.WHTCUrban) && Equals(WHTCRural, other.WHTCRural) && Equals(WHTCMotorway, other.WHTCMotorway) && Equals(ConsumptionMap, other.ConsumptionMap); @@ -80,7 +78,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data { unchecked { var hashCode = (FullLoadCurve != null ? FullLoadCurve.GetHashCode() : 0); - hashCode = (hashCode * 397) ^ (ModelName != null ? ModelName.GetHashCode() : 0); + hashCode = (hashCode * 397) ^ (MakeAndModel != null ? MakeAndModel.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (Displacement != null ? Displacement.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (IdleSpeed != null ? IdleSpeed.GetHashCode() : 0); hashCode = (hashCode * 397) ^ (Inertia != null ? Inertia.GetHashCode() : 0); diff --git a/VectoCore/Models/SimulationComponent/Data/SimulationComponentData.cs b/VectoCore/Models/SimulationComponent/Data/SimulationComponentData.cs index 4443faa773c95c0e5b9af82c33eae10546eb91d2..6ba972425c543804994b1433d01e575a78ca9356 100644 --- a/VectoCore/Models/SimulationComponent/Data/SimulationComponentData.cs +++ b/VectoCore/Models/SimulationComponent/Data/SimulationComponentData.cs @@ -26,6 +26,9 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data public string MakeAndModel { get; internal set; } + public string Creator { get; internal set; } + public string Date { get; internal set; } + public string TypeId { get; internal set; } public string DigestValue { get; internal set; } diff --git a/VectoCore/OutputData/DeclarationReport.cs b/VectoCore/OutputData/DeclarationReport.cs index dd19bd6e50b9eb27be6401e580bd6f5f759514bd..100d38f6d01cfc26981645dba278fd7b080fce63 100644 --- a/VectoCore/OutputData/DeclarationReport.cs +++ b/VectoCore/OutputData/DeclarationReport.cs @@ -91,18 +91,18 @@ namespace TUGraz.VectoCore.OutputData if (!_missions.ContainsKey(mission.MissionType)) { _missions[mission.MissionType] = new DeclarationReport.ResultContainer { Mission = mission, - ModData = new Dictionary<LoadingType, IModalDataContainer> { { loadingType, modData } } + ModData = new Dictionary<LoadingType, IModalDataContainer>() }; - } else { - _missions[mission.MissionType].ModData[loadingType] = modData; } + _missions[mission.MissionType].ModData[loadingType] = modData; + if (ResultCount == _missions.Sum(v => v.Value.ModData.Count)) { DoWriteReport(); } } - protected abstract void DoWriteReport(); + protected internal abstract void DoWriteReport(); public void InitializeReport(VectoRunData modelData, Segment segment) { @@ -112,6 +112,6 @@ namespace TUGraz.VectoCore.OutputData DoInitializeReport(modelData, segment); } - public abstract void DoInitializeReport(VectoRunData modelData, Segment segment); + protected abstract void DoInitializeReport(VectoRunData modelData, Segment segment); } } \ No newline at end of file diff --git a/VectoCore/OutputData/PDF/PDFDeclarationReport.cs b/VectoCore/OutputData/PDF/PDFDeclarationReport.cs index 665bada7305c7fb343c1d755a0a1f7e5aef9c30b..d897a05e5f88db5e746fe1ef1584de987c6a328e 100644 --- a/VectoCore/OutputData/PDF/PDFDeclarationReport.cs +++ b/VectoCore/OutputData/PDF/PDFDeclarationReport.cs @@ -50,7 +50,7 @@ namespace TUGraz.VectoCore.OutputData.PDF /// <summary> /// Creates the report and writes it to a pdf file. /// </summary> - protected override void DoWriteReport() + protected internal override void DoWriteReport() { var titlePage = CreateTitlePage(_missions); var cyclePages = _missions.OrderBy(m => m.Key).Select((m, i) => CreateCyclePage(m.Value, i + 2, _missions.Count + 1)); @@ -58,9 +58,9 @@ namespace TUGraz.VectoCore.OutputData.PDF MergeDocuments(titlePage, cyclePages, _writer.WriterStream(ReportType.DeclarationReportPdf)); } - public override void DoInitializeReport(VectoRunData modelData, Segment segment) + protected override void DoInitializeReport(VectoRunData modelData, Segment segment) { - EngineModel = modelData.EngineData.ModelName; + EngineModel = modelData.EngineData.MakeAndModel; EngineStr = string.Format("{0} l, {1} kW", modelData.EngineData.Displacement.ConvertTo().Cubic.Dezi.Meter.ToOutputFormat(1), modelData.EngineData.FullLoadCurve.MaxPower.ConvertTo().Kilo.Watt.ToOutputFormat(0));