Forum: PC-Programmierung Javascript und HTML in C von ESP32


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Olli Z. (z80freak)


Lesenswert?

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
von Richie (mikro123)


Lesenswert?

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.

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

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
von Alexander (alecxs)


Lesenswert?

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
});

von N. M. (mani)


Lesenswert?

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.

von Alexander (alecxs)


Lesenswert?

Wenn's schnell gehen muss.
1
$ xxd -i index.html > index.h

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
Noch kein Account? Hier anmelden.