Refactoring

Das mit dem „case-sensitiv“ kann durchaus am Betriebssystem liegen. Linux Mint ist nicht Groß/Kleinschreibungs tolerant

Nachdem ich gestern hier noch groß rumgetönt habe bin ich quasi geschockt, dass mir das noch nie aufgefallen ist. Immerhin nutze ich Mac OS(X) inzwischen schon seit 2004 :rofl:

Naja, gefixt habe ich es inzwischen.

hatte auch bis gestern geglaubt, das Mac OS da Case-Sensitiv nutzt, bin dann gestern das erste Mal danach auf Suche gegangen.
Man lernt halt nie aus.

Na wenigstens bin ich nicht alleine :woman_shrugging:
Habe es auf jeden Fall vorhin in der Shell mal nachgestellt - zweifelsfrei insensitive.

Hehe - ich bin seit 2014 Mac OS user und wusste das auch nicht. Irreführend ist, dass die Tab-Vervollständigung in der shell (bash und zsh) case sensitive ist. Daher ist das wohl noch nie aufgefallen.

Ich habe vorhin mit einem Freund gesprochen, der nutzt das auch viel u.a. auf Shell-Ebene. Bei ihm kam auch quasi aus der Pistole geschossen: „Auf jeden Fall case-sensitive!“ :slight_smile: Und auch er hat es ausprobiert, weil er es mir nicht glauben wollte.

Hach ja, das beruhigt mich alles :joy:

Sowie ich das gelesen habe ist es nicht das Betriebssystem, es ist das Dateisystem welches nicht case sensitiv ist.
Man soll da wohl eine Möglichkeit haben, das umzustellen, ist aber wohl nicht Standard.
Bash und zsh sollten alles können, die werden nicht neu geschrieben.

Ja, man stellt es offenbar beim Formatieren eines Datenträgers ein. Das gilt einerseits für das inzwischen etablierte APFS, aber auch für dessen Vorgänger HFS+.
Quelle: Im Festplattendienstprogramm auf dem Mac verfügbare Dateisystemformate - Apple Support (DE)

Wie auch immer: back to business :slight_smile:
Ich werde im Juli den Refactoring-Branch zum neuen Master machen. Aus meiner Sicht sind wir da inzwischen auf nem Stand, der mir das sinnig erscheinen lässt.
Einwände? :slight_smile:

Im Importer für die backup.txt ist mir leider ein schwerwiegender Bug aufgefallen. Und zwar fiel mir auf, dass nicht alle Einträge übernommen werden ins NVS. Formell konnte ich jedoch keine Fehler in der backup.txt entdecken und tatsächlich: Wenn ich die backup.txt in mehrere kleine Fragmente zerlegt hatte, dann gab es auch keine Probleme. Geht um diese Funktion hier: ESPuino/Web.cpp at 8edf0e1c1a8ba71c99d2a9bf40329dbfb12f4e99 · biologist79/ESPuino · GitHub

Die Funktion nimmt den Inhalt der backup.txt entgegen und zerlegt das immer schön paarweise in NvsKey und NvsEntry. Nur irgendwann hört der Mechanismus auf ordentlich zu arbeiten und es kommt nur noch Müll raus. Nach einer etwas längeren Fehleranalyse wurde mir auch klar warum: Die Funktion wird mehrfach aufgerufen. Damit hatte ich überhaupt nicht gerechnet. Tja, und wenn das Streaming der backup.txt an beliebiger Stelle stoppt und beim zweiten Call an beliebiger Stelle startet, dann kommt halt Mist aus.

Also das werde ich umprogrammieren müssen, um auf dieses Ereignis vorbereitet zu sein. Das werde ich auch in den aktuellen Master-Branch zurückportieren, weil den betrifft es auch.

So, Importer ist gefixt.
Der (fragmentierte) Datenstrom des Imports wird nun zuerst in eine temporäre Datei auf der SD-Karte abgelegt und von dort importiert. Das hat den Vorteil, dass ich mich beim eigentlichen Import drauf verlassen kann, dass die Daten in einem Rutsch reinkommen.

Danke @biologist für die Erweiterung der RSSI-Anzeige . Ich habe damit recht schnell feststellen können woher das sporadische Knistern bei Webstream kommt . Ich verwende Wrover-E mit Ipex-Anschluß . Der Wlan-Empfang im Haus meiner Enkel ist z.T. schlecht und ich dachte mit einer abgesetzten Antenne wird es besser . Jetzt muss ich feststellen dass zuviel auch nicht gut ist . Ich habe das Gefühl bei schlechterem Empfang tritt es nicht auf . Ich habe mit Antenne ca. -57 bis -59 dBm . Wenn es dann knistert schirme ich die Antenne mit der Hand ab ( zufällig entdeckt ) . Der Empfang geht dann auf >70 dBm zurück und das Knistern verschwindet .
Kann das einen Art Übersteuerung sein ?
Hat jemand schonmal eine ähnliche Feststellung gemacht , vielleicht auch mit einem anderen Projekt ?

Ich werde es die nächsten Tage mal mit dem Lolin D32 Pro und Onboard-Antenne testen .

Kaum hast du ein neues Feature eingeführt und schon fällt mir das nächste ein . Was hältst du von Taste Play und Previous zum aktivieren von Bluetooth . Kann ja wie bei FTP nur nach Reboot möglich sein damit es nicht versehentlich durch die Kleinen aktiviert wird .

VG und nochmals Danke

Willmar

Das kannst du mit dem dynamischen Button-Layout doch jetzt schon frei zuweisen.
TOGGLE_BLUETOOTH_MODE heißt der Event. Oder habe ich dich falsch verstanden?

Zum Rest kann ich leider nix sagen. Außer, dass ich hier einen Lolin32 habe, der auf dem gleichen Schreibtisch liegt, wie die Fritzbox. D.h. ca. 1m Luftlinie. Da habe ich so -52 bis -58 dBm. Probleme habe ich da keine.

@Rest hier: Ich habe heute Morgen einen Commit gemacht, damit im Betrieb die WLAN-Signalstärke angezeigt wird. Das geschieht einmalig beim Start und dann kann man über die GUI via „Infos“ sich den Status holen (und beliebig oft aktualisieren).

Danke für den Hinweis, Ich habe das mit dem Button-Layout noch nicht richtig verstanden . Ich werde mich mal einlesen und es versuchen .
VG

In der markierten Zeile musst du nur TOGGLE_BLUETOOTH_MODE eintragen anstelle von CMD_NOTHING. Dann ist das so, wie du das gerne hättest.

0: next
1: prev
2: play
3: rotary-button
4: button 4
5: button 5

Die Multinummern ergeben sich dann aus dem, was du gerne hättest an Kombination.

Habe es hingekriegt , war easy . Ich hatte die Beschreibung in settings.h zu Hilfe genommen . Da scheint aber ein Fehler drin zu sein
Multi-buttons [short only] (examples):
BUTTON_MULTI_01 => Buttons 0+1 (NEXT_BUTTON + PREVIOUS_BUTTON) pressed in parallel
BUTTON_MULTI_23 => Buttons 0+2 (NEXT_BUTTON + PAUSEPLAY_BUTTON) pressed in parallel

Muss doch BUTTON_MULTI_12 heißen , oder ? Da bin ich drauf hereingefallen und hatte die Logik nicht kapiert .

Danke für den Hinweis. Habe das Beispiel mal auf

 BUTTON_MULTI_01 => Buttons 0+1 (NEXT_BUTTON + PREVIOUS_BUTTON) pressed in parallel
 BUTTON_MULTI_12 => Buttons 1+2 (PREV_BUTTON + PAUSEPLAY_BUTTON) pressed in parallel

angepasst.

@compactflash
Trommelwirbel… im NVS-Importer gibt es nun eine Funktion, um bestehende RFID-Zuweisungen zu löschen. Es wird dabei nicht das gesamte NVS gelöscht sondern wirklich nur der Teil, der die Zuweisungen trägt.

1 „Gefällt mir“

@biologist
Wow , das finde ich geil . Dann werde ich ja den Stress von gestern mit löschen nie mehr haben .

1 „Gefällt mir“

Beim Zusammenbau meines ersten ESPuino habe ich schon den Refactoring Branch geclont und benutzt.
Nachdem ich nun einige Abende und Nächte verbracht habe um das Zusammenspiel zwischen VScode und Github zu verstehen, sowie die ganzen Begrifflichkeiten (stage, stashes, fetch, push, pull commit), konnte ich heute endlich die neuste Master Version einspielen.
Ich konnte auch Problemlos die Backup.txt einspielen.

OTA Update habe ich noch nicht getestet.
Toll finde ich auch die Playlist Caching Funktion, damit ist nun die Ladezeit für Hörbücher wie Paw Patrol, Conny und die Simone Sommerland CD’s echt gut.
Vielen Dank an alle die am Quellcode so fleisig basteln.

Gruß Frank

1 „Gefällt mir“

Ich weiss das ist eventuell eine etwas blöde Frage aber Kann mir jemand sagen wo ich den „updateFirmware.py“ Skript finden kann?