aboutsummaryrefslogtreecommitdiffhomepage
path: root/source/Core/Threads
diff options
context:
space:
mode:
Diffstat (limited to 'source/Core/Threads')
-rw-r--r--source/Core/Threads/UI/logic/Soldering.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/source/Core/Threads/UI/logic/Soldering.cpp b/source/Core/Threads/UI/logic/Soldering.cpp
index 53d44d1c..35a7398a 100644
--- a/source/Core/Threads/UI/logic/Soldering.cpp
+++ b/source/Core/Threads/UI/logic/Soldering.cpp
@@ -9,10 +9,10 @@
OperatingMode handleSolderingButtons(const ButtonState buttons, guiContext *cxt) {
if (cxt->scratch_state.state1 >= 2) {
// Buttons are currently locked
- if (cxt->scratch_state.state1 > 3) {
+ if (cxt->scratch_state.state7 != 0) {
// show locked until timer is up
- if ((uint16_t)(xTaskGetTickCount() << 2) - (cxt->scratch_state.state1 & ~3) > TICKS_SECOND << 2) {
- cxt->scratch_state.state1 &= 3;
+ if (xTaskGetTickCount() >= cxt->scratch_state.state7) {
+ cxt->scratch_state.state7 = 0;
} else {
warnUser(translatedString(Tr->WarningKeysLockedString), buttons);
return OperatingMode::Soldering;
@@ -26,7 +26,7 @@ OperatingMode handleSolderingButtons(const ButtonState buttons, guiContext *cxt)
cxt->scratch_state.state1 = 1;
}
} else {
- vTaskDelay(TICKS_SECOND);
+ warnUser(translatedString(Tr->WarningKeysLockedString), buttons);
}
break;
case BUTTON_NONE:
@@ -39,7 +39,7 @@ OperatingMode handleSolderingButtons(const ButtonState buttons, guiContext *cxt)
}
/*Fall through*/
default: // Set timer for and display a lock warning
- cxt->scratch_state.state1 |= (xTaskGetTickCount() + TICKS_SECOND) << 2;
+ cxt->scratch_state.state7 = xTaskGetTickCount() + TICKS_SECOND;
warnUser(translatedString(Tr->WarningKeysLockedString), buttons);
break;
}
@@ -76,7 +76,6 @@ OperatingMode handleSolderingButtons(const ButtonState buttons, guiContext *cxt)
} else {
// FIXME should be WarningKeysUnlockedString
warnUser(translatedString(Tr->UnlockingKeysString), buttons);
- vTaskDelay(TICKS_SECOND);
}
}
break;