Seite 1 von 1

/input/Event0 abhängige Programm Bearbeitung

Verfasst: Samstag 19. März 2022, 16:43
von rob87
Aloa Zusammen,

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")
Wie könnte man die while-Schleife quasi neustarten?
(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!

Re: /input/Event0 abhängige Programm Bearbeitung

Verfasst: Samstag 19. März 2022, 16:46
von Dennis89
Hallo,

wenn ich dich richtig verstanden habe, dann setze das try/except in die Schleife und nicht drum rum.


Grüße
Dennis

Re: /input/Event0 abhängige Programm Bearbeitung

Verfasst: Samstag 19. März 2022, 17:14
von __deets__
Der PI ist notorisch schlecht zum Strom sparen. Ein ESP32 verbraucht per se weniger, kann Tiefschlaf, und Bluetooth. Und lässt sich auch in micropython Programmieren.

Re: /input/Event0 abhängige Programm Bearbeitung

Verfasst: Samstag 19. März 2022, 18:34
von rob87
__deets__ hat geschrieben: Samstag 19. März 2022, 17:14 Der PI ist notorisch schlecht zum Strom sparen. Ein ESP32 verbraucht per se weniger, kann Tiefschlaf, und Bluetooth. Und lässt sich auch in micropython Programmieren.
Ja leider ist die Xbox Controllerunterstützung auch nicht berauschend. Bzw. habe ich es noch nicht hinbekommen den cpp. Code an laufen zu bekommen auf dem ESP32...

@ Dennis89 Ja das mit in die Schleife sollte klappen. Danke :)

=> kann man eig. ein Event auf ein Event schalten? also anstatt in einer Schleifen einfach direkt beim entstehen von Event0 ein Script ausführen?