From b3310a8e01447750201026f21f0f1e63b12b6f30 Mon Sep 17 00:00:00 2001
From: Stefanos Doumpoulakis <dubulak@gmail.com>
Date: Thu, 15 Feb 2024 18:45:57 +0200
Subject: [PATCH] fix #338: eco roll set to 'none' in special case

Porting fix from version 3, where:
Eco roll without engine stop and no predictive cruise control should be
treated as no eco roll.
---
 .../DataObjectAdapter/AbstractSimulationDataAdapter.cs | 10 ----------
 .../Reader/DataObjectAdapter/EngineeringDataAdapter.cs |  7 +++++--
 .../SimulationComponents/ADASDataAdapter.cs            |  7 +++++--
 3 files changed, 10 insertions(+), 14 deletions(-)

diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs
index 01c90a9f8b..fa9975bfd9 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/AbstractSimulationDataAdapter.cs
@@ -54,16 +54,6 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 	public abstract class AbstractSimulationDataAdapter : LoggingObject
 	{
 		// =========================
-		protected VehicleData.ADASData CreateADAS(IAdvancedDriverAssistantSystemDeclarationInputData adas)
-		{
-			return new VehicleData.ADASData
-			{
-				EngineStopStart = adas.EngineStopStart,
-				EcoRoll = adas.EcoRoll,
-				PredictiveCruiseControl = adas.PredictiveCruiseControl,
-				InputData = adas
-			};
-		}
 		internal AirdragData SetCommonAirdragData(IAirdragDeclarationInputData data)
 		{
 			var retVal = new AirdragData()
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs
index 0b46e058eb..981ae0cc0f 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/EngineeringDataAdapter.cs
@@ -108,8 +108,11 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 				}: 
 				new VehicleData.ADASData {
 					EngineStopStart = adas.EngineStopStart,
-					EcoRoll = adas.EcoRoll,
-					PredictiveCruiseControl = adas.PredictiveCruiseControl
+					PredictiveCruiseControl = adas.PredictiveCruiseControl,
+					EcoRoll = ((adas.PredictiveCruiseControl == PredictiveCruiseControlType.None) 
+							&& adas.EcoRoll.WithoutEngineStop())
+					? EcoRollType.None
+					: adas.EcoRoll,
 			};
 		}
 
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SimulationComponents/ADASDataAdapter.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SimulationComponents/ADASDataAdapter.cs
index 508b93d5d7..c3846bccd2 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SimulationComponents/ADASDataAdapter.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/SimulationComponents/ADASDataAdapter.cs
@@ -12,9 +12,12 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SimulationComponen
 			return new VehicleData.ADASData
 			{
 				EngineStopStart = adas.EngineStopStart,
-				EcoRoll = adas.EcoRoll,
 				PredictiveCruiseControl = adas.PredictiveCruiseControl,
-				InputData = adas
+				InputData = adas,
+				EcoRoll = ((adas.PredictiveCruiseControl == PredictiveCruiseControlType.None) 
+							&& adas.EcoRoll.WithoutEngineStop())
+					? EcoRollType.None
+					: adas.EcoRoll,
 			};
 		}
 	}
-- 
GitLab