Hallo liebe TonUINO-Community,
ich weiß, nicht noch ein Tool für Dinge, die es schon gibt Und tatächlich sind die vorhandenen Tools hier (Übersicht der Tools / Anleitungen für den TonUINO) bereits völlig ausreichend. Nichtsdestotrotz wollte ich die eine oder andere Sache gern anders haben, als es die einzelnen Tools machen und daher habe ich ein wenig Code produziert, der im DFPlayer Card Manager gemündet ist.
Die wichtigsten Details:
Es ist ein Python package für die Kommandozeile (Windows/Linux/MacOS), das
- Die Synchronisation eines Musikarchives auf die SD Karte übernimmt (wie im Prinzip alle Tools zum Bespielen der SD Karte)
- sicherstellt, dass die Anforderungen an Dateisystem und Dateistruktur eingehalten werden.
Letzteres meint:
- Check, ob die Karte passend formattiert ist (FAT32 mit 32 KByte Allocation Unit Size)
- Check, ob FAT Sortierung gemäß Ordnerstruktur vorliegt
- Check, dass keine unerwünschten Ordner und Dateien auf der SD Karte liegen inkl. dem Aufzeigen von Nummerierungslücken
- Anzeigen oder Löschen von unerwünschten Dateien auf der SD-Karte
Der Sync des Musikarchives benötigt im Defaul eine Ordnerstruktur, die mit Platzhaltern ausgedrückt so aussieht:
audio_repo_root
└── 01.ARTIST.ALBUM/
| ├── 001.TITLE.mp3
| ├── 002.TITLE.mp3
| ├── ...
| └── 255.TITLE.mp3
├── ...
└── 99.ARTIST.ALBUM/
Im Ziel sieht es dann logischerweise so aus:
sd_card_root
└── 01/
| ├── 001.mp3
| ├── 002.mp3
| ├── ...
| └── 255.mp3
|
└── ../
└── 99/
Für die Quelle (audio_repo_root) kann das jedoch per Konfiguration (global für alle Ordner aber jeden Unterordner separat) angepasst werden, falls Bedarf besteht. Die Details erspare ich in diesem Thread
Die Synchronisation fügt hinzu, löscht und macht auf Lücken aufmerksam. Das geschieht im Standard, indem Tags und der Hash des Musikcontainers verglichen werden. Der Hash check wird vermutlich sehr selten relevant sein… Vielleicht bei alten SD Karten, die die Bits nicht mehr zusammenhalten
Hier noch ein Beispiel, wie man Probleme mit der SD Karte aufdeckt und gleich auch behebt:
Und noch ein Beispiel eines Syncs:
So, das war eh schon zu viel Text Vielleicht ist es ja für jemanden nützlich. Für meine Anforderungen ist das Paket soweit „Feature-complete“, es ist keine Entwicklung mehr geplant. Falls es jedoch irgendwen gibt, der das Tool auch einsetzen will und noch Bedarf für Verbesserung sieht, sehe ich gern, was ich tuen kann