From 0f91fff45d58bfce37ac9b906a393aab88213cd2 Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Wed, 4 Sep 2019 09:59:10 +0200
Subject: [PATCH] turn engine on (if it is off) and no eco-roll or pcc action
 is active

---
 .../SimulationComponent/Impl/DefaultDriverStrategy.cs | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs b/VectoCore/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs
index 91caf0f824..0e5bdf0159 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Impl/DefaultDriverStrategy.cs
@@ -194,6 +194,12 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 				HandleEcoRoll(absTime, targetVelocity);
 			}
 
+			if (EcoRollState.State != EcoRollStates.EcoRollOn && PCCState != PCCStates.UseCase1 &&
+				PCCState != PCCStates.UseCase2) {
+				EngineOffTimestamp = null;
+				Driver.DataBus.IgnitionOn = true;
+			}
+
 			if (CurrentDrivingMode == DrivingMode.DrivingModeBrake) {
 				if (Driver.DataBus.Distance.IsGreaterOrEqual(BrakeTrigger.TriggerDistance, 1e-3.SI<Meter>())) {
 					CurrentDrivingMode = DrivingMode.DrivingModeDrive;
@@ -392,6 +398,11 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 			var dBus = Driver.DataBus;
 			var vehicleSpeedAboveLowerThreshold = dBus.VehicleSpeed >= Driver.DriverData.EcoRoll.MinSpeed;
 			var slopeNegative = dBus.RoadGradient.IsSmaller(0);
+			// potential optimization...
+			//if (EcoRollState.State != EcoRollStates.EcoRollOn && !slopeNegative) {
+			//	EcoRollState.State = EcoRollStates.EcoRollOff;
+			//	return;
+			//}
 			var forces = dBus.SlopeResistance(dBus.RoadGradient) + dBus.RollingResistance(dBus.RoadGradient) +
 						dBus.AirDragResistance(dBus.VehicleSpeed, dBus.VehicleSpeed);
 
-- 
GitLab