RFID mit oder ohne Task

Ja, genau. Allerdings gibt es die Funktion im offiziellen Arduino Core nicht. Man kann aber meinen modifizierten Arduino Core zum Testen einbinden.

platform_packages =
    platformio/framework-arduinoespressif32 @ https://github.com/tuniii/arduino-esp32-v1.0.6-wt#v1.0.6-patched
1 „Gefällt mir“

@biologist Wie wäre es in Zukunft noch einen Ringbuffer zum Loggen, welcher über Web erreichbar, einzubauen? Damit kann man bei Problemen immer schnell schauen, was geloggt wurde. Ich könnte da etwas aus einem anderen Projekt wiederverwenden.

2 „Gefällt mir“

Wäre ok von meiner Seite.

Hi,

Kann es sein das ich deinem Namen schonmal im Zusammenhang mit dem Wlanthermo gelesen habe?

Gruß Frank

Hi Frank,

ja dort bin ich auch aktiv.

Viele Grüße
Martin

1 „Gefällt mir“

Na toll…nun will ich so ein Thermometer haben :man_facepalming:

1 „Gefällt mir“

Hatte vor paar Tagen bei Wolle ein issue aufgemacht, dass mit einer aktuellen Version das Abspielen stottert. Wolle hat sehr zügig einen fix geliefert. @Wolle vielen Dank nochmal! Dabei hat er noch etwas Interessantes zu den Audio loop Zeiten Hier geschrieben.

1 „Gefällt mir“

Hallo Harry, auf github wird die Version v2.0.0 (mit ESP-IDF 4.4) zum Testen angeboten. Das habe ich gemacht und festgestellt, dass der freie SRAM um 36KBytes verringert ist. Das kann ein Problem werden. Daraufhin habe ich die Speicher der Dekoder in den PSRAM verlagert. PSRAM ist langsamer, aber es funktioniert solange genug Rechenzeit vorhanden und die WLAN Verbindung schnell ist. Wenn audio.loop() in 3 Sekunden wenigstens 100 mal aufgerufen wird (~30ms/Durchlauf) läuft alles gut. Jetzt benutzen die Dekoder wieder SRAM und nur wenn das nicht möglich ist wird versucht PSRAM zu belegen. Dabei kann es mit der neuen Version passieren, dass dem Hauptprogramm dann nicht mehr viel Freiraum bleibt oder der ESP neu startet.
vG Wolle

@tuniii
Aus Neugier eine Frage zu deinem Refactoring:
Du benutzt Funktionsnamen wie z.B. AudioPlayer_Init. Wieso benutzt du da keinen Namespace?

Danke

Im Prinzip verfolgt beides den gleichen Zweck. Die Verwendung von Namespaces habe ich bisher noch nicht so oft bei Arduino-Projekten gesehen und ich bin bisher auch noch nicht auf die Idee gekommen diese zu verwenden. Liegt vermutlich daran, dass beruflich meistens nur C-Code angesagt war.

Ah ok, ich komme aus der C+±Welt. Da liegt es für mich naher.

@biologist Ich bin jetzt mit dem Refactoring durch. Es gibt noch ein paar Kleinigkeiten, aber irgendwann sollte man mal einen Cut machen. Willst du auch einen Refactoring Branch bei dir im Repo anlegen und mache einen PR gegen den Branch oder soll das direkt auf master? Ersteres würde ich bevorzugen, da man dann den Branch noch etwas mehr testen könnte.

Ich lege dafür einen Branch an. Das macht auf jeden Fall Sinn, das erstmal ausgiebig zu testen.

Sobald der Branch angelegt ist, kann ich den PR starten.

Ich wollte gestern eigentlich schon schauen, aber war ein bisschen bocklos. War bissl viel Trubel hier gestern: Der Sohnemann hat sich den Arm gebrochen :woman_shrugging:
Mache ich heute Abend.

Danke erstmal an dieser Stelle, für die ganze Arbeit, die du jetzt reingesteckt hast :+1: Das ist schon echt viel Arbeit gewesen und das weiß ich auch zu schätzen. Jetzt werde ich selbst erstmal Zeit investieren müssen, um wieder einen Überblick zu haben :woman_shrugging:

Was mir, da möchte ich keinen Hehl draus machen, nicht so gefällt, ist die Tatsache, dass der gesamte Code umformatiert (anders eingerückt) ist. Ich weiß, dass da jeder seinen eigenen Stil hat und das ist auch ok, aber in meinem Projekt habe ich doch ganz gerne die Variante, wie es vorher war. Ich denke, dass ich mir das wieder umformatieren werde. Aber gut, funktionell ändert das ja nix.

Wie auch immer: Ich werde hier dann eine Ankündigung machen, wenn ich meine ersten Tests erfolgreich durchgeführt habe, so dass noch ein paar Leute mehr testen können (sofern sie das nicht eh schon tun) :joy: Es wird auf jeden Fall erstmal im Branch bleiben und wenn da soweit alles passt, wird es dann der neue Master :handshake:

@tuniii: Du hast ja jetzt den PN5180 in eine State-Machine gesteckt, er läuft allerdings weiterhin in einem Task. Ich nehme mal an, du wolltest jetzt nicht zu viel auf einmal ändern und hast es deswegen nochmal drin gelassen, oder? Weil im Task juckt das ja nicht so wirklich, ob der Schleifendurchlauf bissl länger oder kürzer ist.

Das mit der Formatierung ist mir im Prinzip völlig egal :joy:. Hauptsache der Code ist einheitlich formatiert. Für C und C++ wird, meiner Erfahrung nach, meistens die Formatierung aus dem Branch verwendet. Bei Java und Javascript sieht es wieder anders aus. Ich benutze immer die Auto-Formatierungs-Funktion von Visual Code. So habe ich mehr Zeit für den Code und brauche wenig für die Formatierung. Ich kann schauen, ob ich das automatisiert wieder umstellen kann.
Ja, beim PN5180 habe ich eine State Machine eingeführt. Es würde einen deutlichen Unterschied machen, wenn in der Lib für PN5180 nicht so oft delays benutz werden würden. Aber aktuell, da gebe ich dir Recht, macht es keinen großen Unterschied.
Bisher habe ich wenig optimiert. Das wäre für mich der nächste Schritt.

Die Lib hatte @tueddy kürzlich schon etwas optimiert. Ich muss gestehen, dass ich es mir seitdem nicht näher angeschaut habe.

Dein Refactoring habe ich per cherry-picking übernommen und in einen Branch gesteckt. Angepasst habe ich nix. Nur kurz geschaut, ob es sich mit den Default-Einstellungen kompilieren lässt :slight_smile:
Den Code-Style kann man offenbar automatisch ändern (Google-Style ist wohl das Passende), aber bei mir passiert da irgendwie nix. Also man muss den Stil einstellen und dann kann man zB Rechtsklick machen und sagen, dass der Code formatiert werden soll.

Man kann einfach in der Root eine Datei „.clang-format“ erstellen und dort die gewünschten Parameter angeben. Für die Klammern bräuchte man auf jeden Fall „BreakBeforeBraces: Attach“. Den Rest sollte man aber auch noch einstellen. Ich bin gerade dabei eine passende Formatierung zu erstellen, jedoch sortiert es bei mir noch die Header um. Sobald ich etwas passendes habe, könnte man das übernehmen. Danach müsste man kurz alle cpp-Dateien öffnen und formatieren lassen. Die „.clang-format“ im Repo hat den Vorteil, dass die Formatierung dann nur für dieses Projekt verwendet wird.

1 „Gefällt mir“

Hier wäre die Datei:

Das sollte dem bisherigen Code-Style entsprechen. Ansonsten findest du hier die Informationen, falls du noch etwas anpassen willst.