Vorwort:
Ich bin relativ neu in der Python Programmierung und sehe mich selber eher als "Noob" an. Dennoch habe ich mich auf ein paar Projekte gestürtzt, die sich Hauptsächlich um den Raspberry Pi drehen.
Mein jetziges Problem dreht sich um meinen CarPi (CarPC) der auf diesem Projekt basiert. --> https://raspicarprojekt.de/index.php
Das Projekt basiert hier auf dem XBMC (alias Kodi), daher auch Python.
Speziell geht es um die Einbindung eines Sundtek DAB+ USB Empfängers.
Bisherige Stand:
- DAB und FM Empfang läuft
- DAB und FM Sendersuche und Indizierung läuft
- Tunen, Vorwärts-, Rückwärtssuche, Quali-Check usw. läuft
Problem:
Leider Hackt es nun an der Auswertung von RDS und DLS+. Im folgenden gehe ich nur auf das Problem RDS für Analog Radio ein, da DLS+ für DAB vom Prinzip das selbe ist.
Meine Idee ist es, die Daten in einem temporären Ordner zwischen zu speichern und danach weiter zu verarbeiten.
Die Ausgabe der Daten erfolgt in der Shell mit folgendem Befehl.
Code: Alles auswählen
/opt/bin/mediaclient --readrds -d /dev/radio0
Code: Alles auswählen
PROGRAM:
RADIOTEXT:
PROGRAM: KR
RADIOTEXT:
PROGRAM: KR
RADIOTEXT: die
PROGRAM: KRON
RADIOTEXT: die
PROGRAM: KRONEHIT
RADIOTEXT: die
PROGRAM: KRONEHIT
RADIOTEXT: die meis
PROGRAM: KRONEHIT
RADIOTEXT: die meis
PROGRAM: KRONEHIT
RADIOTEXT: die meis
PROGRAM: KRONEHIT
RADIOTEXT: die meiste M
PROGRAM: KRONEHIT
RADIOTEXT: die meiste M
PROGRAM: KRONEHIT
RADIOTEXT: die meiste M
PROGRAM: KRONEHIT
RADIOTEXT: die meiste Musik
PROGRAM: KRONEHIT
RADIOTEXT: KRONdie meiste Musik
PROGRAM: KRONEHIT
RADIOTEXT: KRONdie meiste Musik
PROGRAM: KRONEHIT
RADIOTEXT: KRONdie meiste Musik
PROGRAM: KRONEHIT
RADIOTEXT: KRONEHITdie meiste Musik
PROGRAM: KRONEHIT
RADIOTEXT: KRONEHITdie meiste Musik
PROGRAM: KRONEHIT
RADIOTEXT: KRONEHITdie meiste Musik
PROGRAM: KRONEHIT
RADIOTEXT: KRONEHIT - wdie meiste Musik
PROGRAM: KRONEHIT
RADIOTEXT: KRONEHIT - wdie meiste Musik
PROGRAM: KRONEHIT
RADIOTEXT: KRONEHIT - wdie meiste Musik
PROGRAM: KRONEHIT
RADIOTEXT: KRONEHIT - wir sdie meiste Musik
PROGRAM: KRONEHIT
RADIOTEXT: KRONEHIT - wir sdie meiste Musik
PROGRAM: KRONEHIT
RADIOTEXT: KRONEHIT - wir sdie meiste Musik
PROGRAM: KRONEHIT
RADIOTEXT: KRONEHIT - wir sind die meiste Musik
PROGRAM: KRONEHIT
RADIOTEXT: KRONEHIT - wir sind die meiste Musik
PROGRAM: KRONEHIT
RADIOTEXT: KRONEHIT - wir sind die meiste Musik
Ich habe dann folgendes Text-Script erstellt:
Code: Alles auswählen
import subprocess
FREQ = 104900000
lh = ""
# Tuner auf 104,9MHz stellen
tune = subprocess.call(['/opt/bin/mediaclient','-m','RADIO','-f',str(FREQ)])
# Tuner Ausgabe einschalten
unmute = subprocess.call(['/opt/bin/mediaclient','-m','RADIO','-g','off'])
Text = subprocess.Popen(['/opt/bin/mediaclient','--readrds','-d','/dev/radio0']$
lh = Text.stdout.read()
print lh
Pustekuchen! Die Ausgabe ist folgende:
Code: Alles auswählen
pi@raspberrypi:~ $ python RDS.py
Using device: /dev/radio0
Tuning in FM Channel...
Checking for (analog) lock:
. [LOCKED]
done.
Using device: /dev/radio0
Enabling audiostream
Verstehe ich das richtig?
Wie kann ich die empfangenen Daten weiter verarbeiten?
Wie kann ich aus meinen Programm heraus, den Datenausgabe abbrechen?
Ich habe schon einige optionen von subprocess probiert, aber das ergebniss ist immer das selbe...
Ich hoffe es kann mir einer Helfen.
Lg Pezi