albert Posted June 3, 2024 at 09:53 AM Posted June 3, 2024 at 09:53 AM Hallo zusammen, ich hab mir den Code der Firmware angeschaut und dabei sind mir zwei Fragen aufgekommen: Wie kann man Daten in den nicht-flüchtigen Speicher (flash) speichern bzw. wieder daraus auslesen? Gibt es da ein filesystem oder Ähnliches (klingt bei Durchschauen des Codes danach)? Kurz was zu meiner Anwendung: Ich müsste mehrere Setups im flash speichern, sodass ich in späteren Sessions wieder darauf zugreifen und diese zur Laufzeit in meinen Code laden kann. Nach entsprechendem Verarbeiten und Bearbeiten der Setups müssen diese wieder zur Laufzeit in den flash geladen werden. Diese Setups müssen beim Neustart bzw. bei der nächsten Session wieder komplett verfügbar sein. Mit freundlichen Grüßen Albert Quote
rtrbt Posted June 3, 2024 at 10:12 AM Posted June 3, 2024 at 10:12 AM Du redest von der ESP32-Firmware? Die hat in der Tat eine Konfigurationspartition mit mehr oder weniger normalem Dateisystem. Du kannst dir z.B. hier abgucken wie man JSON-Daten liest und schreibt (du kannst mit diesem Weg auch beliebigen Text/Binärdaten lesen und schreiben): https://github.com/Tinkerforge/esp32-firmware/blob/dfcc160df3355c46f561ea1a48ecb9c9e173d69a/software/src/config_migrations.cpp#L65 Wenn du dir den Inhalt der Partition ansehen willst, kannst du im software-Ordner (also neben z.B. esp32.ini) eine Datei namens default_wifi.json mit folgenden Inhalt anlegen: { "debug_fs_enable": "true" } und das Debug-Backend-Modul reinkompilieren. Dann kannst dich unter http://esp32-abcd/debug/fs/ durch das Dateisystem klicken. Es gibt noch die einfachere Variante (falls dir JSON reicht), dass du eine API definierst und die als persistentConfig speicherst. Das funktioniert grob wie im Tutorial: https://www.tinkerforge.com/de/doc/Tutorials/Tutorial_ESP32_Firmware/Tutorial.html#phase-3-kommunikation-frontend-zu-backend nur dass du statt api.addState und .addCommand stattdessen api.restorePersistentConfig zum Laden aus dem Flash und api.addPersistentConfig zum Registrieren der API verwenden musst. api.addPersistentConfig ist optional, du kannst auch (gerade wenn du dein Setup im Code modifizieren und speichern willst) nur api.restorePersistentConfig zum Laden und api.writeConfig zum Speichern benutzen. Quote
albert Posted July 4, 2024 at 08:44 AM Author Posted July 4, 2024 at 08:44 AM Genau, ich rede von der ESP32-Firmware, vielen Dank. Mir reicht die einfachere Variante mit JSON und der API, die funktioniert super und lässt sich ebenfalls gut mit dem Webinterface und der Kommunikation zum Frontend verbinden. Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.