Piepston vor Musik-Start und Pause, wenn RFID-Karte entfernt wird

Hallo liebe Community,
gerade baue ich meine dritte Box (aktuell mit einer TonUINO All-In-One Plus Platine) und teste vor dem Verbauen, ob alles funktioniert.
Zuvor hatte ich noch ein Update gemacht → V3.1.4 13.10.23 III

Jetzt gibt es Fragen/Effekte, zu denen ich gerade keine passenden Beiträge finde.

Das Programmieren/zuordnen einer Karte lief ohne Probleme.
Aber wenn ich die Karte dann auflege, um den gewünschten Ordner abzuspielen, kommt zuerst ein seltsamer Pieps-Ton (play mp3 262). Ist das ein neues Feature? Kann man das abstellen, indem man die entsprechende MP3 einfach von der SD-Karte löscht oder gibt es da sanftere Methoden?

Nach diesem Ton geht die Musik zwar wie gewünscht los, aber wenn man die Karte vom Reader entfernt, pausiert es (Card Removed - enter Pause). Ist das auch neu? Ich hätte es aber lieber so, dass es auch ohne Karte weiterläuft.
In anderen Forenbeiträgen sehe ich was von der Einstellung namens „Pause when card removed: 255“ - kann man das also aktiv einstellen?
Wenn ich eine ‚fertige‘ Software über den Updater verwende, habe ich wohl keine Wahl.
Oder gibt es eine ältere Software, welche weder diesen Ton abspielt noch pausiert, wenn die Karte entfernt wird und falls ja, wie bekomme ich sie aufgespielt?

Hier der komplette Consolen-Auszug:

V3.1.4 13.10.23 III

Ver:2
Vol:25 5 15
EQ:1
ST:0
IB:0
AL:0
AP:1111
PCR:255
Volume: 15
MFRC522:146
enter Idle
Command: 6
enqueue mp3 262 0
play mp3 262
Card Inserted
CardData:  31 73 3b 74 02 01 03 00 00
enter StartPlay
enqueue mp3 262 0
play mp3 262
11 tr in folder 1
enqueue 1-1 2 3 4 5 6 7 8 9 10 11  
shuffled 8 2 4 6 5 7 1 3 10 9 11  
play 1-8
enter Play
Card Removed
enter Pause

Vielen Dank!

Andreas

Ja, ist ein neues Feature. Es hat den Vorteil, dass man sofort weiß, dass die Karte erkannt wurde. Je nachdem wie voll die SD-Karte ist, kann es ja durchaus mal 2 Sekunden dauern bis das Hörspiel startet. So versucht man dann ncht die Karte erneut aufzulegen, was den Prozess ja nur erneut starten würde.
Löschen würde ich die Datei nicht, bei mir kam die Software mit dem Fehler aufgrund der fehlenden Datei nicht klar. Ich würde sie deshalb einfach mit einer ähnlich langen Datei mit Stille ersetzen. Sowas gibt es zum Beispiel hier zum Download GitHub - anars/blank-audio: Set of blank MP3 audio files

Pause wenn Karte weg kannst du als Option im Adminmenü konfigurieren. Das geht trotz online-upload.

Solltest du trotzdem lieber die alte Version nutzen wollen findest du den entsprechenden Link in der FAQ

Allerdings wirst du dann mit den verbliebenden Bugs dort leben müssen.

@Boerge1 kann es sein, dass pause wenn Karte weg beim Wechsel von der alten Software ungewollt aktiviert wird? Denn dann steht ja die 255 im Speicher und die aktiviert das, obwohl man es vorher nicht aktiv hatte. Vielleicht wäre es besser, wenn das sich dabei nicht aktiviert. Vor dem Wechsel hatte man das Feature ja auch nicht aktiv.

1 „Gefällt mir“

Super - vielen Dank für die schnelle Antwort @Gute_Laune!

1 „Gefällt mir“

Ja, dass ist der Fall.
Es ist nicht änderbar in der Software ohne wertvollen Flash Speicher zu opfern. Daher würde ich eher dafür plädieren, dass man einfach ins Admin Menü geht und das ausschaltet.
Ich werde vielleicht noch einen Hinweis ins Readme machen.

1 „Gefällt mir“

Schade ich hatte gehofft, dass man statt ungleich 0 die Logik einfach mit einem gleich 1 umdrehen könnte.

Außerdem hätte ich gedacht, dass migrateSettings eigentlich dafür sorgen sollte, dass das Feature wenn da 255 steht deaktiviert wird.

Aber offensichtlich habe ich das was falsch verstanden.

pauseWhenCardRemoved ist in den Settings ein bool. Wenn man ein bool in einen int umwandelt, so sollte eigentlich nur 0 oder 1 rauskommen (so steht es im Standard - §4.7/4 from the C++ 11 or 14 Standard, §7.8/4 from the C++ 17 Standard, §7.3.9/2 from the 20 Standard).

Der obige Code ist also zumindest fragwürdig. Vielleicht funktioniert er für den Nano und nicht für die AiO. Keine Ahnung. Ich werde das mal versuchen zu fixen.

Das einzige, was man machen könnte ist, anstelle von bool den richtigen unsigned int Typen (mit der gleichen Länge, wahrscheinlich uint8_t) in den Settings zu verwenden. Und anstelle von if (pauseWhenCardRemoved) muss dann halt if (pauseWhenCardRemoved == 1) geschrieben werden. Mal sehen, ob das den Code vergrößert.

Ok, ich habe das mit dem pauseWhenCardRemoved repariert (nach meinem obigen Vorschlag). Das ist auf dem Branch issue_123 implementiert. Vielleicht kann das jemand testen?

1 „Gefällt mir“