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