Ich habe ein Code der mithilfe der Bibliothek pygatt per BLE sich mit einem Gerät verbindet.
Code: Alles auswählen
import pygatt
import time
adapter = pygatt.GATTToolBackend()
try:
adapter.start()
device =adapter.connect(mac-adress)
device.char_write(uuid,bytearray([0x73, 0x74, 0x61, 0x72, 0x74]))
while(1):
value = device.char_read(uuid)
v = value.decode('utf-8')
print(v)
time.sleep(1)
Falls aus irgendeinem Grund die Verbindung unterbrochen wird, möchte ich, dass ein Verbindungsversuch gestartet wird und dies jedes Mal durchgeführt wird, wenn die Verbindung unterbrochen wird. Den Code habe ich deshalb folgendermaßen ergänzt:
Code: Alles auswählen
except pygatt.exceptions.NotConnectedError:
adapter.reconnect(adapter,30)
Jedoch führt diese exception handling zu einem anderen Error (NotificationTimeOutError), obwohl innerhalb der 30 Sekunden eine Verbindung hergestellt werden kann. Also es reconnected nicht obwohl es möglich ist. Ich bin mir auch nicht sicher, ob ich mit solcher exception handling den code dazubringen kann, jedes Mal einen erneuten Verbindungsversuch zu starten bei Verbindungsabbruch. Braucht es noch eine zusätzliche While-Schleife um alles? Ich würde mich freuen, wenn ihr mir helfen könntet oder Tipps geben könntet.