Anpassungen im Build-Prozess + weitere Neuerungen + Aufruf/Frage an RC522-Benutzer

@fetzerch war ziemlich fleißig in letzter Zeit und ich habe diverse PRs von ihm gestern übernommen (wie in den vergangenen Tagen auch bereits MQTT-Anpassungen).

  1. Es wird jetzt nicht nur die Revision eingebunden, die ich in der revision.h hinterlege, sondern auch auch die Git-Version. Dazu wird ein File eingebunden, welches zur Laufzeit, also beim beim Kompilieren, nach .pio/build//generated gespeichert wird. Bewerkstelligt wird dies über gitVersion.py. Aufgerufen wird es über platformio.ini via extra_scripts.
    Hinweis: Man sieht die Git-Version beim Start (unterhalb des Logos) und auch im WebUI unter Infos. Sofern man lokal Änderungen vorgenommen hat, die nicht eingecheckt sind (was bei mir auch quasi immer der Fall ist), wird hinter der Versions-ID „-dirty“ angezeigt.

  2. Die gitProcess.py gibt’s schon lange, jedoch wurde sie seit einiger Zeit nicht mehr automatisch aufgerufen. @fetzerch hat sie nun auf einen aktuellen Stand gebracht, so dass dies wieder der Fall ist. Parallel hat er sie auch derart umgestellt, dass die .h-Files für das WebUI auch nach generated (siehe <1>) zur Laufzeit gespeichert werden. Das hat zwei Vorteile:
    a) Die .h-Files können aus dem Repository raus.
    b) Es kann keine Inkonsistenzen zwischen den html-Files und den .h-Files geben. Weil genau das ist die Tage passiert.
    Durch die aktuelle UI-Überarbeitung von @sonovice wird das zwar irgendwann demnächst eh erneuert, aber es schadet auf jeden Fall für die Zwischenzeit nicht.

Ansonsten werden nun auch UTF16-Covers unterstützt und das Titel-Handling in AudioPlayer.cpp wurde verschlankt - da gab’s bisschen was an redundantem Code.

In Kürze werde ich mir auch den PR von @Xento anschauen, der Support für ESPmuse per PR bereitgestellt hat. Die Commits werde ich in einem Squash Commit zusammenfassen und schauen, dass der Rest funktioniert. ESPmuse habe ich zum Testen nicht hier.

Weiterhin hat @Xento einen PR für den PN532 bereitgestellt. Das werde ich mir anschauen, hätte den PR532 zum Testen hier. Hinsichtlich Reichweite bringt er ggü. dem RC522 wohl keinen Vorteil, aber er ist auf jeden Fall, wenn man wegen GPIO-Mangel auf i2c ausweichen muss, günstiger als speziellen i2c-Varianten des RC522 (z.B: RoboDyn).

Ansonsten habe ich schon seit Sommer PRs von @kkloesener, die ich endlich mal reviewen muss. Speziell geht es hierbei auch um Anpassungen für RC522 und dem Feature PAUSE_WHEN_RFID_REMOVED. Gibt’s hier Leute, die das Feature bereits im Test hatten, jedoch nun nicht mehr, weil es unzuverlässig ist? Bitte gerne melden! Weil ich würde den PR dann in einen Branch stecken, sofern sonst alles damit soweit ok ist. Dann kann das getestet werden.

Hi
verstehe nicht was da passiert und wofür es gut ist , ist aber egal .
Ich habe heute mal getestet und bekomme diese Fehlermeldung und es wird auch kein File in .pio/build//generated angelegt. Ich dachte es liegt an meinen Änderungen und habe es dann mit dem Original von heute probiert, Fehlermeldung bleibt.

Processing lolin_d32_pro (board: lolin_d32_pro; platform: espressif32@<=3.5.0; framework: arduino)

Verbose mode can be enabled via -v, --verbose option
fatal: not a git repository (or any of the parent directories): .git
GENERATING HTML HEADER FILES
html/management_DE.html
html/management_EN.html
html/accesspoint_DE.html
html/accesspoint_EN.html
CONFIGURATION: Redirecting...
PLATFORM: Espressif 32 (3.5.0) > WEMOS LOLIN D32 PRO
HARDWARE: ESP32 240MHz, 320KB RAM, 16MB

Was mache ich falsch ?

@fetzerch Wir brauchen ne Sonderbehandlung. Und zwar checkt nicht jeder das Repository mittels git aus sondern es kann auch sein, dass das ein extrahiertes ZIP-Archiv ist. Da brauchen wir irgendwie einen Fallback, der sowas wie „not available“ rausgibt.

@compactflash Danke für die Info!

Die Fehlerbehandlung gibt es. Zugegeben, die Meldung bleibt und ich kann schauen wie wir die los werden. Aber als Git-Version wird in dem Fall „unknown“ gesetzt. Ich hab das eben nochmal unter Linux und Windows probiert.

@compactflash: Kannst du das komplette log hochladen? Bricht denn Build denn ab? Die Dateien sollten dann in .pio/build/<umgebung>/generated zu finden sein.

Log Platformio.txt (23,5 KB)

Kompilieren läuft durch. Ich nutze immer nur die .zip , ich weiß auch nicht wie das per git geht.

Ok, d.h. es ging dir im Wesentlichen um die Fehlermeldung? Die habe ich in Improve logging in extra_scripts by fetzerch · Pull Request #168 · biologist79/ESPuino · GitHub nun verbessert.

Wenn Git benutzt wird sieht es so aus:

Processing lolin_d32_pro_sdmmc_pe (board: lolin_d32_pro; platform: espressif32@<=3.5.0; framework: arduino)
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
Verbose mode can be enabled via `-v, --verbose` option
GENERATING GIT REVISION HEADER FILE
  "7532cfa" -> /home/user/develop/ESPuino/.pio/build/lolin_d32_pro_sdmmc_pe/generated/gitrevision.h
GENERATING HTML HEADER FILES
  /home/user/develop/ESPuino/html/management_DE.html -> /home/user/develop/ESPuino/.pio/build/lolin_d32_pro_sdmmc_pe/generated/HTMLmanagement_DE.h
  /home/user/develop/ESPuino/html/management_EN.html -> /home/user/develop/ESPuino/.pio/build/lolin_d32_pro_sdmmc_pe/generated/HTMLmanagement_EN.h
  /home/user/develop/ESPuino/html/accesspoint_DE.html -> /home/user/develop/ESPuino/.pio/build/lolin_d32_pro_sdmmc_pe/generated/HTMLaccesspoint_DE.h
  /home/user/develop/ESPuino/html/accesspoint_EN.html -> /home/user/develop/ESPuino/.pio/build/lolin_d32_pro_sdmmc_pe/generated/HTMLaccesspoint_EN.h

Ohne Git:

GENERATING GIT REVISION HEADER FILE
  Warning: Setting Git revision to 'unknown': not a git repository (or any of the parent directories): .git
  "unknown" -> /home/user/develop/ESPuino/.pio/build/lolin_d32_pro_sdmmc_pe/generated/gitrevision.h

Nur Falls du drüber nachdenkst Git nutzen zu wollen: @biologist hat das hier recht eingängig erklärt:

Ja gut, dann passt das ja erstmal. Ich dachte das fehlert aus.

Wollte ich eben auch schon drauf verweisen. Also hat schon Vorteile, das mit git zu machen. Aber klar: git ist auch ein enorm komplexes Tool. Wird keiner genötigt, das zu verwenden.

@fetzerch Nehme deinen PR gleich an. Danke!

Ich glaub in dem aktuellen Code ist ein Bug drin.
Das ist mir aufgefallen als ich den Part für den PN532 geschrieben habe.

Diese Definitionen sind ja innerhalb der for(;;)-Schleife.
Also ist bei jedem Durchlauf auch die lastValidcardId zurückgesetzt oder vertue ich mich da gerade?

byte cardId[cardIdSize];
String cardIdString;
#ifdef PAUSE_WHEN_RFID_REMOVED
byte lastValidcardId[cardIdSize];
bool cardAppliedCurrentRun = false;
bool sameCardReapplied = false;
#endif