From f2449a14743d2d2d3de8f455968f2abab6409d4d Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Wed, 16 Mar 2022 10:25:21 +0100
Subject: [PATCH] create instance of combustion engine before gearbox so that
 gearbox 'knows' there's an ICE in the powertrain.

---
 .../VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs    | 5 ++++-
 .../VectoCore/Resources/XSD/VectoDeclarationDefinitions.xsd  | 2 +-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
index e8c6f276bc..0d14dd0d88 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
@@ -347,6 +347,9 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 
 			var container = new VehicleContainer(data.ExecutionMode, _modData, _sumWriter) { RunData = data };
 
+			// engine has to be added before gearbox 
+			var engine = new StopStartCombustionEngine(container, data.EngineData);
+
 			// DistanceBasedDrivingCycle --> driver --> vehicle --> wheels 
 			// --> axleGear --> (retarder) --> gearBox --> (retarder) --> clutch --> engine <-- Aux
 			var cycle = new DistanceBasedDrivingCycle(container, data.Cycle);
@@ -362,7 +365,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 				powertrain = powertrain.AddComponent(new Clutch(container, data.EngineData));
 			}
 
-			var engine = new StopStartCombustionEngine(container, data.EngineData);
+			
 			var idleController = GetIdleController(data.PTO, engine, container);
 			cycle.IdleController = idleController as IdleControllerSwitcher;
 
diff --git a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.xsd b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.xsd
index 617872a0bd..4506ab7383 100644
--- a/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.xsd
+++ b/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.xsd
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- edited with XMLSpy v2016 rel. 2 sp1 (x64) (http://www.altova.com) by Helmut Eichlseder (TU Graz/Inst. f. VKM und THD) -->
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:vectoParam="urn:tugraz:ivt:VectoAPI:ParameterDocumentation" xmlns:vdj="urn:tugraz:ivt:VectoAPI:DeclarationJob" xmlns:vdi="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:vdd="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.2="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.2" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.8="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" xmlns:v2.10c="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.1" xmlns:v2.10j="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.2" targetNamespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions" elementFormDefault="qualified" attributeFormDefault="unqualified" version="2.0" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:ParameterDocumentation ParameterDocumentation.xsd">
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:vectoParam="urn:tugraz:ivt:VectoAPI:ParameterDocumentation" xmlns:vdj="urn:tugraz:ivt:VectoAPI:DeclarationJob" xmlns:vdi="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns:vdd="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions" xmlns:v1.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" xmlns:v2.2="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.2" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.3" targetNamespace="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions" elementFormDefault="qualified" attributeFormDefault="unqualified" version="2.0" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:ParameterDocumentation ParameterDocumentation.xsd">
 	<!-- 
 
          This is a convienience file that imports all supported declaration definitions
-- 
GitLab