NVS kaputt? und Probleme mit Umlauten bei backup.txt?

Hallo,

  1. Problem
    bei der Musikbox von meinem Sohn scheint der NVS kaputt zu sein.

HW:
ESP32 Lolin Pro
auf HW von @biologist
SW:
dev-Branch

Schon angelernte Karte werden nicht mehr akzeptiert:

[ 48712 ]  RFID-Karte erkannt: a3-c0-d4-32 
[ 48713 ]  Card type: ISO-14443
[ 48716 ]  RFID-Karte empfangen: 163192212050
[ 48725 ]  Datei oder Verzeichnis existiert nicht: %s

[ 48735 ]  Fehler aufgetreten!

[ 57250 ]  RFID-Karte erkannt: a3-c0-d4-32 
[ 57251 ]  Card type: ISO-14443
[ 57254 ]  RFID-Karte empfangen: 163192212050
[ 57263 ]  Datei oder Verzeichnis existiert nicht: %s

[ 57274 ]  Fehler aufgetreten!

Dachte ich kein Problem, hast ja die backup.txt, also die eingelesen (vorher alle Zuordnungen gelöscht) aber nix da gleiches Verhalten.

Daher auf den neusten DEV Branch gewechselt da kann man die Zuordnungen ja sehen, aber auch da kaputt (siehe Anhang rfid.json, letzter Eintrag)
rfid.json.txt (841 Bytes)

Obwohl deutlich mehr Einträge beim Backup eingelsen werden. (siehe hier die Log)
Log_Backup_einlesen_FahlerBeiKarte.txt (7,6 KB)

Ich habe jetzt eine backup.txt mit nur 6 Einträge erstellt, jetzt kann er immerhin hören…

  1. Problem
    Beim Zurückspielen ist mir aufgefallen das Umlaute aus der backup.txt nicht wieder richtig eingelesen werden.

Ist da was bekannt?
hier die .txt, Ergebnis beim Einlesen siehe oben der Log
backup_jonas.txt (2,2 KB)

Hast du mal versucht ein Flash erase zu machen?

hatte ich oben vergessen, ja hab ich gemacht, gleiches Verhalten

Zum Thema Umlaute: Ich kann den Fehler bestätigen. Allerdings betrifft das nur die Dateinamen selbst. Umlaute in Pfaden scheinen keine Probleme zu machen.

Zum Thema NVS: Sehe ich ehrlich gesagt zum ersten Mal sowas. Also zB der ESPuino meiner Tochter dürfte schon >2j alt sein und ist täglich in Gebrauch. Hast du da viel (salopp gesagt) „rumgespielt“? :slight_smile:

doch bei mir auch im Pfad Probleme, ich verweise ja nur auf Ordner nie auf Dateien…

Ich glaube ich benötige dann mal ein weiteres Dev Board von dir :smiley:
Das Gerät hier hat ja (noch) ein extern gekauftes Dev Board drauf…

Hehe, gerne.
Ich habe allerdings aktuell (und seit einer Weile) nur noch FePo da.

Verdammt :upside_down_face:

Nur deswegen den Akku tauschen…

Ok, also ich hab’s mit nem Einzeltitel versucht, bei dem der Pfad Umlaute hatte und der Titel aber nicht. Das ging. Aber sobald der Titel selbst Umlaute hatte war’s rum.

okay neuer ESP32 Dev Board, gleiches Verhalten… ich vermute gerade einen dicken Bug…

Also NVS ist nicht kaputt…

ein simples

//DEBUG
	String s=gPrefsRfid.getString("019228129022"); //tauscht nicht in der rfid,json auf
	Log_Printf(LOGLEVEL_DEBUG,s.c_str());

am Ende der setup() sorgt für den richtigen Output, daher die Daten sind da!

Auch lassen sich die Karten abspielen!

Ich vermute oben einen Fehler aufgrund der Umlaute im Namen vom Verzeichniss und einen Fehler in der Auflistung der RFIDs
@tueddy Kannst du da mal schauen was da los ist?

EDIT:
hab eben meine backup.txt von Umlauten befreit und dann die Ordner auf der SD Karte auch umbenannt, und schon läuft alles wieder wie vorher…

Das ist also an mehr als einer Stelle noch was schief mit den Umlauten

Der Fehler mit unvollständigen rfid.json ist geblieben @tueddy

Hast du die rfids auf einer älteren dev oder gar master angelernt und dann auf der aktuellen dev darauf zugegriffen? Da kann ich bestätigen, dass es Probleme mit Umlauten gibt. Muss man neu anlernen, dann geht es wieder. Da gab es wohl irgendwann mal eine Änderung, wie mit Umlauten umgegangen wird.

1 „Gefällt mir“

jup hab ich, danke für die Info.

Hallo zusammen,

zunächst Danke an @JHB für die ausführiche Fehleranalyse! Kaputtes NVS ist ja auszuschließen, zur Software:

[ 48725 ] Datei oder Verzeichnis existiert nicht: %s

Log-Meldung ist schon blöd wenn man das Verzeichnis nicht sehen kann, hab’s angepasst

Ich vermute oben einen Fehler aufgrund der Umlaute im Namen vom Verzeichniss und einen Fehler in der Auflistung der RFIDs

Jepp, beides!

Daher auf den neusten DEV Branch gewechselt da kann man die Zuordnungen ja sehen, aber auch da kaputt (siehe Anhang rfid.json, letzter Eintrag)
rfid.json.txt (841 Bytes)

Letzter Eintrag ist vollständig im NVS, wurde aber leider nicht komplett über den neuen Endpunkt /rfid ausgeliefert, der JSON Puffer war zu klein. Der ist jetzt zwar größer und hat Platz für ca. 100 Einträge, trotzdem könnte es sein das nicht alle Einträge anzeigt werden. Das wurde hier bereits angemerkt.

Ich hatte die Datei „rfid.json.txt“ mal über den NVS Import hochgeladen und bekam prompt einen Buffer-Overflow Absturz. Das ist jetzt hier abgefangen.

Umlautproblem: Im Dateisystem des Master wird noch OEM 852 (MS-DOS) verwendet! Dateisystem des DEV-Branch verwendet UTF-8. Daher wird sich ein Backup des Master nicht ohne Umlautfehler einlesen lassen. Das wäre evt. auch wichtig für eine Migration. Was tun? Entweder manuelles Ändern z.B. mit Notepad++ oder eine automatische Erkennung des Zeichensatzes? Wir könnten beim Erstellen auch ein BOM-Marker schreiben? Gern Vorschläge!

1 „Gefällt mir“

das war/ist meine ich der aktuelle Stand, wo kann ich die Buffer Größe nachgucken?

(Ich habe ~30 Einträge im NVS)

Der JSON-Puffer wird hier festgelegt, er war zunächst mit 1024 Bytes sehr klein, jetzt 8KB.
Aktueller Softwarestand ist 20230924-1

1 „Gefällt mir“

Vorm Hinzufügen ob noch genug Platz im Buffer, damit das json auf jeden Fall „korrekt“ ist? mit letzem Eintrag „hier sollte noch mehr stehen…“?

BOM Marker hört sich gut an

Umlaute sollten jetzt passen, UTF-8 BOM wird geschrieben, das erleichtert auch die manuelle Bearbeitung z.B. mit Notepad++. Import eines Backups aus dem Master mit Umlauten klappt auch.

4 „Gefällt mir“