mirror of
https://github.com/Ralim/IronOS.git
synced 2025-02-26 07:53:55 +00:00
Hook some status colours to the LED
This commit is contained in:
@@ -438,7 +438,7 @@ bool isTipDisconnected() {
|
||||
|
||||
void setStatusLED(const enum StatusLED state) {
|
||||
static enum StatusLED lastState = LED_UNKNOWN;
|
||||
if (lastState != state) {
|
||||
if (lastState != state || state == LED_HEATING) {
|
||||
switch (state) {
|
||||
case LED_UNKNOWN:
|
||||
case LED_OFF:
|
||||
@@ -447,8 +447,11 @@ void setStatusLED(const enum StatusLED state) {
|
||||
case LED_STANDBY:
|
||||
WS2812::led_set_color(0, 0, 0xFF, 0); //green
|
||||
break;
|
||||
case LED_HEATING:
|
||||
WS2812::led_set_color(0, 0, 0, 0xFF); //Blue
|
||||
case LED_HEATING: {
|
||||
WS2812::led_set_color(0, ((HAL_GetTick() / 10) % 192) + 64, 0,
|
||||
0); //Red fade
|
||||
}
|
||||
|
||||
break;
|
||||
case LED_HOT:
|
||||
WS2812::led_set_color(0, 0xFF, 0, 0); //red
|
||||
|
||||
@@ -522,7 +522,7 @@ static void gui_solderingMode(uint8_t jumpToSleep) {
|
||||
// Unlock buttons
|
||||
buttonsLocked = false;
|
||||
warnUser(translatedString(Tr->UnlockingKeysString),
|
||||
TICKS_SECOND);
|
||||
TICKS_SECOND);
|
||||
break;
|
||||
case BUTTON_F_LONG:
|
||||
// if boost mode is enabled turn it on
|
||||
@@ -538,7 +538,7 @@ static void gui_solderingMode(uint8_t jumpToSleep) {
|
||||
case BUTTON_B_SHORT:
|
||||
// Do nothing and display a lock warming
|
||||
warnUser(translatedString(Tr->WarningKeysLockedString),
|
||||
TICKS_SECOND / 2);
|
||||
TICKS_SECOND / 2);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@@ -575,7 +575,7 @@ static void gui_solderingMode(uint8_t jumpToSleep) {
|
||||
// Lock buttons
|
||||
buttonsLocked = true;
|
||||
warnUser(translatedString(Tr->LockingKeysString),
|
||||
TICKS_SECOND);
|
||||
TICKS_SECOND);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
@@ -679,6 +679,14 @@ static void gui_solderingMode(uint8_t jumpToSleep) {
|
||||
return; // If the function returns non-0 then exit
|
||||
}
|
||||
}
|
||||
//Update LED status
|
||||
int error = currentTempTargetDegC - TipThermoModel::getTipInC();
|
||||
if (error >= -10 && error <= 10) {
|
||||
//converged
|
||||
setStatusLED(LED_HOT);
|
||||
} else {
|
||||
setStatusLED(LED_HEATING);
|
||||
}
|
||||
// slow down ui update rate
|
||||
GUIDelay();
|
||||
}
|
||||
@@ -918,7 +926,7 @@ void startGUITask(void const *argument __unused) {
|
||||
if (tipTemp > 55) {
|
||||
setStatusLED(LED_COOLING_STILL_HOT);
|
||||
} else {
|
||||
setStatusLED(LED_OFF);
|
||||
setStatusLED(LED_STANDBY);
|
||||
}
|
||||
// Preemptively turn the display on. Turn it off if and only if
|
||||
// the tip temperature is below 50 degrees C *and* motion sleep
|
||||
@@ -933,6 +941,7 @@ void startGUITask(void const *argument __unused) {
|
||||
&& ((xTaskGetTickCount() - lastButtonTime)
|
||||
> BUTTON_INACTIVITY_TIME))) {
|
||||
OLED::setDisplayState(OLED::DisplayState::OFF);
|
||||
setStatusLED(LED_OFF);
|
||||
}
|
||||
// Clear the lcd buffer
|
||||
OLED::clearScreen();
|
||||
|
||||
Reference in New Issue
Block a user