Spezialkarte für temporäre Dauerschleife im Hörbuchmodus (Nachtbetrieb)

Ja, das ist klar. Bei mir läuft es ja auch.
@hEhski hat einen JL Player, diese liefen bis jetzt immer relativ problemlos. Was ich im Log gesehen habe ist, dass dieser wie manche 24SS v3. 0 Player vor dem Abspielen eines Tracks den Busy Pin für einen kurzen Moment auf High setzt

Aber nicht immer. Hier kommt dafür die doppelte Ende Meldung.

@hEhski Sind das wirklich zwei Logs mit mit gleichem Player und nur unterschiedlichen SD-Karten?

Ja, das ist bekannt. Der Party Modus schaltet automatisch in den Endlos Modus, egal ob vorher die Endlos Karte aufgelegt wurde.

Bei mir läuft auch ein Player mit JL Chipsatz (JL AB25CS330Y. 1-74) aus einer Serie mit blauer statt roter LED auf dem Player ohne solche Probleme. Anscheinend gibt es da Unterschiede zwischen den JL Chipsätzen

Das war eigentlch nicht der Grund für die Bemerkung, sondern vielmehr, dass der Zustand beim ersten Auflegen der Karte anscheinend nicht abgefragt wird und das toggle nicht wie erwartet greift und den Endlos-Modus abschaltet (das passiert erst bei zweitem Auflegen der Karte).

Das ist, weil die Box auch nach dem Auflegen der Party Karte im Nicht-Endlos Modus bleibt. D.h., wenn eine andere Karte aufgelegt wird, wird diese nicht im Endlos Modus abgespielt. Ist alles nicht 100%ig ideal, aber es ist rückwärtskompatibel.

Ja, immer der gleiche DFPlayer. Habe bis jetzt nur diese Box fertig gemacht.
Habe noch andere DFPlayer, müsste dort aber erst die Pins anlöten damit ich diese nutzen könnte.

Ja, soweit verstanden und gut so. Dennoch hat mich das unlogische Verhalten bei Auflegen der Endlos-Karte nicht ganz losgelassen. Dabei habe ich gesehen, dass die Toggle-Funktion etwas unplausibel wird, wenn endless <> mp3.isEndless beim Einstieg in die Funktion ist.
Um das zu beseitigen, habe ich eine Zeile in der tonuino.cpp eingefügt, um die Synchronität beim Einstieg in die Toggle-Funktion wieder herzustellen:

void Tonuino::switchEndlessOnOff() {
  endless = mp3.isEndless();            // add by nobl
  endless = not endless;

Mit dieser Zeile ist das Verhalten der Box aus meiner Sicht wieder logisch richtig und dürfte auch keinen Einfluss auf die Rückwärtskompatibilität haben, da sie ja erst bei Auflegen einer Endlos-Karte wirksam wird.
Nach Durchlauf der Toggle-Funktion sind beide Werte ja ohnehin in allen Fällen synchron.

Was denkst Du??

@NoBl Ja, habe ich geändert, wenn auch etwas anders:

void Tonuino::switchEndlessOnOff() {
  if (((myFolder.mode == pmode_t::party) || (myFolder.mode == pmode_t::party_vb)) && mp3.isEndless())
    endless = true;

  endless = not endless;

Das sollte etwas besser lesbar sein und Nebeneffekte werden ausgeschlossen.

Gleichzeitig habe ich noch die Ausführung von Mod-Karten im Webinterface geändert. Die laufen jetzt im Haupt-Thread (und nicht im Web-Thread). Dadurch kamen missingOnPlayerFinish beim Abspielen von Adv. Tracks, wenn die SD Karte langsam ist.

Bei mir läuft das Abspielen von Adv. Tracks damit stabil in allen drei Situationen (Idle, Pause und Play).

@hEhski Kannst du das bei dir jetzt nochmal versuchen. Wenn immer noch Probleme sind, dann bespiele die SD Karte doch bitte neu (evtl. neu formatieren, danach mp3 und advert Ordner aufspielen, dann die anderen Ordner und zum Schluss Fatsort).

Wenn es dann noch nicht geht, schicke nochmal ein Log.

Erneut vielen Dank fürs Dranbleiben! :slightly_smiling_face:

Kurz zum Ablauf: Bevor ich die SD-Karte formatiert habe, passierte beim Auflegen der Mod-Karte direkt nach dem Start wieder nichts. Erst nachdem eine Hörbuchkarte aufgelegt wurde, spielte die Box die Audiodatei aus Ordner 01 ab. Danach funktionierten die Ansagen allerdings korrekt. Nach einem Neustart der Box zeigte sich wieder das gleiche Verhalten.

Auf deine Anweisung hin habe ich die SD-Karte nun formatiert und anschliessend zuerst den „mp3“- und „advert“-Ordner aufgespielt. Danach habe ich die restlichen Ordner per Drag & Drop kopiert.

Jetzt funktioniert alles genau so, wie es soll!

20:48:00.989 > 
20:48:00.989 >  _____         _____ _____ _____ _____ 
20:48:00.989 > |_   _|___ ___|  |  |     |   | |     |
20:48:01.005 >   | | | . |   |  |  |-   -| | | |  |  |
20:48:01.013 >   |_| |___|_|_|_____|_____|_|___|_____|
20:48:01.013 > TonUINO Version 3.x - refactored by Boerge1
20:48:01.018 > 
20:48:01.018 > created by Thorsten Voß and licensed under GNU/GPL.
20:48:01.023 > Information and contribution at https://tonuino.de.
20:48:01.026 > 
20:48:01.026 > V3.3.3 20.05.26
20:48:01.026 > C 3
20:48:01.338 > Ver:2
20:48:01.338 > Vol:25 1 10 25 5 15
20:48:01.338 > EQ:1
20:48:01.338 > ST:5
20:48:01.338 > IB:1
20:48:01.338 > AL:0
20:48:01.338 > AP:1111
20:48:01.338 > PCR:1
20:48:01.392 > MFRC522:178
20:48:01.411 > Volume: 10
20:48:01.584 > track_count: 3522
20:48:02.587 > enter Idle
20:48:02.587 > timer started
20:48:02.587 > btn/cmd: start/start
20:48:02.603 > enqueue mp3 262 0
20:48:02.613 > play mp3 262
20:48:02.787 > isPlaying: 1
20:48:03.037 > isPlaying: 0
20:48:03.087 > Track end: 256
20:48:03.141 > Track end: 256
20:48:17.308 > Card Ins
20:48:17.326 > CardData: 13 37 b3 47 02 00 0b 00 00 
20:48:17.329 > toggle endless from 0
20:48:17.337 > play adv: 326
20:48:17.344 > no track is playing
20:48:17.349 > playFolderTrack(1,1)
20:48:19.764 > origin track started
20:48:19.772 > playAdvertisement: 326
20:48:19.807 > isPlaying: 1
20:48:19.853 > isPlaying: 0
20:48:19.855 > origin track pauses
20:48:20.361 > isPlaying: 1
20:48:20.361 > adv track started
20:48:23.936 > isPlaying: 0
20:48:23.936 > adv track finished
20:48:24.994 > isPlaying: 1
20:48:24.994 > origin track started (again)
20:48:25.024 > origin track pauses (again)
20:48:25.073 > isPlaying: 0
20:48:28.066 > Card Rem
20:48:33.040 > Card Ins
20:48:33.045 > CardData: 13 37 b3 47 02 53 08 3d 5a 
20:48:33.055 > enter StartPlay
20:48:33.055 > enqueue mp3 262 0
20:48:33.086 > play mp3 262
20:48:33.389 > isPlaying: 1
20:48:33.691 > isPlaying: 0
20:48:33.729 > Track end: 256
20:48:33.729 > Track end: 256
20:48:34.961 > 195 tr in folder 83
20:48:34.961 > enqueue 83-61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90  
20:48:34.981 > play 83-61
20:48:36.184 > enter Play
20:48:36.184 > timer stopped
20:48:37.390 > isPlaying: 1
20:48:58.545 > Card Rem
20:48:58.570 > enter Pause
20:48:58.586 > timer started
20:48:58.649 > isPlaying: 0
20:49:00.409 > Card Ins
20:49:00.416 > CardData: 13 37 b3 47 02 00 0b 00 00 
20:49:00.421 > toggle endless from 1
20:49:00.430 > play adv: 325
20:49:00.439 > no track playing
20:49:00.442 > start (from pause)
20:49:00.444 > isPlaying: 1
20:49:00.448 > origin track started
20:49:00.459 > playAdvertisement: 325
20:49:00.484 > isPlaying: 0
20:49:00.484 > origin track pauses
20:49:00.991 > isPlaying: 1
20:49:00.991 > adv track started
20:49:04.586 > isPlaying: 0
20:49:04.586 > adv track finished
20:49:05.603 > isPlaying: 1
20:49:05.603 > origin track started (again)
20:49:05.635 > origin track pauses (again)
20:49:05.635 > isPlaying: 0
20:49:05.758 > Card Rem
20:49:06.946 > Card Ins
20:49:06.953 > CardData: 13 37 b3 47 02 00 0b 00 00 
20:49:06.957 > toggle endless from 0
20:49:06.966 > play adv: 326
20:49:06.974 > no track playing
20:49:06.975 > start (from pause)
20:49:06.975 > isPlaying: 1
20:49:06.982 > origin track started
20:49:06.990 > playAdvertisement: 326
20:49:07.020 > isPlaying: 0
20:49:07.021 > origin track pauses
20:49:07.529 > isPlaying: 1
20:49:07.529 > adv track started
20:49:11.100 > isPlaying: 0
20:49:11.100 > adv track finished
20:49:12.100 > isPlaying: 1
20:49:12.100 > origin track started (again)
20:49:12.135 > origin track pauses (again)
20:49:12.135 > isPlaying: 0
20:49:12.263 > Card Rem
20:49:12.846 > Card Ins
20:49:12.846 > CardData: 13 37 b3 47 02 00 0b 00 00 
20:49:12.857 > toggle endless from 1
20:49:12.866 > play adv: 325
20:49:12.877 > no track playing
20:49:12.877 > start (from pause)
20:49:12.881 > isPlaying: 1
20:49:12.882 > origin track started
20:49:12.890 > playAdvertisement: 325
20:49:12.920 > isPlaying: 0
20:49:12.921 > origin track pauses
20:49:13.428 > isPlaying: 1
20:49:13.428 > adv track started
20:49:17.031 > isPlaying: 0
20:49:17.031 > adv track finished
20:49:18.040 > isPlaying: 1
20:49:18.040 > origin track started (again)
20:49:18.063 > origin track pauses (again)
20:49:18.063 > isPlaying: 0
20:49:18.192 > Card Rem
20:49:19.990 > Card Ins
20:49:19.990 > CardData: 13 37 b3 47 02 53 08 3d 5a 
20:49:20.013 > enter Play
20:49:20.018 > timer stopped
20:49:20.042 > isPlaying: 1
20:49:26.551 > Card Rem
20:49:26.589 > enter Pause
20:49:26.590 > timer started
20:49:26.651 > isPlaying: 0

Soooo, da letztes mal nach dem FAT Sorter es nicht mehr funktioniert hatte, wollte ich dies nochmals testen und ja, der Fehler kommt wieder.

20:58:45.467 >  _____         _____ _____ _____ _____ 
20:58:45.467 > |_   _|___ ___|  |  |     |   | |     |
20:58:45.467 >   | | | . |   |  |  |-   -| | | |  |  |
20:58:45.478 >   |_| |___|_|_|_____|_____|_|___|_____|
20:58:45.478 > TonUINO Version 3.x - refactored by Boerge1
20:58:45.482 > 
20:58:45.482 > created by Thorsten Voß and licensed under GNU/GPL.
20:58:45.487 > Information and contribution at https://tonuino.de.
20:58:45.491 > 
20:58:45.491 > V3.3.3 20.05.26
20:58:45.491 > C 3
20:58:45.808 > Ver:2
20:58:45.808 > Vol:25 1 10 25 5 15
20:58:45.808 > EQ:1
20:58:45.808 > ST:5
20:58:45.808 > IB:1
20:58:45.808 > AL:0
20:58:45.808 > AP:1111
20:58:45.808 > PCR:1
20:58:45.858 > MFRC522:178
20:58:45.882 > Volume: 10
20:58:46.041 > track_count: 3522
20:58:47.056 > enter Idle
20:58:47.056 > timer started
20:58:47.059 > btn/cmd: start/start
20:58:47.067 > enqueue mp3 262 0
20:58:47.078 > play mp3 262
20:58:48.807 > isPlaying: 1
20:58:49.120 > isPlaying: 0
20:58:49.173 > Track end: 3479
20:58:49.173 > Track end: 3479
20:58:53.802 > Card Ins
20:58:53.823 > CardData: 13 37 b3 47 02 00 0b 00 00 
20:58:53.825 > toggle endless from 0
20:58:53.832 > play adv: 326
20:58:53.840 > no track is playing
20:58:53.847 > playFolderTrack(1,1)
20:58:53.902 > isPlaying: 1
20:58:53.902 > origin track started
20:58:53.915 > playAdvertisement: 326
20:58:53.954 > isPlaying: 0
20:58:53.954 > origin track pauses
20:58:56.366 > adv track started
20:58:56.366 > adv track finished
20:58:56.988 > isPlaying: 1
20:58:56.988 > origin track started (again)
20:58:57.017 > origin track pauses (again)
20:58:57.017 > isPlaying: 0
20:59:04.189 > Card Rem
20:59:06.285 > Card Ins
20:59:06.295 > CardData: 13 37 b3 47 02 53 08 3d 5a 
20:59:06.295 > enter StartPlay
20:59:06.295 > enqueue mp3 262 0
20:59:06.332 > play mp3 262
20:59:08.341 > isPlaying: 1
20:59:11.371 > isPlaying: 0
20:59:11.371 > Track end: 1
20:59:12.729 > 195 tr in folder 83
20:59:12.729 > enqueue 83-61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90  
20:59:12.754 > play 83-61
20:59:13.954 > enter Play
20:59:13.967 > timer stopped
20:59:15.223 > missing OnPlayFinished
20:59:15.223 > play 83-62
20:59:16.816 > isPlaying: 1
20:59:20.111 > Card Rem
20:59:20.134 > enter Pause
20:59:20.134 > timer started
20:59:20.196 > isPlaying: 0
20:59:24.744 > Card Ins
20:59:24.759 > CardData: 13 37 b3 47 02 00 0b 00 00 
20:59:24.763 > toggle endless from 1
20:59:24.771 > play adv: 325
20:59:24.779 > no track playing
20:59:24.783 > start (from pause)
20:59:24.784 > isPlaying: 1
20:59:24.787 > origin track started
20:59:24.796 > playAdvertisement: 325
20:59:24.820 > isPlaying: 0
20:59:24.820 > origin track pauses
20:59:26.591 > isPlaying: 1
20:59:26.591 > adv track started
20:59:30.188 > isPlaying: 0
20:59:30.188 > adv track finished
20:59:31.529 > isPlaying: 1
20:59:31.530 > origin track started (again)
20:59:31.560 > origin track pauses (again)
20:59:31.560 > isPlaying: 0
20:59:34.651 > Card Rem
20:59:36.450 > Card Ins
20:59:36.450 > CardData: 13 37 b3 47 02 53 08 3d 5a 
20:59:36.468 > enter Play
20:59:36.476 > timer stopped
20:59:36.497 > isPlaying: 1
20:59:39.742 > Card Rem
20:59:39.767 > enter Pause
20:59:39.769 > timer started
20:59:39.842 > isPlaying: 0
20:59:41.696 > Card Ins
20:59:41.712 > CardData: 13 37 b3 47 02 00 0b 00 00 
20:59:41.719 > toggle endless from 0
20:59:41.728 > play adv: 326
20:59:41.736 > no track playing
20:59:41.739 > start (from pause)
20:59:41.739 > isPlaying: 1
20:59:41.739 > origin track started
20:59:41.753 > playAdvertisement: 326
20:59:41.783 > isPlaying: 0
20:59:41.783 > origin track pauses
20:59:43.559 > isPlaying: 1
20:59:43.559 > adv track started
20:59:47.139 > isPlaying: 0
20:59:47.139 > adv track finished
20:59:48.480 > isPlaying: 1
20:59:48.480 > origin track started (again)
20:59:48.510 > origin track pauses (again)
20:59:48.510 > isPlaying: 0
20:59:48.636 > Card Rem

Mir ist dann aufgefallen, dass die Reihenfolge im Log vom FAT Sorter den Ordner 01 erst am Schluss zeigt.


@Boerge1 Könnte das der Fehler sein, warum es nicht richtig funktioniert?

Hat es im mp3.ccp file noch einen typo? olnyIfIsPlaying anstelle von onlyIfIsPlaying?

Schön, das es damit bei dir funktioniert.

Keine Ahnung, aber verdächtig ist das schon. Stimmt denn irgendwas nicht mit dem Ordner „01“? Sonderzeichen, Leerzeichen, …

Den Typo habe ich korrigiert.

Ich nutze das Exceltool für die Verwaltung und erstelle die Daten alle mit Autobenennung ohne Namen, so dass alles nur mit Zahlen beschriftet wird.

Daher sollte es eingentlich keine Fehler haben.

Da keine weiteren Kommentare mehr kamen, habe ich das Feature auf den main-Branch gemergt.

1 „Gefällt mir“