From 7e4180598536e705a2a98e9c316d594d0777c869 Mon Sep 17 00:00:00 2001 From: Pauli Anttila Date: Tue, 6 Apr 2021 17:58:32 +0300 Subject: [PATCH 1/2] Fix start without restart --- pygatt/backends/bgapi/bgapi.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/pygatt/backends/bgapi/bgapi.py b/pygatt/backends/bgapi/bgapi.py index 6f4ea2d..a6b3313 100755 --- a/pygatt/backends/bgapi/bgapi.py +++ b/pygatt/backends/bgapi/bgapi.py @@ -226,10 +226,19 @@ def start(self, reset=True, delay_after_reset_s=1): self._running = threading.Event() self._running.set() + + if not reset: + log.debug("Stop possible ongoing scan") + self.send_command(CommandBuilder.gap_end_procedure()) + time.sleep(0.5) + self._ser.reset_input_buffer() + self._ser.reset_output_buffer() + self._receiver.start() - self.disable_advertising() - self.set_bondable(False) + log.debug("Say hello") + self.send_command(CommandBuilder.system_hello()) + self.expect(ResponsePacketType.system_hello) # Stop any ongoing procedure log.debug("Stopping any outstanding GAP procedure") @@ -240,6 +249,9 @@ def start(self, reset=True, delay_after_reset_s=1): # Ignore any errors if there was no GAP procedure running pass + self.disable_advertising() + self.set_bondable(False) + def get_mac(self): self.send_command(CommandBuilder.system_address_get()) self.expect(ResponsePacketType.system_address_get) From 001d3098fbe6439ce0960a3b5ebb9c0860afa6ac Mon Sep 17 00:00:00 2001 From: Pauli Anttila Date: Tue, 6 Apr 2021 21:35:24 +0300 Subject: [PATCH 2/2] Minimized changes --- pygatt/backends/bgapi/bgapi.py | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/pygatt/backends/bgapi/bgapi.py b/pygatt/backends/bgapi/bgapi.py index a6b3313..939fd6f 100755 --- a/pygatt/backends/bgapi/bgapi.py +++ b/pygatt/backends/bgapi/bgapi.py @@ -232,13 +232,11 @@ def start(self, reset=True, delay_after_reset_s=1): self.send_command(CommandBuilder.gap_end_procedure()) time.sleep(0.5) self._ser.reset_input_buffer() - self._ser.reset_output_buffer() self._receiver.start() - log.debug("Say hello") - self.send_command(CommandBuilder.system_hello()) - self.expect(ResponsePacketType.system_hello) + self.disable_advertising() + self.set_bondable(False) # Stop any ongoing procedure log.debug("Stopping any outstanding GAP procedure") @@ -249,9 +247,6 @@ def start(self, reset=True, delay_after_reset_s=1): # Ignore any errors if there was no GAP procedure running pass - self.disable_advertising() - self.set_bondable(False) - def get_mac(self): self.send_command(CommandBuilder.system_address_get()) self.expect(ResponsePacketType.system_address_get)