|
|
|
@@ -336,19 +336,36 @@ void setup() {
|
|
|
|
|
// nicht (siehe WS7_DSI_RESTART).
|
|
|
|
|
//
|
|
|
|
|
// Deshalb startet der P4 sich nach einem Kaltstart genau einmal selbst neu, nachdem
|
|
|
|
|
// der erste Hochlauf durch ist. Beim zweiten Durchlauf ist der Startgrund kein
|
|
|
|
|
// Kaltstart mehr, die Bedingung greift also nicht erneut - eine Schleife ist
|
|
|
|
|
// ausgeschlossen. Kostet rund drei Sekunden, aber nur beim Einschalten.
|
|
|
|
|
// der erste Hochlauf durch ist. Kostet rund drei Sekunden, aber nur beim Einschalten.
|
|
|
|
|
//
|
|
|
|
|
// Frueher stuetzte sich die Absicherung dagegen allein auf den Startgrund: Beim zweiten
|
|
|
|
|
// Durchlauf sei es kein Kaltstart mehr, eine Schleife also ausgeschlossen. Das stimmt
|
|
|
|
|
// nicht - der Chip meldet auch nach dem selbst ausgeloesten Neustart wieder einen
|
|
|
|
|
// Kaltstart, und dann startet er endlos neu. Genau das ist aufgetreten: Beleuchtung an,
|
|
|
|
|
// nie ein Bild. Deshalb wird jetzt zusaetzlich vermerkt, dass der Neustart schon
|
|
|
|
|
// stattgefunden hat; darauf ist Verlass, unabhaengig vom gemeldeten Startgrund.
|
|
|
|
|
#if (JC_PANEL_TYPE == WS_PANEL_7H) && WS7_COLD_BOOT_RESTART
|
|
|
|
|
if (esp_reset_reason() == ESP_RST_POWERON) {
|
|
|
|
|
// Der Fruehstart-Zaehler wurde oben bereits erhoeht. Diesen gewollten Neustart
|
|
|
|
|
// darf er nicht mitzaehlen, sonst laeuft die Absturzsicherung nach ein paar
|
|
|
|
|
// Einschaltvorgaengen in den Update-Modus.
|
|
|
|
|
{ Preferences p; p.begin("bootguard", false); p.putUShort("early", 0); p.end(); }
|
|
|
|
|
DBG_SERIAL.println(F("[Panel] Kaltstart - einmaliger Neustart fuer das Displaypanel"));
|
|
|
|
|
DBG_SERIAL.flush();
|
|
|
|
|
delay(50);
|
|
|
|
|
esp_restart();
|
|
|
|
|
Preferences p;
|
|
|
|
|
p.begin("bootguard", false);
|
|
|
|
|
bool schonNeugestartet = p.getUChar("kaltneu", 0) != 0;
|
|
|
|
|
if (schonNeugestartet) {
|
|
|
|
|
// Zweiter Durchlauf: Vermerk loeschen, damit beim naechsten echten Einschalten
|
|
|
|
|
// wieder genau ein Neustart erfolgt.
|
|
|
|
|
p.putUChar("kaltneu", 0);
|
|
|
|
|
p.end();
|
|
|
|
|
esp_rom_printf("[Panel] Neustart bereits erfolgt - Hochlauf wird fortgesetzt\n");
|
|
|
|
|
} else {
|
|
|
|
|
p.putUChar("kaltneu", 1);
|
|
|
|
|
// Der Fruehstart-Zaehler wurde oben bereits erhoeht. Diesen gewollten Neustart
|
|
|
|
|
// darf er nicht mitzaehlen, sonst laeuft die Absturzsicherung nach ein paar
|
|
|
|
|
// Einschaltvorgaengen in den Update-Modus.
|
|
|
|
|
p.putUShort("early", 0);
|
|
|
|
|
p.end();
|
|
|
|
|
esp_rom_printf("[Panel] Kaltstart - einmaliger Neustart fuer das Displaypanel\n");
|
|
|
|
|
delay(50);
|
|
|
|
|
esp_restart();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
g_client.begin(); // UART starten, hello folgt automatisch in loop()
|
|
|
|
|