comparison 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
comparison
equal deleted inserted replaced
979:e7cd7ffd1879 980:7149f372b0ba
335 else 335 else
336 tCCR_fallbackToFixedSetpoint(); 336 tCCR_fallbackToFixedSetpoint();
337 } 337 }
338 } 338 }
339 339
340 /* decrease scrubber timer only if we are not bailed out */ 340 // If we are in the simulator the counter is updated in `simulator.c`
341 if((pSettings->scrubTimerMode != SCRUB_TIMER_OFF) && (isLoopMode(pSettings->dive_mode)) && (stateUsed->mode == MODE_DIVE) && isLoopMode(stateUsed->diveSettings.diveMode)) 341 if (!is_stateUsedSetToSim()) {
342 { 342 /* decrease scrubber timer only if we are not bailed out */
343 ScrubberTimeoutCount++; 343 if((pSettings->scrubTimerMode != SCRUB_TIMER_OFF) && (isLoopMode(pSettings->dive_mode)) && (stateUsed->mode == MODE_DIVE) && isLoopMode(stateUsed->diveSettings.diveMode))
344 if(ScrubberTimeoutCount >= 600) /* resolution is minutes */ 344 {
345 { 345 ScrubberTimeoutCount++;
346 ScrubberTimeoutCount = 0; 346 if(ScrubberTimeoutCount >= 600) /* resolution is minutes */
347 if(stateUsed->scrubberDataDive[pSettings->scubberActiveId].TimerCur > MIN_SCRUBBER_TIME) 347 {
348 { 348 ScrubberTimeoutCount = 0;
349 stateUsedWrite->scrubberDataDive[pSettings->scubberActiveId].TimerCur--; 349 if(stateUsed->scrubberDataDive[pSettings->scubberActiveId].TimerCur > MIN_SCRUBBER_TIME)
350 } 350 {
351 translateDate(stateUsed->lifeData.dateBinaryFormat, &stateUsedWrite->scrubberDataDive[pSettings->scubberActiveId].lastDive); 351 stateUsedWrite->scrubberDataDive[pSettings->scubberActiveId].TimerCur--;
352 } 352 }
353 translateDate(stateUsed->lifeData.dateBinaryFormat, &stateUsedWrite->scrubberDataDive[pSettings->scubberActiveId].lastDive);
354 }
355 }
353 } 356 }
354 } 357 }
355 358
356 void tCCR_SetRXIndication(void) 359 void tCCR_SetRXIndication(void)
357 { 360 {