Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS has been phased out. To see alternatives please check here

Skip to content
Snippets Groups Projects
Commit e9900af1 authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

Merge pull request #489 in VECTO/vecto-sim from...

Merge pull request #489 in VECTO/vecto-sim from ~EMQUARIMA/vecto-sim:bugfix/VECTO-551-average-tyre-rrc-not-in-customer to master

* commit '83968360':
  formatting xml output
  update resource file
  computing average rolling resistance
  adapt output schema to include AverageRRC
  move strings to resource, add averageRRC to customer report
parents 757c400d 83968360
No related branches found
No related tags found
No related merge requests found
/* //------------------------------------------------------------------------------
* This file is part of VECTO. // <auto-generated>
* // This code was generated by a tool.
* Copyright © 2012-2017 European Union // Runtime Version:4.0.30319.42000
* //
* Developed by Graz University of Technology, // Changes to this file may cause incorrect behavior and will be lost if
* Institute of Internal Combustion Engines and Thermodynamics, // the code is regenerated.
* Institute of Technical Informatics // </auto-generated>
* //------------------------------------------------------------------------------
* VECTO is licensed under the EUPL, Version 1.1 or - as soon they will be approved
* by the European Commission - subsequent versions of the EUPL (the "Licence");
* You may not use VECTO except in compliance with the Licence.
* You may obtain a copy of the Licence at:
*
* https://joinup.ec.europa.eu/community/eupl/og_page/eupl
*
* Unless required by applicable law or agreed to in writing, VECTO
* distributed under the Licence is distributed on an "AS IS" basis,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the Licence for the specific language governing permissions and
* limitations under the Licence.
*
* Authors:
* Stefan Hausberger, hausberger@ivt.tugraz.at, IVT, Graz University of Technology
* Christian Kreiner, christian.kreiner@tugraz.at, ITI, Graz University of Technology
* Michael Krisper, michael.krisper@tugraz.at, ITI, Graz University of Technology
* Raphael Luz, luz@ivt.tugraz.at, IVT, Graz University of Technology
* Markus Quaritsch, markus.quaritsch@tugraz.at, IVT, Graz University of Technology
* Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
*/
namespace TUGraz.VectoCommon.Resources { namespace TUGraz.VectoCommon.Resources {
using System; using System;
...@@ -1404,6 +1383,375 @@ namespace TUGraz.VectoCommon.Resources { ...@@ -1404,6 +1383,375 @@ namespace TUGraz.VectoCommon.Resources {
} }
} }
/// <summary>
/// Looks up a localized string similar to CdxA.
/// </summary>
public static string Report_AirDrag_CdxA {
get {
return ResourceManager.GetString("Report_AirDrag_CdxA", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to ApplicationInformation.
/// </summary>
public static string Report_ApplicationInfo_ApplicationInformation {
get {
return ResourceManager.GetString("Report_ApplicationInfo_ApplicationInformation", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Date.
/// </summary>
public static string Report_ApplicationInfo_Date {
get {
return ResourceManager.GetString("Report_ApplicationInfo_Date", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to SimulationToolVersion.
/// </summary>
public static string Report_ApplicationInfo_SimulationToolVersion {
get {
return ResourceManager.GetString("Report_ApplicationInfo_SimulationToolVersion", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to CertificationMethod.
/// </summary>
public static string Report_Component_CertificationMethod {
get {
return ResourceManager.GetString("Report_Component_CertificationMethod", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to CertificationNumber.
/// </summary>
public static string Report_Component_CertificationNumber {
get {
return ResourceManager.GetString("Report_Component_CertificationNumber", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to TransmissionRatioFinalGear.
/// </summary>
public static string Report_Gearbox_TransmissionRatioFinalGear {
get {
return ResourceManager.GetString("Report_Gearbox_TransmissionRatioFinalGear", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to GearsCount.
/// </summary>
public static string Report_GetGearbox_GearsCount {
get {
return ResourceManager.GetString("Report_GetGearbox_GearsCount", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to InputDataSignature.
/// </summary>
public static string Report_Input_Signature {
get {
return ResourceManager.GetString("Report_Input_Signature", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Mission.
/// </summary>
public static string Report_Result_Mission {
get {
return ResourceManager.GetString("Report_Result_Mission", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Result.
/// </summary>
public static string Report_Result_Result {
get {
return ResourceManager.GetString("Report_Result_Result", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Status.
/// </summary>
public static string Report_Result_Status {
get {
return ResourceManager.GetString("Report_Result_Status", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to status.
/// </summary>
public static string Report_Result_Status_Attr {
get {
return ResourceManager.GetString("Report_Result_Status_Attr", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to AverageSpeed.
/// </summary>
public static string Report_ResultEntry_AverageSpeed {
get {
return ResourceManager.GetString("Report_ResultEntry_AverageSpeed", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Distance.
/// </summary>
public static string Report_ResultEntry_Distance {
get {
return ResourceManager.GetString("Report_ResultEntry_Distance", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to FuelType.
/// </summary>
public static string Report_ResultEntry_FuelType {
get {
return ResourceManager.GetString("Report_ResultEntry_FuelType", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to FullLoadDrivingtimePercentage.
/// </summary>
public static string Report_ResultEntry_FullLoadDrivingtimePercentage {
get {
return ResourceManager.GetString("Report_ResultEntry_FullLoadDrivingtimePercentage", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to GearshiftCount.
/// </summary>
public static string Report_ResultEntry_GearshiftCount {
get {
return ResourceManager.GetString("Report_ResultEntry_GearshiftCount", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to MaxAcceleration.
/// </summary>
public static string Report_ResultEntry_MaxAcceleration {
get {
return ResourceManager.GetString("Report_ResultEntry_MaxAcceleration", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to MaxDeceleration.
/// </summary>
public static string Report_ResultEntry_MaxDeceleration {
get {
return ResourceManager.GetString("Report_ResultEntry_MaxDeceleration", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to MaxSpeed.
/// </summary>
public static string Report_ResultEntry_MaxSpeed {
get {
return ResourceManager.GetString("Report_ResultEntry_MaxSpeed", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to MinSpeed.
/// </summary>
public static string Report_ResultEntry_MinSpeed {
get {
return ResourceManager.GetString("Report_ResultEntry_MinSpeed", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Payload.
/// </summary>
public static string Report_ResultEntry_Payload {
get {
return ResourceManager.GetString("Report_ResultEntry_Payload", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to SimulationParameters.
/// </summary>
public static string Report_ResultEntry_SimulationParameters {
get {
return ResourceManager.GetString("Report_ResultEntry_SimulationParameters", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to TotalVehicleMass.
/// </summary>
public static string Report_ResultEntry_TotalVehicleMass {
get {
return ResourceManager.GetString("Report_ResultEntry_TotalVehicleMass", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to VehiclePerformance.
/// </summary>
public static string Report_ResultEntry_VehiclePerformance {
get {
return ResourceManager.GetString("Report_ResultEntry_VehiclePerformance", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to CO2.
/// </summary>
public static string Report_Results_CO2 {
get {
return ResourceManager.GetString("Report_Results_CO2", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Error.
/// </summary>
public static string Report_Results_Error {
get {
return ResourceManager.GetString("Report_Results_Error", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to ErrorDetails.
/// </summary>
public static string Report_Results_ErrorDetails {
get {
return ResourceManager.GetString("Report_Results_ErrorDetails", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to FuelConsumption.
/// </summary>
public static string Report_Results_FuelConsumption {
get {
return ResourceManager.GetString("Report_Results_FuelConsumption", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to unit.
/// </summary>
public static string Report_Results_Unit_Attr {
get {
return ResourceManager.GetString("Report_Results_Unit_Attr", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to TyreCertificationNumber.
/// </summary>
public static string Report_Tyre_TyreCertificationNumber {
get {
return ResourceManager.GetString("Report_Tyre_TyreCertificationNumber", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to TyreDimension.
/// </summary>
public static string Report_Tyre_TyreDimension {
get {
return ResourceManager.GetString("Report_Tyre_TyreDimension", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to TyreRRCDeclared.
/// </summary>
public static string Report_Tyre_TyreRRCDeclared {
get {
return ResourceManager.GetString("Report_Tyre_TyreRRCDeclared", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to AverageRRC.
/// </summary>
public static string Report_Vehicle_AverageRRC {
get {
return ResourceManager.GetString("Report_Vehicle_AverageRRC", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to AxleRatio.
/// </summary>
public static string Report_Vehicle_AxleRatio {
get {
return ResourceManager.GetString("Report_Vehicle_AxleRatio", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to EngineDisplacement.
/// </summary>
public static string Report_Vehicle_EngineDisplacement {
get {
return ResourceManager.GetString("Report_Vehicle_EngineDisplacement", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to EngineRatedPower.
/// </summary>
public static string Report_Vehicle_EngineRatedPower {
get {
return ResourceManager.GetString("Report_Vehicle_EngineRatedPower", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Retarder.
/// </summary>
public static string Report_Vehicle_Retarder {
get {
return ResourceManager.GetString("Report_Vehicle_Retarder", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to TransmissionMainCertificationMethod.
/// </summary>
public static string Report_Vehicle_TransmissionCertificationMethod {
get {
return ResourceManager.GetString("Report_Vehicle_TransmissionCertificationMethod", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to VehicleGroup.
/// </summary>
public static string Report_Vehicle_VehicleGroup {
get {
return ResourceManager.GetString("Report_Vehicle_VehicleGroup", resourceCulture);
}
}
/// <summary> /// <summary>
/// Looks up a localized string similar to RetarderLossMap. /// Looks up a localized string similar to RetarderLossMap.
/// </summary> /// </summary>
......
...@@ -770,5 +770,128 @@ ...@@ -770,5 +770,128 @@
</data> </data>
<data name="Component_CertificationNumber" xml:space="preserve"> <data name="Component_CertificationNumber" xml:space="preserve">
<value>CertificationNumber</value> <value>CertificationNumber</value>
</data>
<data name="Report_Results_FuelConsumption" xml:space="preserve">
<value>FuelConsumption</value>
</data>
<data name="Report_Results_CO2" xml:space="preserve">
<value>CO2</value>
</data>
<data name="Report_Results_Unit_Attr" xml:space="preserve">
<value>unit</value>
</data>
<data name="Report_Vehicle_VehicleGroup" xml:space="preserve">
<value>VehicleGroup</value>
</data>
<data name="Report_Input_Signature" xml:space="preserve">
<value>InputDataSignature</value>
</data>
<data name="Report_GetGearbox_GearsCount" xml:space="preserve">
<value>GearsCount</value>
</data>
<data name="Report_Gearbox_TransmissionRatioFinalGear" xml:space="preserve">
<value>TransmissionRatioFinalGear</value>
</data>
<data name="Report_Component_CertificationMethod" xml:space="preserve">
<value>CertificationMethod</value>
</data>
<data name="Report_Component_CertificationNumber" xml:space="preserve">
<value>CertificationNumber</value>
</data>
<data name="Report_AirDrag_CdxA" xml:space="preserve">
<value>CdxA</value>
</data>
<data name="Report_Tyre_TyreDimension" xml:space="preserve">
<value>TyreDimension</value>
</data>
<data name="Report_Tyre_TyreCertificationNumber" xml:space="preserve">
<value>TyreCertificationNumber</value>
</data>
<data name="Report_Tyre_TyreRRCDeclared" xml:space="preserve">
<value>TyreRRCDeclared</value>
</data>
<data name="Report_Result_Mission" xml:space="preserve">
<value>Mission</value>
</data>
<data name="Report_Result_Result" xml:space="preserve">
<value>Result</value>
</data>
<data name="Report_Result_Status_Attr" xml:space="preserve">
<value>status</value>
</data>
<data name="Report_ApplicationInfo_ApplicationInformation" xml:space="preserve">
<value>ApplicationInformation</value>
</data>
<data name="Report_ApplicationInfo_SimulationToolVersion" xml:space="preserve">
<value>SimulationToolVersion</value>
</data>
<data name="Report_ApplicationInfo_Date" xml:space="preserve">
<value>Date</value>
</data>
<data name="Report_ResultEntry_Distance" xml:space="preserve">
<value>Distance</value>
</data>
<data name="Report_ResultEntry_SimulationParameters" xml:space="preserve">
<value>SimulationParameters</value>
</data>
<data name="Report_ResultEntry_TotalVehicleMass" xml:space="preserve">
<value>TotalVehicleMass</value>
</data>
<data name="Report_ResultEntry_Payload" xml:space="preserve">
<value>Payload</value>
</data>
<data name="Report_ResultEntry_FuelType" xml:space="preserve">
<value>FuelType</value>
</data>
<data name="Report_ResultEntry_VehiclePerformance" xml:space="preserve">
<value>VehiclePerformance</value>
</data>
<data name="Report_ResultEntry_AverageSpeed" xml:space="preserve">
<value>AverageSpeed</value>
</data>
<data name="Report_ResultEntry_MinSpeed" xml:space="preserve">
<value>MinSpeed</value>
</data>
<data name="Report_ResultEntry_MaxSpeed" xml:space="preserve">
<value>MaxSpeed</value>
</data>
<data name="Report_ResultEntry_MaxDeceleration" xml:space="preserve">
<value>MaxDeceleration</value>
</data>
<data name="Report_ResultEntry_MaxAcceleration" xml:space="preserve">
<value>MaxAcceleration</value>
</data>
<data name="Report_ResultEntry_FullLoadDrivingtimePercentage" xml:space="preserve">
<value>FullLoadDrivingtimePercentage</value>
</data>
<data name="Report_ResultEntry_GearshiftCount" xml:space="preserve">
<value>GearshiftCount</value>
</data>
<data name="Report_Results_Error" xml:space="preserve">
<value>Error</value>
</data>
<data name="Report_Results_ErrorDetails" xml:space="preserve">
<value>ErrorDetails</value>
</data>
<data name="Report_Vehicle_EngineRatedPower" xml:space="preserve">
<value>EngineRatedPower</value>
</data>
<data name="Report_Vehicle_EngineDisplacement" xml:space="preserve">
<value>EngineDisplacement</value>
</data>
<data name="Report_Vehicle_Retarder" xml:space="preserve">
<value>Retarder</value>
</data>
<data name="Report_Vehicle_AxleRatio" xml:space="preserve">
<value>AxleRatio</value>
</data>
<data name="Report_Vehicle_AverageRRC" xml:space="preserve">
<value>AverageRRC</value>
</data>
<data name="Report_Vehicle_TransmissionCertificationMethod" xml:space="preserve">
<value>TransmissionMainCertificationMethod</value>
</data>
<data name="Report_Result_Status" xml:space="preserve">
<value>Status</value>
</data> </data>
</root> </root>
\ No newline at end of file
...@@ -89,6 +89,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data ...@@ -89,6 +89,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
private KilogramSquareMeter _wheelsInertia; private KilogramSquareMeter _wheelsInertia;
private double? _totalRollResistanceCoefficient; private double? _totalRollResistanceCoefficient;
private double? _rollResistanceCoefficientWithoutTrailer; private double? _rollResistanceCoefficientWithoutTrailer;
private double? _averageRollingResistanceTruck;
public List<Axle> AxleData public List<Axle> AxleData
{ {
...@@ -194,6 +195,16 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data ...@@ -194,6 +195,16 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
get { return (CurbWeight ?? 0.SI<Kilogram>()) + (BodyAndTrailerWeight ?? 0.SI<Kilogram>()); } get { return (CurbWeight ?? 0.SI<Kilogram>()) + (BodyAndTrailerWeight ?? 0.SI<Kilogram>()); }
} }
public double AverageRollingResistanceTruck
{
get {
if (_averageRollingResistanceTruck == null) {
ComputeRollResistanceAndReducedMassWheels();
}
return _averageRollingResistanceTruck.GetValueOrDefault();
}
}
protected void ComputeRollResistanceAndReducedMassWheels() protected void ComputeRollResistanceAndReducedMassWheels()
{ {
if (TotalVehicleWeight == 0.SI<Kilogram>()) { if (TotalVehicleWeight == 0.SI<Kilogram>()) {
...@@ -207,7 +218,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data ...@@ -207,7 +218,8 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
var rrc = 0.0.SI<Scalar>(); var rrc = 0.0.SI<Scalar>();
var rrcVehicle = 0.0.SI<Scalar>(); var rrcVehicle = 0.0.SI<Scalar>();
var averageRRC = 0.0;
var vehicleWheels = 0;
var wheelsInertia = 0.0.SI<KilogramSquareMeter>(); var wheelsInertia = 0.0.SI<KilogramSquareMeter>();
var vehicleWeightShare = 0.0; var vehicleWeightShare = 0.0;
foreach (var axle in _axleData) { foreach (var axle in _axleData) {
...@@ -219,16 +231,18 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data ...@@ -219,16 +231,18 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
var rrcShare = axle.AxleWeightShare * axle.RollResistanceCoefficient * var rrcShare = axle.AxleWeightShare * axle.RollResistanceCoefficient *
Math.Pow(baseValue, Physics.RollResistanceExponent - 1); Math.Pow(baseValue, Physics.RollResistanceExponent - 1);
if (axle.AxleType != AxleType.Trailer) { if (axle.AxleType != AxleType.Trailer) {
rrcVehicle += rrcShare; rrcVehicle += rrcShare;
vehicleWeightShare += axle.AxleWeightShare; vehicleWeightShare += axle.AxleWeightShare;
averageRRC += axle.RollResistanceCoefficient * nrWheels;
vehicleWheels += nrWheels;
} }
rrc += rrcShare; rrc += rrcShare;
wheelsInertia += nrWheels * axle.Inertia; wheelsInertia += nrWheels * axle.Inertia;
} }
RollResistanceCoefficientWithoutTrailer = rrcVehicle / vehicleWeightShare; RollResistanceCoefficientWithoutTrailer = rrcVehicle / vehicleWeightShare;
TotalRollResistanceCoefficient = rrc; TotalRollResistanceCoefficient = rrc;
_averageRollingResistanceTruck = averageRRC / vehicleWheels;
WheelsInertia = wheelsInertia; WheelsInertia = wheelsInertia;
} }
......
...@@ -75,19 +75,22 @@ namespace TUGraz.VectoCore.OutputData.XML ...@@ -75,19 +75,22 @@ namespace TUGraz.VectoCore.OutputData.XML
new XElement(tns + XMLNames.Component_ManufacturerAddress, modelData.VehicleData.ManufacturerAddress), new XElement(tns + XMLNames.Component_ManufacturerAddress, modelData.VehicleData.ManufacturerAddress),
new XElement(tns + XMLNames.Vehicle_VIN, modelData.VehicleData.VIN), new XElement(tns + XMLNames.Vehicle_VIN, modelData.VehicleData.VIN),
new XElement(tns + XMLNames.Vehicle_LegislativeClass, modelData.VehicleData.LegislativeClass.ToXMLFormat()), new XElement(tns + XMLNames.Vehicle_LegislativeClass, modelData.VehicleData.LegislativeClass.ToXMLFormat()),
new XElement(tns + "VehicleGroup", modelData.VehicleData.VehicleClass.GetClassNumber()), new XElement(tns + XMLNames.Report_Vehicle_VehicleGroup, modelData.VehicleData.VehicleClass.GetClassNumber()),
new XElement(tns + XMLNames.Vehicle_AxleConfiguration, modelData.VehicleData.AxleConfiguration.GetName()), new XElement(tns + XMLNames.Vehicle_AxleConfiguration, modelData.VehicleData.AxleConfiguration.GetName()),
new XElement(tns + XMLNames.Vehicle_GrossVehicleMass, modelData.VehicleData.GrossVehicleWeight.ToXMLFormat(0)), new XElement(tns + XMLNames.Vehicle_GrossVehicleMass, modelData.VehicleData.GrossVehicleWeight.ToXMLFormat(0)),
new XElement(tns + XMLNames.Vehicle_CurbMassChassis, modelData.VehicleData.CurbWeight.ToXMLFormat(0)), new XElement(tns + XMLNames.Vehicle_CurbMassChassis, modelData.VehicleData.CurbWeight.ToXMLFormat(0)),
new XElement(tns + "EngineRatedPower", modelData.EngineData.RatedPowerDeclared.ToXMLFormat(0)), new XElement(tns + XMLNames.Report_Vehicle_EngineRatedPower, modelData.EngineData.RatedPowerDeclared.ToXMLFormat(0)),
new XElement(tns + "EngineDisplacement", new XElement(tns + XMLNames.Report_Vehicle_EngineDisplacement,
modelData.EngineData.Displacement.ConvertTo().Cubic.Centi.Meter.ToXMLFormat(0)), modelData.EngineData.Displacement.ConvertTo().Cubic.Centi.Meter.ToXMLFormat(0)),
new XElement(tns + XMLNames.Engine_FuelType, modelData.EngineData.FuelType.ToXMLFormat()), new XElement(tns + XMLNames.Engine_FuelType, modelData.EngineData.FuelType.ToXMLFormat()),
new XElement(tns + "TransmissionMainCertificationMethod", modelData.GearboxData.CertificationMethod.ToXMLFormat()), new XElement(tns + XMLNames.Report_Vehicle_TransmissionCertificationMethod,
modelData.GearboxData.CertificationMethod.ToXMLFormat()),
new XElement(tns + XMLNames.Gearbox_TransmissionType, modelData.GearboxData.Type.ToXMLFormat()), new XElement(tns + XMLNames.Gearbox_TransmissionType, modelData.GearboxData.Type.ToXMLFormat()),
new XElement(tns + "GearsCount", modelData.GearboxData.Gears.Count), new XElement(tns + XMLNames.Report_GetGearbox_GearsCount, modelData.GearboxData.Gears.Count),
new XElement(tns + "Retarder", modelData.Retarder.Type.IsDedicatedComponent()), new XElement(tns + XMLNames.Report_Vehicle_Retarder, modelData.Retarder.Type.IsDedicatedComponent()),
new XElement(tns + "AxleRatio", modelData.AxleGearData.AxleGear.Ratio.ToXMLFormat(3)) new XElement(tns + XMLNames.Report_Vehicle_AxleRatio, modelData.AxleGearData.AxleGear.Ratio.ToXMLFormat(3)),
new XElement(tns + XMLNames.Report_Vehicle_AverageRRC,
modelData.VehicleData.AverageRollingResistanceTruck.ToXMLFormat(6))
); );
InputDataIntegrity = new XElement(tns + "InputDataSignature", InputDataIntegrity = new XElement(tns + "InputDataSignature",
modelData.InputDataHash == null ? CreateDummySig() : new XElement(modelData.InputDataHash)); modelData.InputDataHash == null ? CreateDummySig() : new XElement(modelData.InputDataHash));
...@@ -107,9 +110,10 @@ namespace TUGraz.VectoCore.OutputData.XML ...@@ -107,9 +110,10 @@ namespace TUGraz.VectoCore.OutputData.XML
{ {
foreach (var resultEntry in entry.ModData) { foreach (var resultEntry in entry.ModData) {
allSuccess &= resultEntry.Value.Status == VectoRun.Status.Success; allSuccess &= resultEntry.Value.Status == VectoRun.Status.Success;
Results.Add(new XElement(tns + "Result", Results.Add(new XElement(tns + XMLNames.Report_Result_Result,
new XAttribute("status", resultEntry.Value.Status == VectoRun.Status.Success ? "success" : "error"), new XAttribute(XMLNames.Report_Result_Status_Attr,
new XElement(tns + "Mission", entry.Mission.ToXMLFormat()), resultEntry.Value.Status == VectoRun.Status.Success ? "success" : "error"),
new XElement(tns + XMLNames.Report_Result_Mission, entry.Mission.ToXMLFormat()),
GetResults(resultEntry))); GetResults(resultEntry)));
} }
} }
...@@ -145,9 +149,10 @@ namespace TUGraz.VectoCore.OutputData.XML ...@@ -145,9 +149,10 @@ namespace TUGraz.VectoCore.OutputData.XML
private XElement GetApplicationInfo() private XElement GetApplicationInfo()
{ {
var vectodll = Assembly.LoadFrom(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "VectoCore.dll")).GetName(); var vectodll = Assembly.LoadFrom(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "VectoCore.dll")).GetName();
return new XElement(tns + "ApplicationInformation", return new XElement(tns + XMLNames.Report_ApplicationInfo_ApplicationInformation,
new XElement(tns + "SimulationToolVersion", vectodll.Version), new XElement(tns + XMLNames.Report_ApplicationInfo_SimulationToolVersion, vectodll.Version),
new XElement(tns + "Date", XmlConvert.ToString(DateTime.Now, XmlDateTimeSerializationMode.Utc))); new XElement(tns + XMLNames.Report_ApplicationInfo_Date,
XmlConvert.ToString(DateTime.Now, XmlDateTimeSerializationMode.Utc)));
} }
public void GenerateReport(XElement resultSignature) public void GenerateReport(XElement resultSignature)
...@@ -155,7 +160,7 @@ namespace TUGraz.VectoCore.OutputData.XML ...@@ -155,7 +160,7 @@ namespace TUGraz.VectoCore.OutputData.XML
var xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance"); var xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance");
var retVal = new XDocument(); var retVal = new XDocument();
var results = new XElement(Results); var results = new XElement(Results);
results.AddFirst(new XElement(tns + "Status", allSuccess ? "success" : "error")); results.AddFirst(new XElement(tns + XMLNames.Report_Result_Status, allSuccess ? "success" : "error"));
var vehicle = new XElement(VehiclePart); var vehicle = new XElement(VehiclePart);
vehicle.Add(InputDataIntegrity); vehicle.Add(InputDataIntegrity);
retVal.Add(new XElement(tns + "VectoCustomerInformation", retVal.Add(new XElement(tns + "VectoCustomerInformation",
......
...@@ -36,6 +36,7 @@ using System.Xml; ...@@ -36,6 +36,7 @@ using System.Xml;
using System.Xml.Linq; using System.Xml.Linq;
using System.Xml.XPath; using System.Xml.XPath;
using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Models;
using TUGraz.VectoCommon.Resources;
using TUGraz.VectoCommon.Utils; using TUGraz.VectoCommon.Utils;
using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Declaration;
using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.Simulation.Data;
...@@ -173,14 +174,17 @@ namespace TUGraz.VectoCore.OutputData.XML ...@@ -173,14 +174,17 @@ namespace TUGraz.VectoCore.OutputData.XML
{ {
var fuel = FuelData.Instance().Lookup(result.FuelType); var fuel = FuelData.Instance().Lookup(result.FuelType);
var retVal = new List<XElement> { var retVal = new List<XElement> {
new XElement(tns + "FuelConsumption", new XAttribute("unit", "g/km"), new XElement(tns + XMLNames.Report_Results_FuelConsumption,
new XAttribute(XMLNames.Report_Results_Unit_Attr, "g/km"),
(result.FuelConsumptionTotal.ConvertTo().Gramm / result.Distance.ConvertTo().Kilo.Meter).Value() (result.FuelConsumptionTotal.ConvertTo().Gramm / result.Distance.ConvertTo().Kilo.Meter).Value()
.ToMinSignificantDigits(3, 1)), .ToMinSignificantDigits(3, 1)),
new XElement(tns + "FuelConsumption", new XAttribute("unit", "g/t-km"), new XElement(tns + XMLNames.Report_Results_FuelConsumption,
new XAttribute(XMLNames.Report_Results_Unit_Attr, "g/t-km"),
(result.FuelConsumptionTotal.ConvertTo().Gramm / result.Distance.ConvertTo().Kilo.Meter / (result.FuelConsumptionTotal.ConvertTo().Gramm / result.Distance.ConvertTo().Kilo.Meter /
result.Payload.ConvertTo().Ton).Value().ToMinSignificantDigits(3, 1)), result.Payload.ConvertTo().Ton).Value().ToMinSignificantDigits(3, 1)),
result.CargoVolume > 0 result.CargoVolume > 0
? new XElement(tns + "FuelConsumption", new XAttribute("unit", "g/m³-km"), ? new XElement(tns + XMLNames.Report_Results_FuelConsumption,
new XAttribute(XMLNames.Report_Results_Unit_Attr, "g/m³-km"),
(result.FuelConsumptionTotal.ConvertTo().Gramm / result.Distance.ConvertTo().Kilo.Meter / result.CargoVolume) (result.FuelConsumptionTotal.ConvertTo().Gramm / result.Distance.ConvertTo().Kilo.Meter / result.CargoVolume)
.Value .Value
().ToMinSignificantDigits(3, 1)) ().ToMinSignificantDigits(3, 1))
...@@ -188,38 +192,46 @@ namespace TUGraz.VectoCore.OutputData.XML ...@@ -188,38 +192,46 @@ namespace TUGraz.VectoCore.OutputData.XML
}; };
//FC //FC
if (fullOutput) { if (fullOutput) {
retVal.Add(new XElement(tns + "FuelConsumption", new XAttribute("unit", "MJ/km"), retVal.Add(new XElement(tns + XMLNames.Report_Results_FuelConsumption,
new XAttribute(XMLNames.Report_Results_Unit_Attr, "MJ/km"),
(result.EnergyConsumptionTotal / result.Distance.ConvertTo().Kilo.Meter / 1e6).Value().ToMinSignificantDigits(3, 1))); (result.EnergyConsumptionTotal / result.Distance.ConvertTo().Kilo.Meter / 1e6).Value().ToMinSignificantDigits(3, 1)));
retVal.Add(new XElement(tns + "FuelConsumption", new XAttribute("unit", "MJ/t-km"), retVal.Add(new XElement(tns + XMLNames.Report_Results_FuelConsumption,
new XAttribute(XMLNames.Report_Results_Unit_Attr, "MJ/t-km"),
(result.EnergyConsumptionTotal / result.Distance.ConvertTo().Kilo.Meter / result.Payload.ConvertTo().Ton / 1e6) (result.EnergyConsumptionTotal / result.Distance.ConvertTo().Kilo.Meter / result.Payload.ConvertTo().Ton / 1e6)
.Value().ToMinSignificantDigits(3, 1))); .Value().ToMinSignificantDigits(3, 1)));
if (result.CargoVolume > 0) { if (result.CargoVolume > 0) {
retVal.Add(new XElement(tns + "FuelConsumption", new XAttribute("unit", "MJ/m³-km"), retVal.Add(new XElement(tns + XMLNames.Report_Results_FuelConsumption,
new XAttribute(XMLNames.Report_Results_Unit_Attr, "MJ/m³-km"),
(result.EnergyConsumptionTotal / result.Distance.ConvertTo().Kilo.Meter / result.CargoVolume / 1e6).Value() (result.EnergyConsumptionTotal / result.Distance.ConvertTo().Kilo.Meter / result.CargoVolume / 1e6).Value()
.ToMinSignificantDigits(3, 1))); .ToMinSignificantDigits(3, 1)));
} }
} }
if (fuel.FuelDensity != null) { if (fuel.FuelDensity != null) {
retVal.Add(new XElement(tns + "FuelConsumption", new XAttribute("unit", "l/100km"), retVal.Add(new XElement(tns + XMLNames.Report_Results_FuelConsumption,
new XAttribute(XMLNames.Report_Results_Unit_Attr, "l/100km"),
(result.FuelConsumptionTotal.ConvertTo().Gramm / fuel.FuelDensity / result.Distance.ConvertTo().Kilo.Meter * 100) (result.FuelConsumptionTotal.ConvertTo().Gramm / fuel.FuelDensity / result.Distance.ConvertTo().Kilo.Meter * 100)
.Value().ToMinSignificantDigits(3, 1))); .Value().ToMinSignificantDigits(3, 1)));
retVal.Add(new XElement(tns + "FuelConsumption", new XAttribute("unit", "l/t-km"), retVal.Add(new XElement(tns + XMLNames.Report_Results_FuelConsumption,
new XAttribute(XMLNames.Report_Results_Unit_Attr, "l/t-km"),
(result.FuelConsumptionTotal.ConvertTo().Gramm / fuel.FuelDensity / result.Distance.ConvertTo().Kilo.Meter / (result.FuelConsumptionTotal.ConvertTo().Gramm / fuel.FuelDensity / result.Distance.ConvertTo().Kilo.Meter /
result.Payload.ConvertTo().Ton).Value().ToMinSignificantDigits(3, 1))); result.Payload.ConvertTo().Ton).Value().ToMinSignificantDigits(3, 1)));
if (result.CargoVolume > 0) { if (result.CargoVolume > 0) {
retVal.Add(new XElement(tns + "FuelConsumption", new XAttribute("unit", "l/m³-km"), retVal.Add(new XElement(tns + XMLNames.Report_Results_FuelConsumption,
new XAttribute(XMLNames.Report_Results_Unit_Attr, "l/m³-km"),
(result.FuelConsumptionTotal.ConvertTo().Gramm / fuel.FuelDensity / result.Distance.ConvertTo().Kilo.Meter / (result.FuelConsumptionTotal.ConvertTo().Gramm / fuel.FuelDensity / result.Distance.ConvertTo().Kilo.Meter /
result.CargoVolume).Value().ToMinSignificantDigits(3, 1))); result.CargoVolume).Value().ToMinSignificantDigits(3, 1)));
} }
} }
//CO2 //CO2
retVal.Add(new XElement(tns + "CO2", new XAttribute("unit", "g/km"), retVal.Add(new XElement(tns + XMLNames.Report_Results_CO2, new XAttribute(XMLNames.Report_Results_Unit_Attr, "g/km"),
(result.CO2Total.ConvertTo().Gramm / result.Distance.ConvertTo().Kilo.Meter).Value().ToMinSignificantDigits(3, 1))); (result.CO2Total.ConvertTo().Gramm / result.Distance.ConvertTo().Kilo.Meter).Value().ToMinSignificantDigits(3, 1)));
retVal.Add(new XElement(tns + "CO2", new XAttribute("unit", "g/t-km"), retVal.Add(new XElement(tns + XMLNames.Report_Results_CO2,
new XAttribute(XMLNames.Report_Results_Unit_Attr, "g/t-km"),
(result.CO2Total.ConvertTo().Gramm / result.Distance.ConvertTo().Kilo.Meter / (result.CO2Total.ConvertTo().Gramm / result.Distance.ConvertTo().Kilo.Meter /
result.Payload.ConvertTo().Ton).Value().ToMinSignificantDigits(3, 1))); result.Payload.ConvertTo().Ton).Value().ToMinSignificantDigits(3, 1)));
if (result.CargoVolume > 0) { if (result.CargoVolume > 0) {
retVal.Add(new XElement(tns + "CO2", new XAttribute("unit", "g/m³-km"), retVal.Add(new XElement(tns + XMLNames.Report_Results_CO2,
new XAttribute(XMLNames.Report_Results_Unit_Attr, "g/m³-km"),
(result.CO2Total.ConvertTo().Gramm / result.Distance.ConvertTo().Kilo.Meter / result.CargoVolume).Value() (result.CO2Total.ConvertTo().Gramm / result.Distance.ConvertTo().Kilo.Meter / result.CargoVolume).Value()
.ToMinSignificantDigits(3, 1))); .ToMinSignificantDigits(3, 1)));
} }
......
...@@ -74,7 +74,7 @@ namespace TUGraz.VectoCore.OutputData.XML ...@@ -74,7 +74,7 @@ namespace TUGraz.VectoCore.OutputData.XML
VehiclePart.Add( VehiclePart.Add(
new XElement(tns + XMLNames.Vehicle_VIN, modelData.VehicleData.VIN), new XElement(tns + XMLNames.Vehicle_VIN, modelData.VehicleData.VIN),
new XElement(tns + XMLNames.Vehicle_LegislativeClass, modelData.VehicleData.LegislativeClass.ToXMLFormat()), new XElement(tns + XMLNames.Vehicle_LegislativeClass, modelData.VehicleData.LegislativeClass.ToXMLFormat()),
new XElement(tns + "VehicleGroup", modelData.VehicleData.VehicleClass.GetClassNumber()), new XElement(tns + XMLNames.Report_Vehicle_VehicleGroup, modelData.VehicleData.VehicleClass.GetClassNumber()),
new XElement(tns + XMLNames.Vehicle_AxleConfiguration, modelData.VehicleData.AxleConfiguration.GetName()), new XElement(tns + XMLNames.Vehicle_AxleConfiguration, modelData.VehicleData.AxleConfiguration.GetName()),
new XElement(tns + XMLNames.Vehicle_GrossVehicleMass, modelData.VehicleData.GrossVehicleWeight.ToXMLFormat(0)), new XElement(tns + XMLNames.Vehicle_GrossVehicleMass, modelData.VehicleData.GrossVehicleWeight.ToXMLFormat(0)),
new XElement(tns + XMLNames.Vehicle_CurbMassChassis, modelData.VehicleData.CurbWeight.ToXMLFormat(0)), new XElement(tns + XMLNames.Vehicle_CurbMassChassis, modelData.VehicleData.CurbWeight.ToXMLFormat(0)),
...@@ -92,7 +92,7 @@ namespace TUGraz.VectoCore.OutputData.XML ...@@ -92,7 +92,7 @@ namespace TUGraz.VectoCore.OutputData.XML
GetAuxiliariesDescription(modelData.Aux) GetAuxiliariesDescription(modelData.Aux)
) )
); );
InputDataIntegrity = new XElement(tns + "InputDataSignature", InputDataIntegrity = new XElement(tns + XMLNames.Report_Input_Signature,
modelData.InputDataHash == null ? CreateDummySig() : new XElement(modelData.InputDataHash)); modelData.InputDataHash == null ? CreateDummySig() : new XElement(modelData.InputDataHash));
} }
...@@ -141,8 +141,9 @@ namespace TUGraz.VectoCore.OutputData.XML ...@@ -141,8 +141,9 @@ namespace TUGraz.VectoCore.OutputData.XML
return new XElement(tns + XMLNames.Component_Gearbox, return new XElement(tns + XMLNames.Component_Gearbox,
GetCommonDescription(gearboxData), GetCommonDescription(gearboxData),
new XElement(tns + XMLNames.Gearbox_TransmissionType, gearboxData.Type.ToXMLFormat()), new XElement(tns + XMLNames.Gearbox_TransmissionType, gearboxData.Type.ToXMLFormat()),
new XElement(tns + "GearsCount", gearboxData.Gears.Count), new XElement(tns + XMLNames.Report_GetGearbox_GearsCount, gearboxData.Gears.Count),
new XElement(tns + "TransmissionRatioFinalGear", gearboxData.Gears.Last().Value.Ratio.ToXMLFormat(3)) new XElement(tns + XMLNames.Report_Gearbox_TransmissionRatioFinalGear,
gearboxData.Gears.Last().Value.Ratio.ToXMLFormat(3))
); );
} }
...@@ -184,16 +185,16 @@ namespace TUGraz.VectoCore.OutputData.XML ...@@ -184,16 +185,16 @@ namespace TUGraz.VectoCore.OutputData.XML
{ {
if (airdragData.CertificationMethod == CertificationMethod.StandardValues) { if (airdragData.CertificationMethod == CertificationMethod.StandardValues) {
return new XElement(tns + XMLNames.Component_AirDrag, return new XElement(tns + XMLNames.Component_AirDrag,
new XElement(tns + "CertificationMethod", airdragData.CertificationMethod.ToXMLFormat()), new XElement(tns + XMLNames.Report_Component_CertificationMethod, airdragData.CertificationMethod.ToXMLFormat()),
new XElement(tns + "CdxA", airdragData.DeclaredAirdragArea.ToXMLFormat(2)) new XElement(tns + XMLNames.Report_AirDrag_CdxA, airdragData.DeclaredAirdragArea.ToXMLFormat(2))
); );
} }
return new XElement(tns + XMLNames.Component_AirDrag, return new XElement(tns + XMLNames.Component_AirDrag,
new XElement(tns + XMLNames.Component_Model, airdragData.ModelName), new XElement(tns + XMLNames.Component_Model, airdragData.ModelName),
new XElement(tns + "CertificationMethod", airdragData.CertificationMethod.ToXMLFormat()), new XElement(tns + XMLNames.Report_Component_CertificationMethod, airdragData.CertificationMethod.ToXMLFormat()),
new XElement(tns + "CertificationNumber", airdragData.CertificationNumber), new XElement(tns + XMLNames.Report_Component_CertificationNumber, airdragData.CertificationNumber),
new XElement(tns + XMLNames.DI_Signature_Reference_DigestValue, airdragData.DigestValueInput), new XElement(tns + XMLNames.DI_Signature_Reference_DigestValue, airdragData.DigestValueInput),
new XElement(tns + "CdxA", airdragData.DeclaredAirdragArea.ToXMLFormat(2)) new XElement(tns + XMLNames.Report_AirDrag_CdxA, airdragData.DeclaredAirdragArea.ToXMLFormat(2))
); );
} }
...@@ -215,9 +216,9 @@ namespace TUGraz.VectoCore.OutputData.XML ...@@ -215,9 +216,9 @@ namespace TUGraz.VectoCore.OutputData.XML
{ {
return new XElement(tns + XMLNames.AxleWheels_Axles_Axle, return new XElement(tns + XMLNames.AxleWheels_Axles_Axle,
new XAttribute(XMLNames.AxleWheels_Axles_Axle_AxleNumber_Attr, i), new XAttribute(XMLNames.AxleWheels_Axles_Axle_AxleNumber_Attr, i),
new XElement(tns + "TyreDimension", axle.WheelsDimension), new XElement(tns + XMLNames.Report_Tyre_TyreDimension, axle.WheelsDimension),
new XElement(tns + "TyreCertificationNumber", axle.CertificationNumber), new XElement(tns + XMLNames.Report_Tyre_TyreCertificationNumber, axle.CertificationNumber),
new XElement(tns + "TyreRRCDeclared", axle.RollResistanceCoefficient.ToXMLFormat(4)), new XElement(tns + XMLNames.Report_Tyre_TyreRRCDeclared, axle.RollResistanceCoefficient.ToXMLFormat(4)),
new XElement(tns + XMLNames.AxleWheels_Axles_Axle_TwinTyres, axle.TwinTyres)); new XElement(tns + XMLNames.AxleWheels_Axles_Axle_TwinTyres, axle.TwinTyres));
} }
...@@ -246,7 +247,7 @@ namespace TUGraz.VectoCore.OutputData.XML ...@@ -246,7 +247,7 @@ namespace TUGraz.VectoCore.OutputData.XML
{ {
return new object[] { return new object[] {
new XElement(tns + XMLNames.Component_Model, data.ModelName), new XElement(tns + XMLNames.Component_Model, data.ModelName),
new XElement(tns + "CertificationNumber", data.CertificationNumber), new XElement(tns + XMLNames.Report_Component_CertificationNumber, data.CertificationNumber),
new XElement(tns + XMLNames.DI_Signature_Reference_DigestValue, data.DigestValueInput) new XElement(tns + XMLNames.DI_Signature_Reference_DigestValue, data.DigestValueInput)
}; };
} }
...@@ -255,10 +256,10 @@ namespace TUGraz.VectoCore.OutputData.XML ...@@ -255,10 +256,10 @@ namespace TUGraz.VectoCore.OutputData.XML
{ {
return new object[] { return new object[] {
new XElement(tns + XMLNames.Component_Model, data.ModelName), new XElement(tns + XMLNames.Component_Model, data.ModelName),
new XElement(tns + "CertificationMethod", data.CertificationMethod.ToXMLFormat()), new XElement(tns + XMLNames.Report_Component_CertificationMethod, data.CertificationMethod.ToXMLFormat()),
data.CertificationMethod == CertificationMethod.StandardValues data.CertificationMethod == CertificationMethod.StandardValues
? null ? null
: new XElement(tns + "CertificationNumber", data.CertificationNumber), : new XElement(tns + XMLNames.Report_Component_CertificationNumber, data.CertificationNumber),
new XElement(tns + XMLNames.DI_Signature_Reference_DigestValue, data.DigestValueInput) new XElement(tns + XMLNames.DI_Signature_Reference_DigestValue, data.DigestValueInput)
}; };
} }
...@@ -268,9 +269,10 @@ namespace TUGraz.VectoCore.OutputData.XML ...@@ -268,9 +269,10 @@ namespace TUGraz.VectoCore.OutputData.XML
{ {
foreach (var resultEntry in entry.ModData) { foreach (var resultEntry in entry.ModData) {
allSuccess &= resultEntry.Value.Status == VectoRun.Status.Success; allSuccess &= resultEntry.Value.Status == VectoRun.Status.Success;
Results.Add(new XElement(tns + "Result", Results.Add(new XElement(tns + XMLNames.Report_Result_Result,
new XAttribute("status", resultEntry.Value.Status == VectoRun.Status.Success?"success" : "error"), new XAttribute(XMLNames.Report_Result_Status_Attr,
new XElement(tns + "Mission", entry.Mission.ToXMLFormat()), resultEntry.Value.Status == VectoRun.Status.Success ? "success" : "error"),
new XElement(tns + XMLNames.Report_Result_Mission, entry.Mission.ToXMLFormat()),
GetResults(resultEntry))); GetResults(resultEntry)));
} }
} }
...@@ -286,8 +288,8 @@ namespace TUGraz.VectoCore.OutputData.XML ...@@ -286,8 +288,8 @@ namespace TUGraz.VectoCore.OutputData.XML
case VectoRun.Status.Canceled: case VectoRun.Status.Canceled:
case VectoRun.Status.Aborted: case VectoRun.Status.Aborted:
return new object[] { return new object[] {
new XElement(tns+"Error", resultEntry.Value.Error), new XElement(tns + XMLNames.Report_Results_Error, resultEntry.Value.Error),
new XElement(tns+"ErrorDetails", resultEntry.Value.StackTrace), new XElement(tns + XMLNames.Report_Results_ErrorDetails, resultEntry.Value.StackTrace),
}; };
default: default:
throw new ArgumentOutOfRangeException(); throw new ArgumentOutOfRangeException();
...@@ -297,20 +299,29 @@ namespace TUGraz.VectoCore.OutputData.XML ...@@ -297,20 +299,29 @@ namespace TUGraz.VectoCore.OutputData.XML
private object[] GetSuccessResultEntry(XMLDeclarationReport.ResultEntry result) private object[] GetSuccessResultEntry(XMLDeclarationReport.ResultEntry result)
{ {
return new object[] { return new object[] {
new XElement(tns + "Distance", new XAttribute("unit", "km"), result.Distance.ConvertTo().Kilo.Meter.ToXMLFormat(3)), new XElement(tns + XMLNames.Report_ResultEntry_Distance, new XAttribute(XMLNames.Report_Results_Unit_Attr, "km"),
new XElement(tns + "SimulationParameters", result.Distance.ConvertTo().Kilo.Meter.ToXMLFormat(3)),
new XElement(tns + "TotalVehicleMass", new XAttribute("unit", "kg"), result.TotalVehicleWeight.ToXMLFormat(0)), new XElement(tns + XMLNames.Report_ResultEntry_SimulationParameters,
new XElement(tns + "Payload", new XAttribute("unit", "kg"), result.Payload.ToXMLFormat(0)), new XElement(tns + XMLNames.Report_ResultEntry_TotalVehicleMass,
new XElement(tns + "FuelType", result.FuelType.ToXMLFormat()) new XAttribute(XMLNames.Report_Results_Unit_Attr, "kg"), result.TotalVehicleWeight.ToXMLFormat(0)),
new XElement(tns + XMLNames.Report_ResultEntry_Payload, new XAttribute(XMLNames.Report_Results_Unit_Attr, "kg"),
result.Payload.ToXMLFormat(0)),
new XElement(tns + XMLNames.Report_ResultEntry_FuelType, result.FuelType.ToXMLFormat())
), ),
new XElement(tns + "VehiclePerformance", new XElement(tns + XMLNames.Report_ResultEntry_VehiclePerformance,
new XElement(tns + "AverageSpeed", new XAttribute("unit", "km/h"), result.AverageSpeed.AsKmph.ToXMLFormat(1)), new XElement(tns + XMLNames.Report_ResultEntry_AverageSpeed,
new XElement(tns + "MinSpeed", new XAttribute("unit", "km/h"), result.MinSpeed.AsKmph.ToXMLFormat(1)), new XAttribute(XMLNames.Report_Results_Unit_Attr, "km/h"), result.AverageSpeed.AsKmph.ToXMLFormat(1)),
new XElement(tns + "MaxSpeed", new XAttribute("unit", "km/h"), result.MaxSpeed.AsKmph.ToXMLFormat(1)), new XElement(tns + XMLNames.Report_ResultEntry_MinSpeed, new XAttribute(XMLNames.Report_Results_Unit_Attr, "km/h"),
new XElement(tns + "MaxDeceleration", new XAttribute("unit", "m/s²"), result.MaxDeceleration.ToXMLFormat(2)), result.MinSpeed.AsKmph.ToXMLFormat(1)),
new XElement(tns + "MaxAcceleration", new XAttribute("unit", "m/s²"), result.MaxAcceleration.ToXMLFormat(2)), new XElement(tns + XMLNames.Report_ResultEntry_MaxSpeed, new XAttribute(XMLNames.Report_Results_Unit_Attr, "km/h"),
new XElement(tns + "FullLoadDrivingtimePercentage", result.FullLoadPercentage.ToXMLFormat(2)), result.MaxSpeed.AsKmph.ToXMLFormat(1)),
new XElement(tns + "GearshiftCount", result.GearshiftCount.ToXMLFormat(0)) new XElement(tns + XMLNames.Report_ResultEntry_MaxDeceleration,
new XAttribute(XMLNames.Report_Results_Unit_Attr, "m/s²"), result.MaxDeceleration.ToXMLFormat(2)),
new XElement(tns + XMLNames.Report_ResultEntry_MaxAcceleration,
new XAttribute(XMLNames.Report_Results_Unit_Attr, "m/s²"), result.MaxAcceleration.ToXMLFormat(2)),
new XElement(tns + XMLNames.Report_ResultEntry_FullLoadDrivingtimePercentage,
result.FullLoadPercentage.ToXMLFormat(2)),
new XElement(tns + XMLNames.Report_ResultEntry_GearshiftCount, result.GearshiftCount.ToXMLFormat(0))
), ),
//FC //FC
XMLDeclarationReport.GetResults(result, tns, true).Cast<object>().ToArray() XMLDeclarationReport.GetResults(result, tns, true).Cast<object>().ToArray()
...@@ -320,9 +331,10 @@ namespace TUGraz.VectoCore.OutputData.XML ...@@ -320,9 +331,10 @@ namespace TUGraz.VectoCore.OutputData.XML
private XElement GetApplicationInfo() private XElement GetApplicationInfo()
{ {
var vectodll = Assembly.LoadFrom(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "VectoCore.dll")).GetName(); var vectodll = Assembly.LoadFrom(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "VectoCore.dll")).GetName();
return new XElement(tns + "ApplicationInformation", return new XElement(tns + XMLNames.Report_ApplicationInfo_ApplicationInformation,
new XElement(tns + "SimulationToolVersion", vectodll.Version), new XElement(tns + XMLNames.Report_ApplicationInfo_SimulationToolVersion, vectodll.Version),
new XElement(tns + "Date", XmlConvert.ToString(DateTime.Now, XmlDateTimeSerializationMode.Utc))); new XElement(tns + XMLNames.Report_ApplicationInfo_Date,
XmlConvert.ToString(DateTime.Now, XmlDateTimeSerializationMode.Utc)));
} }
public void GenerateReport() public void GenerateReport()
...@@ -330,7 +342,7 @@ namespace TUGraz.VectoCore.OutputData.XML ...@@ -330,7 +342,7 @@ namespace TUGraz.VectoCore.OutputData.XML
var xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance"); var xsi = XNamespace.Get("http://www.w3.org/2001/XMLSchema-instance");
var retVal = new XDocument(); var retVal = new XDocument();
var results = new XElement(Results); var results = new XElement(Results);
results.AddFirst(new XElement(tns + "Status", allSuccess ? "success" : "error")); results.AddFirst(new XElement(tns + XMLNames.Report_Result_Status, allSuccess ? "success" : "error"));
var vehicle = new XElement(VehiclePart); var vehicle = new XElement(VehiclePart);
vehicle.Add(InputDataIntegrity); vehicle.Add(InputDataIntegrity);
retVal.Add(new XElement(tns + "VectoOutput", retVal.Add(new XElement(tns + "VectoOutput",
......
...@@ -187,6 +187,7 @@ ...@@ -187,6 +187,7 @@
<xs:documentation>P150</xs:documentation> <xs:documentation>P150</xs:documentation>
</xs:annotation> </xs:annotation>
</xs:element> </xs:element>
<xs:element name="AverageRRC" type="vdecdef:TyreRRCISOType"/>
<xs:element name="InputDataSignature" type="vdecdef:SignatureType"/> <xs:element name="InputDataSignature" type="vdecdef:SignatureType"/>
</xs:sequence> </xs:sequence>
</xs:complexType> </xs:complexType>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment