Speichern von Einstellungen im Speicher der Basisstation

Hallo! Wenn Sie das Glück haben, den ESP32- Mikrocontroller in Ihren Händen zu halten (ich hatte mehr Glück und habe M5Stack in meinen Händen), dann könnte dieser Beitrag nützlich sein.



Es kann vorkommen, dass einige Parameter nichtflüchtig gespeichert werden müssen (z. B. die Anzahl der Einschaltvorgänge des Geräts oder das Speichern der Wi-Fi-Einstellungen). Dies kann mit Leichtigkeit über die Preferences- Bibliothek erledigt werden.


Wir deklarieren eine Instanz der Preferences- Klasse, und dort werden wir sehen ...


Als Erstes müssen wir einen Schlüsselbund erstellen, indem wir die begin- Methode mit zwei Argumenten aufrufen (aber nur mit dem ersten): dem Namen des Schlüsselbunds und dem Nur-Lese-Flag.


Um einen Zeichenfolgenwert im Speicher zu speichern, müssen Sie den Schlüssel und den Wert selbst an eine Methode übergeben, deren Name aus zwei Teilen besteht: der erste wird abgelegt und der zweite ist ein Typname, z. B .: Zeichenfolge . Alles ist klar und verständlich. Es stimmt, es gibt immer noch rohe Bytes ohne zu braten dass niemand einen Typ zuweisen will. In diesem Fall nimmt die Methode auch das dritte Argument mit der Anzahl der Bytes. Mit diesem Verfahren scheint alles zu sein.


Nachdem der Wert geschrieben wurde, können Sie ihn mit der Methode (deren Name dem vorherigen ähnlich ist) lesen , wobei der erste Teil abgerufen wird. Diese Methode gibt den Wert für den Schlüssel des entsprechenden Typs zurück. Erinnern Sie sich an den Byte-Fall? Wenn Sie nicht wissen (oder sich nicht erinnern), wie viele Bytes sich auf dem Schlüssel befinden, ziehen Sie die getBytesLength-Methode mit einem einzigen Argument - dem Schlüssel -, um alles zu berechnen und den Betrag in size_t zurückzugeben .


Wenn Sie einen bestimmten Schlüssel aus dem Schlüsselbund entfernen möchten, geben Sie der remove- Methode das einzige Argument an.


Möchten Sie ein echtes Marafet mitbringen und den ganzen Haufen räumen ? Rufen Sie die Methode clear ohne Argumente auf!


Wenn Sie die Arbeit mit dem Bundle beenden möchten, rufen Sie die end- Methode ohne Argumente auf.


Im Allgemeinen werden die folgenden Typen unterstützt: Char , UChar , Short , UShort , Int , UInt , Long , ULong , Long64 , ULong64 , Float , Double , Bool , String und Bytes .


Ich verstehe was ich will etwas Code, also hier ist die Skizze. Eine Skizze zählt die Anzahl der Umdrehungen auf dem Gerät und zeigt sie auf dem Display an:


#include <M5Stack.h> #include <Preferences.h> Preferences preferences; const char* key = "OnOff"; uint32_t count; void setup() { m5.begin(); preferences.begin("MyKeyChain"); count = preferences.getUInt(key); preferences.putUInt(key, count + 1); M5.Lcd.setTextSize(3); M5.Lcd.setTextColor(TFT_WHITE); M5.Lcd.println("Hello, Habr!"); M5.Lcd.setTextSize(2); M5.Lcd.println("M5Stack Turned On:"); M5.Lcd.setTextSize(3); M5.Lcd.setTextColor(TFT_RED); M5.Lcd.println(count); M5.Lcd.setTextColor(TFT_WHITE); M5.Lcd.setTextSize(2); M5.Lcd.println("times"); } void loop() { } 

Ein Verweis auf die Bibliothek ist beigefügt .

Source: https://habr.com/ru/post/de476492/


All Articles