Code verhält sich anders bei Autostart mit rc.local
Verfasst: Freitag 30. Juni 2017, 15:23
Hallo,
wenn ich den Code test.py in der Konsole mit dem Befehl "python app/test.py" starte läuft der Code einwandfrei. Wenn jedoch die Datei test.py über rc.local automatisch gestartet wird, springt das Display in den Startbildschirm und mehr nicht.
Datei rc.local Inhalt:
Das Starten Funktioniert, da das Display den Startbildschirm anzeigt.
Nur bekomme ich danach keine weiteren Daten ans Display und das Programm reagiert nicht auf Daten vom Display.
Somit vermute ich, dass zwischen und der Whileschleife ein Problem gibt.
Gleicher Fehler zeigt sich, wenn ich über init.d das Programm automatisch starten lasse.
Datei test.py Inhalt:
wenn ich den Code test.py in der Konsole mit dem Befehl "python app/test.py" starte läuft der Code einwandfrei. Wenn jedoch die Datei test.py über rc.local automatisch gestartet wird, springt das Display in den Startbildschirm und mehr nicht.
Datei rc.local Inhalt:
Code: Alles auswählen
python root/app/test.py &
exit 0
Nur bekomme ich danach keine weiteren Daten ans Display und das Programm reagiert nicht auf Daten vom Display.
Somit vermute ich, dass zwischen
Code: Alles auswählen
u.writeStr("page Home_Screen")
Gleicher Fehler zeigt sich, wenn ich über init.d das Programm automatisch starten lasse.
Datei test.py Inhalt:
Code: Alles auswählen
import mraa
import os
import sys
import subprocess
import signal
import time
from subprocess import Popen, PIPE, STDOUT
print "Programm start"
# Uart konfigurieren
u=mraa.Uart(0)
u.setBaudRate(9600)
u.setMode(8, mraa.UART_PARITY_NONE, 1)
u.setFlowcontrol(False, False)
# Deklaration Varriablen
mode=0
i=0
j=1
vol=50
playPause=0
fav_adress = []
#Relais konfigurieren
relais=mraa.Gpio(46)
relais.dir(mraa.DIR_OUT)
relais.write(0)
senden=bytearray(3)
senden[0]=255
senden[1]=255
senden[2]=255
u.write(senden)
u.writeStr("page Home_Screen") #Funktioniert mit Autostart noch(Display springt in Startbildschirm)
u.write(senden)
print "Bereitschaft gesendet!"
#Radioadressen aus txt datei einlesen
radio_adress = open("radio_adress.txt")
fav_adress = []
for line in radio_adress:
fav_adress.append(line.rstrip())
print line.rstrip()
radio_adress.close()
while(True):
if u.dataAvailable():
data_byte= u.readStr(1)
print ord(data_byte)
if((ord(data_byte)==10) and (mode==0)):
print "Output Select Internetradio"
mode=10
u.write(senden)
u.writeStr("fav1.txt=\"" + fav_adress[0] + "\"") #Funktioniert nicht mehr (Daten werden nicht ans Display gesendet)
u.write(senden)
u.writeStr("fav2.txt=\"" + fav_adress[1] + "\"")
u.write(senden)
u.writeStr("fav3.txt=\"" + fav_adress[2] + "\"")
u.write(senden)
u.writeStr("vol.txt=\"Volume: "+ str(vol) +"\"")
u.write(senden)
...(weitere elif abfragen)...
time.sleep(0.1)