From 036d75f79e236b446fd297836c0f4d5d6e4c25d4 Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Tue, 11 Feb 2020 17:24:55 +0100
Subject: [PATCH] fix: manufacturer report: in case no xml input is provided
 create xml

---
 .../XML/AbstractXMLManufacturerReport.cs      | 28 ++++++++++++++++++-
 1 file changed, 27 insertions(+), 1 deletion(-)

diff --git a/VectoCore/VectoCore/OutputData/XML/AbstractXMLManufacturerReport.cs b/VectoCore/VectoCore/OutputData/XML/AbstractXMLManufacturerReport.cs
index aa59d0eed6..e610e3c148 100644
--- a/VectoCore/VectoCore/OutputData/XML/AbstractXMLManufacturerReport.cs
+++ b/VectoCore/VectoCore/OutputData/XML/AbstractXMLManufacturerReport.cs
@@ -5,9 +5,11 @@ using System.Linq;
 using System.Xml;
 using System.Xml.Linq;
 using TUGraz.IVT.VectoXML.Writer;
+using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Resources;
 using TUGraz.VectoCommon.Utils;
+using TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl;
 using TUGraz.VectoCore.Models.Declaration;
 using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.Models.Simulation.Impl;
@@ -233,16 +235,40 @@ namespace TUGraz.VectoCore.OutputData.XML
 
 		protected virtual XElement GetADAS(VehicleData.ADASData adasData)
 		{
+			if (adasData.InputData.XMLSource == null) {
+				return CreateADAS(adasData);
+			}
+
 			var ns = XNamespace.Get(adasData.InputData.XMLSource.SchemaInfo.SchemaType.QualifiedName.Namespace);
+			var type = adasData.InputData.XMLSource.SchemaInfo.SchemaType.QualifiedName.Name;
+				
 			const string adasPrefix = "adas";
 			return new XElement(
 				tns + XMLNames.Vehicle_ADAS,
 				new XAttribute(XNamespace.Xmlns + adasPrefix, ns.NamespaceName),
-				new XAttribute(xsi + "type", string.Format("{0}:{1}", adasPrefix, adasData.InputData.XMLSource.SchemaInfo.SchemaType.QualifiedName.Name)),
+				new XAttribute(xsi + "type", string.Format("{0}:{1}", adasPrefix, type)),
 				XElement.Parse(adasData.InputData.XMLSource.OuterXml).Elements()
 			);
 		}
 
+		protected virtual XElement CreateADAS(VehicleData.ADASData adasData)
+		{
+			var ns = XMLADASReaderV23.NAMESPACE_URI;
+			var type = XMLADASReaderV23.XSD_TYPE;
+
+			const string adasPrefix = "adas";
+			return new XElement(
+				tns + XMLNames.Vehicle_ADAS,
+				new XAttribute(XNamespace.Xmlns + adasPrefix, ns.NamespaceName),
+				new XAttribute(xsi + "type", string.Format("{0}:{1}", adasPrefix, type)),
+					new XElement(ns + XMLNames.Vehicle_ADAS_EngineStopStart, adasData.EngineStopStart),
+					new XElement(ns + XMLNames.Vehicle_ADAS_EcoRollWithoutEngineStop, adasData.EcoRoll.WithoutEngineStop()),
+					new XElement(ns + XMLNames.Vehicle_ADAS_EcoRollWithEngineStopStart, adasData.EcoRoll.WithEngineStop()),
+					new XElement(ns + XMLNames.Vehicle_ADAS_PCC, adasData.PredictiveCruiseControl.ToXMLFormat()),
+					new XElement(ns + XMLNames.Vehicle_ADAS_ATEcoRollReleaseLockupClutch, adasData.InputData.ATEcoRollReleaseLockupClutch ?? false)
+			);
+		}
+
 		protected virtual XElement GetTorqueLimits(CombustionEngineData modelData)
 		{
 			var limits = new List<XElement>();
-- 
GitLab