nach langer und erfolgloser Suche nach einer Lösung für mein Problem im Netz, freue ich mich umso mehr, dass es eine so lebhafte deutschsprachige Community zu Python gibt! Ich hoffe ihr könnt mir bei meiner kleinen Frage weiterhelfen Vielleicht vorweg als kleine Info: ich wandle erst seit Kurzem in den Python-Gefilden, komme ursprünglich aus der Webprogrammierecke (PHP, JS etc.), also bitte ich um etwas Nachsicht .
Zu meiner Frage:
Ich stelle per PyBluez (Linux, BlueZ-Stack) eine Socket-Verbindung auf RFCOMM-Basis zum Client (einem Arduino-Board mit UART) her und sende diesem Daten. Um den Empfang der Daten quittiert zu bekommen, warte ich nach erfolgtem Senden auf eine Antwort. Falls es nun aber zu Problemen mit der Verbindung kommt und die Antwort ausbleibt, wird das Skript nicht (/oder zumindest nicht beobachtbar schnell genug) beendet, sondern beißt sich am Horchen auf Antwort fest. Ich würde den Datenempfang gerne nach einer von mir definierten Zeit beenden, habe in Python aber noch keine elegante Lösung dafür gefunden.
Der relevante Teil des Skripts:
Code: Alles auswählen
sock=bluetooth.BluetoothSocket( bluetooth.RFCOMM )
sock.connect((self.currentDevice, self.port))
sock.send("SendData")
retData = sock.recv(1024)
print retData
Vielen Dank schonmal für eure Mühen!
Besten Gruß
darkblade