Und warum muß es jetzt eine Tastaturkommando sein ? Du hast doch dieses Shutdown Modul !? Da ist doch ein Taster drauf. Frage ihn doch einfach mit GPIOZERO ab. Wenn das dann klappt, dann Schritt 2.
Ich wollte weiter vorn anfangen und ein Programm mit zwei Threads machen. Der eine soll später die Codes auslesen und im anderen Prozess einen Song starten. Wenn der Song läuft wird der Abfragethread pausiert oder beendet und neu gestartet wenn der Song zu ende ist.
Zitat
Naja die song-datei muss doch geöffnet, abgespielt und beendet werden. Oder was meinst du?
Zitat
Meinst du das "on/off shim?" Dafür hatte ich keine Zeit das einzubauen und werde das einfach weglassen. Für das Löten würde bei meinen Fähigkeiten ein ganzer Tag drauf gehen und mit draufstecken wird es nicht erkannt... Das war nur gedacht mit dem Schalter den ganzen Raspberry herunterzufahren, nicht für die Sounddateien. Ich habe alternativ eine RFID-Karte, die den Raspberry herunterfährt.
Damit das aber kein Problem gibt darf der aber am besten nicht abstürzen, wenn eine Karte zu früh drauf aufgelegt wird.
Zitat
Das spricht für mich eben für eine Liste an Songs, die per RFID gefüllt wird (eine Art Playlist) und nacheinander abgespielt wird. Vielleicht habe ich da aber wirklich etwas falsch verstanden oder es ist tatsächlich zu spät für mich.
Vielleicht eine Playlist mit zwei Songs, bei dem die Positionen immer wieder ersetzt werden beim Scan ganz gut. Wenn er Song zu ende ist wird die erste Position durch die zweite ersetzt. Wenn der Song noch spielt wird der nächste in der zweiten Position gespeichert.
Aber das ist auch nur theoretisch einfach. Wenn der Song zu ende ist, dann kann ich einfach abfragen, ob einer in der Position 2 wartet. Wenn nicht, dann passiert erstmal nichts. Das ist theoretisch einfach.
Nach dem eine ID vom Reader kommt muss ich also einmal etwas in die Liste schreiben. Aber es taucht ein Problem auf, das viel schwieriger íst. Wenn der letzte Song der Liste gespielt wurde. Dann brauche ich einen Ereignisauslöser, der das Ereignis "Song abspielen" auslöst, denn da ist wieder dasselbe Problem. Wenn bereits ein Song am abspielen ist, dann stürzt das Programm ab.
Also immer wieder dasselbe Problem. -> Ich brauche etwas das die Übergabe der IDs, bzw. das Abspielen des Songs so lange blockiert bis ein Song zu Ende ist.
Mh, ich überlege gerade:
Wenn ich es so mache, das, wenn Position 2 leer ist, ein 5s Song ohne Ton abgespielt wird, dann kann ich auf diese Weise alle 5 Sekunden wieder prüfen, on ein neuer Song an Position zwei steht.
Das benutzt sicher viel Energie, aber könnte eine Lösung sein, wenn ich nicht etwas übersehen habe.
Die Beiden Prozesse wären getrennt. Aber ich brauche immer noch dieses Multiprocessing. Es passieren ja zwei Dinge gleichzeitig. Abspielen und Scannen.