mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-04-25 00:02:27 +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 struct
|
||||||
import btstack.command_builder
|
import btstack.command_builder
|
||||||
import btstack.event_factory
|
import btstack.event_factory
|
||||||
|
import time
|
||||||
|
|
||||||
BTSTACK_SERVER_HOST = "localhost"
|
BTSTACK_SERVER_HOST = "localhost"
|
||||||
BTSTACK_SERVER_TCP_PORT = 13333
|
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)
|
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 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||||
|
timeout = time.time() + 3
|
||||||
|
while True:
|
||||||
|
try:
|
||||||
self.btstack_server_socket.connect((BTSTACK_SERVER_HOST, BTSTACK_SERVER_TCP_PORT))
|
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
|
return True
|
||||||
|
|
||||||
|
except socket.error as e:
|
||||||
|
if time.time() > timeout:
|
||||||
|
print ("[!] Connection error: %s" % e)
|
||||||
|
return False
|
||||||
|
|
||||||
def register_packet_handler(self, callback):
|
def register_packet_handler(self, callback):
|
||||||
print("[+] Register packet handler")
|
print("[+] Register packet handler")
|
||||||
|
@ -20,12 +20,12 @@ btstack_server.load()
|
|||||||
# btstack_server.set_storage_path("/tmp")
|
# btstack_server.set_storage_path("/tmp")
|
||||||
btstack_server.run_tcp()
|
btstack_server.run_tcp()
|
||||||
|
|
||||||
|
|
||||||
# Client for BTstack Server
|
# Client for BTstack Server
|
||||||
btstack_client = btstack_client.BTstackClient()
|
btstack_client = btstack_client.BTstackClient()
|
||||||
|
|
||||||
# connect to slient, register for HCI packets and power up
|
# connect to slient, register for HCI packets and power up
|
||||||
btstack_client.connect()
|
ok = btstack_client.connect()
|
||||||
|
if ok:
|
||||||
btstack_client.register_packet_handler(packet_handler)
|
btstack_client.register_packet_handler(packet_handler)
|
||||||
btstack_client.btstack_set_power_mode(1)
|
btstack_client.btstack_set_power_mode(1)
|
||||||
btstack_client.run()
|
btstack_client.run()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user