/input/Event0 abhängige Programm Bearbeitung

Python auf Einplatinencomputer wie Raspberry Pi, Banana Pi / Python für Micro-Controller
Antworten
rob87
User
Beiträge: 45
Registriert: Donnerstag 17. Oktober 2019, 14:24

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!
Benutzeravatar
Dennis89
User
Beiträge: 1152
Registriert: Freitag 11. Dezember 2020, 15:13

Hallo,

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


Grüße
Dennis
"When I got the music, I got a place to go" [Rancid, 1993]
__deets__
User
Beiträge: 14522
Registriert: Mittwoch 14. Oktober 2015, 14:29

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.
rob87
User
Beiträge: 45
Registriert: Donnerstag 17. Oktober 2019, 14:24

__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?
Antworten