From 99350207ac1ef1d8021e61e677e44b51015d35c5 Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Wed, 4 Sep 2019 09:58:35 +0200
Subject: [PATCH] pcc segment preprocessor: skip potential pcc segment if
 target speed changes, not highway part, or target speed is below pcc-enable
 speed

---
 .../VectoCore/Models/Simulation/Impl/PCCSegmentPreprocessor.cs | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/PCCSegmentPreprocessor.cs b/VectoCore/VectoCore/Models/Simulation/Impl/PCCSegmentPreprocessor.cs
index ea14021eae..b248bd3527 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/PCCSegmentPreprocessor.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/PCCSegmentPreprocessor.cs
@@ -43,11 +43,13 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl {
 			var targetspeedChanged = 0.SI<Meter>();
 			foreach (var tuple in Container.RunData.Cycle.Entries.Pairwise(Tuple.Create)) {
 				if (!tuple.Item1.Highway) {
+					pccSegment = null;
 					continue;
 				}
 
 				if (!tuple.Item1.VehicleTargetSpeed.IsGreaterOrEqual(PCCDriverData.PCCEnableSpeed)) {
 					// only consider pcc segments where the target speed is at least the pcc-enable speed
+					pccSegment = null;
 					continue;
 				}
 				if (tuple.Item1.Distance.IsEqual(tuple.Item2.Distance)) {
@@ -58,6 +60,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl {
 				if (!tuple.Item1.VehicleTargetSpeed.IsEqual(tuple.Item2.VehicleTargetSpeed)) {
 					// target speed must not change within PCC segment
 					targetspeedChanged = tuple.Item2.Distance;
+					pccSegment = null;
 					continue;
 				}
 
-- 
GitLab