mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-04-16 08:42:28 +00:00
daemon/binding/python: retry connect for 3 seconds
This commit is contained in:
parent
b1f6df3b39
commit
a43b5e8717
@ -2,6 +2,7 @@ import socket
|
||||
import struct
|
||||
import btstack.command_builder
|
||||
import btstack.event_factory
|
||||
import time
|
||||
|
||||
BTSTACK_SERVER_HOST = "localhost"
|
||||
BTSTACK_SERVER_TCP_PORT = 13333
|
||||
@ -27,8 +28,16 @@ class BTstackClient(btstack.command_builder.CommandBuilder):
|
||||
|
||||
print("[+] Connect to server on port %u" % BTSTACK_SERVER_TCP_PORT)
|
||||
self.btstack_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
self.btstack_server_socket.connect((BTSTACK_SERVER_HOST, BTSTACK_SERVER_TCP_PORT))
|
||||
# TODO: handle connection failure - e.g. retry for max 5 seconds every seconde
|
||||
timeout = time.time() + 3
|
||||
while True:
|
||||
try:
|
||||
self.btstack_server_socket.connect((BTSTACK_SERVER_HOST, BTSTACK_SERVER_TCP_PORT))
|
||||
return True
|
||||
|
||||
except socket.error as e:
|
||||
if time.time() > timeout:
|
||||
print ("[!] Connection error: %s" % e)
|
||||
return False
|
||||
|
||||
def register_packet_handler(self, callback):
|
||||
print("[+] Register packet handler")
|
||||
|
@ -20,12 +20,12 @@ btstack_server.load()
|
||||
# btstack_server.set_storage_path("/tmp")
|
||||
btstack_server.run_tcp()
|
||||
|
||||
|
||||
# Client for BTstack Server
|
||||
btstack_client = btstack_client.BTstackClient()
|
||||
|
||||
# connect to slient, register for HCI packets and power up
|
||||
btstack_client.connect()
|
||||
btstack_client.register_packet_handler(packet_handler)
|
||||
btstack_client.btstack_set_power_mode(1)
|
||||
btstack_client.run()
|
||||
ok = btstack_client.connect()
|
||||
if ok:
|
||||
btstack_client.register_packet_handler(packet_handler)
|
||||
btstack_client.btstack_set_power_mode(1)
|
||||
btstack_client.run()
|
||||
|
Loading…
x
Reference in New Issue
Block a user