Danke Jupp für die Erklärung. Ich habe das erste Radio aufgebaut und das Linux installiert. Es funktioniert ohne Probleme. Ich habe noch Bernhards Modifikation mit dem WLAN-Passwort auf der Speicherkarte eingebaut, funktioniert auch ohne Probleme. Vielen Dank für die Hilfe, nun will ich auch etwas zurückgeben. Nachdem mir Bernhard erklärt hat wie die Software im Radio funktioniert und was Python ist habe ich ein Programm geschrieben mit dem man die Daten zum eingestellten Sender auslesen kann.
Inhalt abfrage.py
# Dieses Script liest den Status des VLCD ueber den VLC-eigenen Webserver aus.
# Param: title - gibt den aktuell gespielten Titel oder den Namen der Internetradiostation zurueck
# Param: now - gibt den aktuell gespielten Songtitel einer Internetradiostation zurueck
# Param: genre - gibt das aktuelle Musikgenre einer Internetradiostation zurueck
# Param: url - gibt die aktuelle Stream-URL einer Internetradiostation zurueck
# Param: samplerate - gibt die aktuell verwendete Samplerate zurueck
# Param: codec - gibt den aktuell verwendeten Audiocodec zurueck
# Param: channels - gibt zurueck ob Mono oder Stereo verwendet wird
# Param: bitrate - gibt die aktuell verwendete Bitrate zurueck
import urllib2
import base64
import sys
username = ""
password = "raspberry"
request = urllib2.Request("http://127.0.0.1:8080/requests/status.xml")
base64string = base64.encodestring('%s:%s' % (username, password)).replace('\n', '')
request.add_header("Authorization", "Basic %s" % base64string)
response = urllib2.urlopen(request)
xml = response.read()
response.close()
meta_start = xml.find("information")
xml = xml[meta_start:]
def get_Title(str):
title_start = str.find("title") + 7
str = str[title_start:]
title_end = str.find("info") - 2
str = str[:title_end]
print str
return
def get_NowPlaying(str):
now_start = str.find("now_playing") + 13
str = str[now_start:]
now_end = str.find("info") - 2
str = str[:now_end]
print str
return
def get_Genre(str):
genre_start = str.find("genre") + 7
str = str[genre_start:]
genre_end = str.find("info") - 2
str = str[:genre_end]
print str
return
def get_URL(str):
url_start = str.find("filename") + 10
str = str[url_start:]
url_end = str.find("info") - 2
str = str[:url_end]
print str
return
def get_Samplerate(str):
sr_start = str.find("Sample rate") + 13
str = str[sr_start:]
sr_end = str.find("info") - 2
str = str[
r_end]
print str
return
def get_Codec(str):
codec_str = str.find("Codec") + 7
str = str[codec_str:]
codec_end = str.find("info") - 2
str = str[:codec_end]
print str
return
def get_Channels(str):
chan_start = str.find("Channels") + 10
str = str[chan_start:]
chan_end = str.find("info") - 2
str = str[:chan_end]
print str
return
def get_Bitrate(str):
bitrate_start = str.find("Bitrate") + 9
str = str[bitrate_start:]
bitrate_end = str.find("info") - 2
str = str[:bitrate_end]
print str
return
def main(argv):
if len(argv) < 2 :
print "Es muss mindestens ein Parameter angegeben werden (title,now,genre,url,samplerate,codec,channels,bitrate)"
sys.exit(0)
elif argv[1] == "title" :
get_Title(xml)
elif argv[1] == "now" :
get_NowPlaying(xml)
elif argv[1] == "genre" :
get_Genre(xml)
elif argv[1] == "url" :
get_URL(xml)
elif argv[1] == "samplerate" :
get_Samplerate(xml)
elif argv[1] == "codec" :
get_Codec(xml)
elif argv[1] == "channels" :
get_Channels(xml)
elif argv[1] == "bitrate" :
get_Bitrate(xml)
if __name__ == "__main__":
main(sys.argv)
Ruft man das Programm so auf: abfrage.py title , erhält man den eingestellten Sender.
Mit abfrage.py now , erhält man den aktuellen Namen der Sendung. Und so weiter.