Ich habe einen Code der von einem Bluetooth-Controller abhängig ist.
Ich der Controller verbunden existiert ein Objekt "/dev/input/event0" das mit evdev verarbeitet werden kann.
Jetzt kann es vorkomme das die Verbindung abbricht oder der Controller ausgeschalten wird oder...
mit im Programm ergibt das natürlich einen Crash.
Mit try/except habe ich das schon ein wenig aufgefangen. Auch der Programmstart (warte auf Event0) ist schon geglückt jetzt fehlt nur der Wiederanlauf der Warteschleife.
Aktuell habe ich:
Code: Alles auswählen
import Main_async
import asyncio
import time
from evdev import InputDevice, list_devices
if __name__ == "__main__":
try:
while True:
#Verbundene Geräte auslesen
devices = [InputDevice(path) for path in list_devices()]
#geräteliste durchsuchen
for device in devices:
print(device.path, device.name, device.phys)
if "Xbox" in device.name:
# Eventlistener auf Bluetoothcontoller anlagen und definieren.
dev = InputDevice("/dev/input/event0")
asyncio.run(Main_async.manager(dev))
else:
time.sleep(10)
except:
print ("maincode has error")
(notfalls)Ich habe schon überlegt die RPi einfach unter expect neuzustarten(da die Funktion bei Anlauf aufgerufen wird).
2. gibt es eine Möglichkeit die 10s eine deepsleep zu machen um Strom zu sparen?
danke euch!