diff Discovery/Src/tCCR.c @ 980:7149f372b0ba Evo_2_23

Fix a couple of bugs in the scrubber timer: - double speed scrubber countdown in simulator mode - unwanted updating of last scrubber use date in simulator mode - invalid remaining scrubber display in surface mode (mikeller)
author heinrichsweikamp
date Tue, 04 Feb 2025 13:49:43 +0100
parents 4d98fb2a178e
children 5a690195b6b7
line wrap: on
line diff
--- a/Discovery/Src/tCCR.c	Tue Feb 04 13:48:53 2025 +0100
+++ b/Discovery/Src/tCCR.c	Tue Feb 04 13:49:43 2025 +0100
@@ -337,19 +337,22 @@
 		}
 	}
 
-	/* decrease scrubber timer only if we are not bailed out */
-    if((pSettings->scrubTimerMode != SCRUB_TIMER_OFF) && (isLoopMode(pSettings->dive_mode)) && (stateUsed->mode == MODE_DIVE) && isLoopMode(stateUsed->diveSettings.diveMode))
-    {
-    	ScrubberTimeoutCount++;
-    	if(ScrubberTimeoutCount >= 600)		/* resolution is minutes */
-    	{
-    		ScrubberTimeoutCount = 0;
-    		if(stateUsed->scrubberDataDive[pSettings->scubberActiveId].TimerCur > MIN_SCRUBBER_TIME)
-    		{
-    			stateUsedWrite->scrubberDataDive[pSettings->scubberActiveId].TimerCur--;
-    		}
-    		translateDate(stateUsed->lifeData.dateBinaryFormat, &stateUsedWrite->scrubberDataDive[pSettings->scubberActiveId].lastDive);
-    	}
+    // If we are in the simulator the counter is updated in `simulator.c`
+    if (!is_stateUsedSetToSim()) {
+        /* decrease scrubber timer only if we are not bailed out */
+        if((pSettings->scrubTimerMode != SCRUB_TIMER_OFF) && (isLoopMode(pSettings->dive_mode)) && (stateUsed->mode == MODE_DIVE) && isLoopMode(stateUsed->diveSettings.diveMode))
+        {
+            ScrubberTimeoutCount++;
+            if(ScrubberTimeoutCount >= 600)		/* resolution is minutes */
+            {
+                ScrubberTimeoutCount = 0;
+                if(stateUsed->scrubberDataDive[pSettings->scubberActiveId].TimerCur > MIN_SCRUBBER_TIME)
+                {
+                    stateUsedWrite->scrubberDataDive[pSettings->scubberActiveId].TimerCur--;
+                }
+                translateDate(stateUsed->lifeData.dateBinaryFormat, &stateUsedWrite->scrubberDataDive[pSettings->scubberActiveId].lastDive);
+            }
+        }
     }
 }