mirror of
https://github.com/airgradienthq/arduino.git
synced 2025-07-02 02:50:58 +02:00
Fix LED bar flickers
This commit is contained in:
@ -462,6 +462,7 @@ static void ledBarEnabledUpdate(void) {
|
||||
ag->ledBar.setBrighness(brightness);
|
||||
ag->ledBar.setEnable(configuration.getLedBarMode() != LedBarModeOff);
|
||||
}
|
||||
ag->ledBar.show();
|
||||
}
|
||||
}
|
||||
|
||||
@ -804,10 +805,6 @@ static void configUpdateHandle() {
|
||||
return;
|
||||
}
|
||||
|
||||
if (ag->isOne()) {
|
||||
ledBarEnabledUpdate();
|
||||
stateMachine.executeLedBarTest();
|
||||
}
|
||||
stateMachine.executeCo2Calibration();
|
||||
|
||||
String mqttUri = configuration.getMqttBrokerUri();
|
||||
@ -843,15 +840,42 @@ static void configUpdateHandle() {
|
||||
|
||||
if (ag->isOne()) {
|
||||
if (configuration.isLedBarBrightnessChanged()) {
|
||||
ag->ledBar.setBrighness(configuration.getLedBarBrightness());
|
||||
Serial.println("Set 'LedBarBrightness' brightness: " +
|
||||
if (configuration.getLedBarBrightness() == 0) {
|
||||
ag->ledBar.setEnable(false);
|
||||
} else {
|
||||
if (configuration.getLedBarMode() != LedBarMode::LedBarModeOff) {
|
||||
ag->ledBar.setEnable(true);
|
||||
}
|
||||
ag->ledBar.setBrighness(configuration.getLedBarBrightness());
|
||||
}
|
||||
ag->ledBar.show();
|
||||
Serial.println("Set 'ledBarBrightness' brightness: " +
|
||||
String(configuration.getLedBarBrightness()));
|
||||
}
|
||||
|
||||
if (configuration.isLedBarModeChanged()) {
|
||||
Serial.println("Set 'ledBarMode' " + String(configuration.getLedBarMode()));
|
||||
Serial.println("Get 'ledBarBrightness' " + String(configuration.getLedBarBrightness()));
|
||||
if (configuration.getLedBarBrightness() == 0) {
|
||||
ag->ledBar.setEnable(false);
|
||||
} else {
|
||||
if(configuration.getLedBarMode() == LedBarMode::LedBarModeOff) {
|
||||
ag->ledBar.setEnable(false);
|
||||
} else {
|
||||
ag->ledBar.setEnable(true);
|
||||
ag->ledBar.setBrighness(configuration.getLedBarBrightness());
|
||||
}
|
||||
}
|
||||
ag->ledBar.show();
|
||||
}
|
||||
|
||||
if (configuration.isDisplayBrightnessChanged()) {
|
||||
oledDisplay.setBrightness(configuration.getDisplayBrightness());
|
||||
Serial.println("Set 'DisplayBrightness' brightness: " +
|
||||
String(configuration.getDisplayBrightness()));
|
||||
}
|
||||
|
||||
stateMachine.executeLedBarTest();
|
||||
}
|
||||
|
||||
fwNewVersion = configuration.newFirmwareVersion();
|
||||
|
@ -372,6 +372,7 @@ bool Configuration::parse(String data, bool isLocal) {
|
||||
}
|
||||
}
|
||||
|
||||
_ledBarModeChanged = false;
|
||||
if (JSON.typeof_(root[jprop_ledBarMode]) == "string") {
|
||||
String mode = root[jprop_ledBarMode];
|
||||
if (mode == getLedBarModeName(LedBarMode::LedBarModeCO2) ||
|
||||
@ -380,6 +381,7 @@ bool Configuration::parse(String data, bool isLocal) {
|
||||
String oldMode = jconfig[jprop_ledBarMode];
|
||||
if (mode != oldMode) {
|
||||
jconfig[jprop_ledBarMode] = mode;
|
||||
_ledBarModeChanged = true;
|
||||
changed = true;
|
||||
}
|
||||
} else {
|
||||
@ -559,6 +561,7 @@ bool Configuration::parse(String data, bool isLocal) {
|
||||
}
|
||||
}
|
||||
|
||||
ledBarBrightnessChanged = false;
|
||||
if (JSON.typeof_(root[jprop_ledBarBrightness]) == "number") {
|
||||
int value = root[jprop_ledBarBrightness];
|
||||
int oldValue = jconfig[jprop_ledBarBrightness];
|
||||
@ -1148,6 +1151,12 @@ void Configuration::setOfflineModeWithoutSave(bool offline) {
|
||||
_offlineMode = offline;
|
||||
}
|
||||
|
||||
bool Configuration::isLedBarModeChanged(void) {
|
||||
bool changed = _ledBarModeChanged;
|
||||
_ledBarModeChanged = false;
|
||||
return changed;
|
||||
}
|
||||
|
||||
bool Configuration::isDisplayBrightnessChanged(void) {
|
||||
bool changed = displayBrightnessChanged;
|
||||
displayBrightnessChanged = false;
|
||||
|
@ -18,6 +18,7 @@ private:
|
||||
bool displayBrightnessChanged = false;
|
||||
String otaNewFirmwareVersion;
|
||||
bool _offlineMode = false;
|
||||
bool _ledBarModeChanged = false;
|
||||
|
||||
AirGradient* ag;
|
||||
|
||||
@ -80,6 +81,7 @@ public:
|
||||
bool isOfflineMode(void);
|
||||
void setOfflineMode(bool offline);
|
||||
void setOfflineModeWithoutSave(bool offline);
|
||||
bool isLedBarModeChanged(void);
|
||||
};
|
||||
|
||||
#endif /** _AG_CONFIG_H_ */
|
||||
|
Reference in New Issue
Block a user