UM optimizations.
This commit is contained in:
parent
603dee7661
commit
40323e3afe
@ -37,7 +37,7 @@ class UsermodTemperature : public Usermod {
|
||||
// used to determine when we can read the sensors temperature
|
||||
// we have to wait at least 93.75 ms after requestTemperatures() is called
|
||||
unsigned long lastTemperaturesRequest;
|
||||
float temperature = -100.0f; // default to -100, DS18B20 only goes down to -50C
|
||||
float temperature = -127.0f; // default to -127, DS18B20 only goes down to -50C
|
||||
// indicates requestTemperatures has been called but the sensor measurement is not complete
|
||||
bool waitingForConversion = false;
|
||||
// flag set at startup if DS18B20 sensor not found, avoids trying to keep getting
|
||||
@ -60,7 +60,6 @@ class UsermodTemperature : public Usermod {
|
||||
if (oneWire->reset()) { // if reset() fails there are no OneWire devices
|
||||
oneWire->skip(); // skip ROM
|
||||
oneWire->write(0xBE); // read (temperature) from EEPROM
|
||||
delayMicroseconds(250);
|
||||
oneWire->read_bytes(data, 9); // first 2 bytes contain temperature
|
||||
#ifdef WLED_DEBUG
|
||||
if (OneWire::crc8(data,8) != data[8]) {
|
||||
@ -85,7 +84,8 @@ class UsermodTemperature : public Usermod {
|
||||
break;
|
||||
}
|
||||
}
|
||||
return retVal;
|
||||
for (byte i=1; i<9; i++) data[0] &= data[i];
|
||||
return data[0]==0xFF ? -127.0f : retVal;
|
||||
}
|
||||
|
||||
void requestTemperatures() {
|
||||
@ -176,7 +176,7 @@ class UsermodTemperature : public Usermod {
|
||||
}
|
||||
|
||||
// we were waiting for a conversion to complete, have we waited log enough?
|
||||
if (now - lastTemperaturesRequest >= 100 /* 93.75ms per the datasheet but can be up to 750ms */) {
|
||||
if (now - lastTemperaturesRequest >= 750 /* 93.75ms per the datasheet but can be up to 750ms */) {
|
||||
readTemperature();
|
||||
|
||||
if (WLED_MQTT_CONNECTED) {
|
||||
|
@ -386,7 +386,8 @@ class FourLineDisplayUsermod : public Usermod {
|
||||
setFlipMode(flip);
|
||||
setContrast(contrast); //Contrast setup will help to preserve OLED lifetime. In case OLED need to be brighter increase number up to 255
|
||||
setPowerSave(0);
|
||||
drawString(0, 0, "Loading...");
|
||||
//drawString(0, 0, "Loading...");
|
||||
overlay(PSTR("Loading..."),3000,0);
|
||||
}
|
||||
|
||||
// gets called every time WiFi is (re-)connected. Initialize own network
|
||||
@ -484,6 +485,7 @@ class FourLineDisplayUsermod : public Usermod {
|
||||
if (forceRedraw) {
|
||||
knownHour = 99;
|
||||
needRedraw = true;
|
||||
clear();
|
||||
} else if ((bri == 0 && powerON) || (bri > 0 && !powerON)) { //trigger power icon
|
||||
powerON = !powerON;
|
||||
drawStatusIcons();
|
||||
@ -526,6 +528,7 @@ class FourLineDisplayUsermod : public Usermod {
|
||||
if (sleepMode && !displayTurnedOff && (now - lastRedraw > screenTimeout)) {
|
||||
// We will still check if there is a change in redraw()
|
||||
// and turn it back on if it changed.
|
||||
clear();
|
||||
sleepOrClock(true);
|
||||
} else if (displayTurnedOff && clockMode) {
|
||||
showTime();
|
||||
@ -539,6 +542,7 @@ class FourLineDisplayUsermod : public Usermod {
|
||||
if (displayTurnedOff) {
|
||||
// Turn the display back on
|
||||
sleepOrClock(false);
|
||||
clear();
|
||||
}
|
||||
|
||||
// Update last known values.
|
||||
@ -705,6 +709,7 @@ class FourLineDisplayUsermod : public Usermod {
|
||||
if (type == NONE || !enabled) return false;
|
||||
knownHour = 99;
|
||||
if (displayTurnedOff) {
|
||||
clear();
|
||||
// Turn the display back on
|
||||
sleepOrClock(false);
|
||||
redraw(true);
|
||||
@ -729,8 +734,10 @@ class FourLineDisplayUsermod : public Usermod {
|
||||
if (glyphType > 0) {
|
||||
if (lineHeight == 2) drawGlyph(5, 0, glyphType, u8x8_font_benji_custom_icons_6x6, true);
|
||||
else drawGlyph(7, lineHeight, glyphType, u8x8_font_benji_custom_icons_2x2, true);
|
||||
if (line1) drawString(0, 3*lineHeight, line1);
|
||||
} else {
|
||||
if (line1) drawString(0, 2*(lineHeight-1), line1);
|
||||
}
|
||||
if (line1) drawString(0, 3*lineHeight, line1);
|
||||
overlayUntil = millis() + showHowLong;
|
||||
}
|
||||
|
||||
@ -777,7 +784,6 @@ class FourLineDisplayUsermod : public Usermod {
|
||||
* Enable sleep (turn the display off) or clock mode.
|
||||
*/
|
||||
void sleepOrClock(bool enabled) {
|
||||
clear();
|
||||
if (enabled) {
|
||||
if (clockMode) {
|
||||
knownMinute = knownHour = 99;
|
||||
|
Loading…
Reference in New Issue
Block a user