Skip to content

Commit

Permalink
Allow for stopping and restarting of bgapibackend.
Browse files Browse the repository at this point in the history
Open and close serial port in run method. Create and start the receiver thread
in run method.
  • Loading branch information
sloboste authored and peplin committed Aug 17, 2015
1 parent 90af19a commit 78f1741
Showing 1 changed file with 15 additions and 3 deletions.
18 changes: 15 additions & 3 deletions pygatt/bled112_backend.py
Original file line number Diff line number Diff line change
Expand Up @@ -86,11 +86,12 @@ def __init__(self, serial_port, run=True, logfile=None):
# Initialization
self._lib = bled112_bglib.BGLib(loghandler=handler,
loglevel=LOG_LEVEL)
self._ser = serial.Serial(serial_port, timeout=0.25)
self._serial_port = serial_port
self._ser = None

self._recvr_thread = threading.Thread(target=self._recv_packets)
self._recvr_thread.daemon = True
self._recvr_thread = None
self._recvr_thread_stop = threading.Event()
self._recvr_thread_is_done = threading.Event()
self._recvr_queue = Queue.Queue() # buffer for packets received

# State that is locked
Expand Down Expand Up @@ -644,7 +645,13 @@ def run(self):
"""
Put the BLED112 into a known state to start. And start the recvr thread.
"""
self._ser = serial.Serial(self._serial_port, timeout=0.25)

self._recvr_thread = threading.Thread(target=self._recv_packets)
self._recvr_thread.daemon = True

self._recvr_thread_stop.clear()
self._recvr_thread_is_done.clear()
self._recvr_thread.start()

# Disconnect any connections
Expand Down Expand Up @@ -782,7 +789,10 @@ def subscribe(self, characteristic_uuid, callback=None, indicate=False):

def stop(self):
self._recvr_thread_stop.set()
self._recvr_thread_is_done.wait()
self._ser.close()
self._ser = None
self._recvr_thread = None

def _check_connection(self, check_if_connected=True):
"""
Expand Down Expand Up @@ -989,6 +999,8 @@ def _recv_packets(self):
else:
self._recvr_queue.put(packet, block=True, timeout=0.1)

self._recvr_thread_is_done.set()

# Generic event/response handler -------------------------------------------
def _generic_handler(self, args):
"""
Expand Down

0 comments on commit 78f1741

Please sign in to comment.