forked from github/ebk_co2ampel
Variable für aktuellen Modus eingefügt, Methode zum setzen des Bootmodes angelegt, switchBootMode zu toggleBootMode umbenannt
This commit is contained in:
parent
93f0947a93
commit
488f6a62b9
1 changed files with 33 additions and 26 deletions
|
@ -47,25 +47,34 @@ int countdown = 0;
|
||||||
int lastvals[120];
|
int lastvals[120];
|
||||||
int dheight;
|
int dheight;
|
||||||
int safezone = false;
|
int safezone = false;
|
||||||
int tocalibrateornot;
|
int currentBootMode;
|
||||||
|
|
||||||
void switchBootMode(int bm){
|
void setBootMode(int bootMode) {
|
||||||
switch (bm){
|
if(bootMode == BOOT_NORMAL) {
|
||||||
case BOOT_CALIBRATE:
|
|
||||||
preferences.putUInt("cal", BOOT_NORMAL);
|
|
||||||
Serial.println("Startmodus nächster Reboot: Messmodus");
|
Serial.println("Startmodus nächster Reboot: Messmodus");
|
||||||
break;
|
preferences.putUInt("cal", bootMode);
|
||||||
case BOOT_NORMAL:
|
}
|
||||||
preferences.putUInt("cal", BOOT_CALIBRATE);
|
else if(bootMode == BOOT_CALIBRATE) {
|
||||||
Serial.println("Startmodus nächster Reboot: Kalibrierungsmodus");
|
Serial.println("Startmodus nächster Reboot: Kalibrierungsmodus");
|
||||||
break;
|
preferences.putUInt("cal", bootMode);
|
||||||
|
} else {
|
||||||
|
Serial.println("Unerwarteter Boot-Mode soll gespeichert werden. Abgebrochen.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void toggleBootMode(int bootMode) {
|
||||||
|
switch (bootMode){
|
||||||
|
case BOOT_CALIBRATE:
|
||||||
|
setBootMode(BOOT_NORMAL); break;
|
||||||
|
case BOOT_NORMAL:
|
||||||
|
setBootMode(BOOT_CALIBRATE); break;
|
||||||
case BOOT_UNKNOWN:
|
case BOOT_UNKNOWN:
|
||||||
Serial.println("EEPROM lesen war nicht möglich!");
|
Serial.println("Bootmode Unbekannt! Neue Ampel? Nächster Start wird Messmodus.");
|
||||||
break;
|
setBootMode(BOOT_NORMAL); break;
|
||||||
default:
|
default:
|
||||||
Serial.print("EEPROM lesen lieferte unerwarteten Wert: ");
|
Serial.print("Unerwarteter Bootmode-Wert: "); Serial.println(bootMode);
|
||||||
Serial.println(bm);
|
Serial.println("Nächster Start wird Messmodus.");
|
||||||
break;
|
setBootMode(BOOT_NORMAL); break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -76,11 +85,10 @@ void setup() {
|
||||||
|
|
||||||
// Ab hier Bootmodus initialisieren und festlegen
|
// Ab hier Bootmodus initialisieren und festlegen
|
||||||
preferences.begin("co2", false);
|
preferences.begin("co2", false);
|
||||||
tocalibrateornot = preferences.getUInt("cal", BOOT_UNKNOWN); // wir lesen unser flag ein,
|
currentBootMode = preferences.getUInt("cal", BOOT_UNKNOWN); // Aktuellen Boot-Mode lesen und speichern
|
||||||
// 23 = reboot vor safezone, wir wollen kalibrieren,
|
preferences.putUInt("cal", BOOT_CALIBRATE); // Erstmal Boot-Mode auf Kalibrieren setzen, wird später
|
||||||
// 42 = reboot nach safezone, wir tun nichts
|
// nach 10 Sekunden Betrieb auf Normal geändert.
|
||||||
preferences.putUInt("cal", BOOT_CALIBRATE); // wir sind gerade gestartet
|
switch(currentBootMode){
|
||||||
switch(tocalibrateornot){
|
|
||||||
case BOOT_CALIBRATE:
|
case BOOT_CALIBRATE:
|
||||||
Serial.println("Startmodus Aktuell: Kalibrierungsmodus");
|
Serial.println("Startmodus Aktuell: Kalibrierungsmodus");
|
||||||
break;
|
break;
|
||||||
|
@ -113,7 +121,7 @@ void setup() {
|
||||||
Serial.print("Background CO2: "); Serial.println(myMHZ19.getBackgroundCO2());
|
Serial.print("Background CO2: "); Serial.println(myMHZ19.getBackgroundCO2());
|
||||||
Serial.print("Temperature Cal: "); Serial.println(myMHZ19.getTempAdjustment());
|
Serial.print("Temperature Cal: "); Serial.println(myMHZ19.getTempAdjustment());
|
||||||
Serial.print("ABC Status: "); myMHZ19.getABC() ? Serial.println("ON") : Serial.println("OFF");
|
Serial.print("ABC Status: "); myMHZ19.getABC() ? Serial.println("ON") : Serial.println("OFF");
|
||||||
Serial.print("read EEPROM value: "); Serial.println(tocalibrateornot);
|
Serial.print("read EEPROM value: "); Serial.println(currentBootMode);
|
||||||
|
|
||||||
// Liste der Messwerte mit "-1" befüllen ("-1" wird beinm Graph nicht gezeichnet)
|
// Liste der Messwerte mit "-1" befüllen ("-1" wird beinm Graph nicht gezeichnet)
|
||||||
for (int x = 0; x <= 119; x = x + 1) {
|
for (int x = 0; x <= 119; x = x + 1) {
|
||||||
|
@ -126,7 +134,7 @@ void setup() {
|
||||||
pixels.fill(pixels.Color(0,0,0));
|
pixels.fill(pixels.Color(0,0,0));
|
||||||
pixels.show();
|
pixels.show();
|
||||||
|
|
||||||
switchBootMode(tocalibrateornot); // beim nächsten boot im anderen modus starten
|
toggleBootMode(currentBootMode); // beim nächsten boot im anderen modus starten
|
||||||
}
|
}
|
||||||
|
|
||||||
int calc_vpos_for_co2(int co2val, int display_height) {
|
int calc_vpos_for_co2(int co2val, int display_height) {
|
||||||
|
@ -196,7 +204,7 @@ void readCO2(){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// Farbe des LED-Rings setzen
|
// Farbe des LED-Rings setzen
|
||||||
if (tocalibrateornot == BOOT_NORMAL) { set_led_color(CO2); }
|
if (currentBootMode == BOOT_NORMAL) { set_led_color(CO2); }
|
||||||
//display.setLogBuffer(1, 30);
|
//display.setLogBuffer(1, 30);
|
||||||
display.setFont(Cousine_Regular_54);
|
display.setFont(Cousine_Regular_54);
|
||||||
display.setTextAlignment(TEXT_ALIGN_CENTER);
|
display.setTextAlignment(TEXT_ALIGN_CENTER);
|
||||||
|
@ -216,15 +224,14 @@ void readCO2(){
|
||||||
}
|
}
|
||||||
|
|
||||||
void loop() {
|
void loop() {
|
||||||
if (millis() > 10000) {
|
if ( (!safezone) & (millis() > 10000) ) {
|
||||||
Serial.println("=== 10 Sekunden im Betrieb, nächster Boot im Normalmodus ===");
|
Serial.println("=== 10 Sekunden im Betrieb, nächster Boot im Normalmodus ===");
|
||||||
switchBootMode(BOOT_CALIBRATE);
|
setBootMode(BOOT_NORMAL); //
|
||||||
// preferences.putUInt("cal", NORMAL); // wir haben die safe zone erreicht, beim naechsten boot nicht kalibrieren!
|
|
||||||
safezone = true;
|
safezone = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (safezone){
|
if (safezone){
|
||||||
if (tocalibrateornot == BOOT_CALIBRATE){
|
if (currentBootMode == BOOT_CALIBRATE){
|
||||||
if (millis() - getDataTimer1 <= CALINTERVAL) {
|
if (millis() - getDataTimer1 <= CALINTERVAL) {
|
||||||
rainbow(10);
|
rainbow(10);
|
||||||
display.clear();
|
display.clear();
|
||||||
|
|
Loading…
Reference in a new issue