Wenn ihr sowas wie JS, CSS oder HTML in euren Embedd-Projekten mit integriertem Webserver verwendet, baut ihr das dann als static const char JS[] Array ein? Welche Methoden nutzt ihr dafür? Ich mache das aktuell noch als ein Array, aber teilweise sind das 200-300 Zeilen und man muss höllisch aufpassen keinen Escape- oder Comment-Fehler zu machen. Ganz davon ab ist der Code nicht mehr lesbar...
:
Bearbeitet durch User
Entweder Du baust die automatische Datei-Konvertierung in Deinen Build-Prozess ein oder aber, da Du ja einen ESP32 nutzt, Du legst die Dateien auf einer eigenen Partition in einem Dateisystem im Flash ab und liest die Dateien dann per Storage API ein. Das Kopieren der Dateien in die Partition geschieht automatisch beim Build im esp-idf.
https://www.mikrocontroller.net/articles/Bin%C3%A4re_Daten_zum_Programm_hinzuf%C3%BCgen Was mit Binärdaten funktioniert klappt natürlich auch mit Text (HTML etc). Ich finde die Variante mit objcopy am Besten - kompiliert sehr schnell und funktioniert entkoppelt vom Sourcecode.
:
Bearbeitet durch User
Die Dateien liegen bei mir auf dem Dateisystem und werden über HTTP_GET aufgerufen.
1 | #include <ESPAsyncWebServer.h> |
2 | server.on("/settings", HTTP_GET, [](AsyncWebServerRequest *req){ |
3 | req->send(LittleFS, "/settings.html", "text/html"); |
4 | });
|
Definitiv Files, keine C-Strings. Ansonsten bist du nur noch am kopieren. Und unübersichtlich ist es auch. Wenn du noch Platz und Ladezeit sparen willst lässt du dir die großen Files noch in einem Prebuild step in einen neuen Ordner zippen. Dann installierst du dir noch sowas wie den Live Server in VSC und kannst auch gleich noch vernünftig die Website anschauen und debuggen.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.