Update Soldering.cpp

fix timed locked warning based on review comments with additional state7 field.
This commit is contained in:
neon12345
2024-08-06 13:54:33 +02:00
committed by GitHub
parent cae14dee6a
commit dfbf45a1c4

View File

@@ -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;