Skip to content

Commit

Permalink
Merge pull request #135 from tannewt/connect_to_address
Browse files Browse the repository at this point in the history
Connect to an address directly
  • Loading branch information
dhalbert authored Sep 13, 2021
2 parents 9ae0e7f + 3d960fb commit 07f579c
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 12 deletions.
22 changes: 12 additions & 10 deletions adafruit_ble/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ class BLEConnection:
Represents a connection to a peer BLE device.
It acts as a map from a `Service` type to a `Service` instance for the connection.
:param bleio_connection _bleio.Connection: the native `_bleio.Connection` object to wrap
:param _bleio.Connection bleio_connection: the native `_bleio.Connection` object to wrap
"""

Expand Down Expand Up @@ -227,15 +227,15 @@ def start_scan(
:param float timeout: the scan timeout in seconds.
If None, will scan until `stop_scan` is called.
:param float interval: the interval (in seconds) between the start
of two consecutive scan windows
Must be in the range 0.0025 - 40.959375 seconds.
of two consecutive scan windows
Must be in the range 0.0025 - 40.959375 seconds.
:param float window: the duration (in seconds) to scan a single BLE channel.
window must be <= interval.
window must be <= interval.
:param int minimum_rssi: the minimum rssi of entries to return.
:param bool active: request and retrieve scan responses for scannable advertisements.
:return: If any ``advertisement_types`` are given,
only Advertisements of those types are produced by the returned iterator.
If none are given then `Advertisement` objects will be returned.
only Advertisements of those types are produced by the returned iterator.
If none are given then `Advertisement` objects will be returned.
:rtype: iterable
"""
if not advertisement_types:
Expand Down Expand Up @@ -276,16 +276,18 @@ def stop_scan(self):
once empty."""
self._adapter.stop_scan()

def connect(self, advertisement, *, timeout=4.0):
def connect(self, peer, *, timeout=4.0):
"""
Initiates a `BLEConnection` to the peer that advertised the given advertisement.
:param advertisement Advertisement: An `Advertisement` or a subclass of `Advertisement`
:param timeout float: how long to wait for a connection
:param peer: An `Advertisement`, a subclass of `Advertisement` or `_bleio.Address`
:param float timeout: how long to wait for a connection
:return: the connection to the peer
:rtype: BLEConnection
"""
connection = self._adapter.connect(advertisement.address, timeout=timeout)
if not isinstance(peer, _bleio.Address):
peer = peer.address
connection = self._adapter.connect(peer, timeout=timeout)
self._connection_cache[connection] = BLEConnection(connection)
return self._connection_cache[connection]

Expand Down
5 changes: 3 additions & 2 deletions examples/ble_uart_echo_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,9 @@
# SPDX-License-Identifier: MIT

"""
Can be used with ble_uart_echo_client.py or with the UART page on the Adafruit Bluefruit Connect app.
Receives characters from the UARTService and transmits them back.
Can be used with ble_uart_echo_client.py or with the UART page on the
Adafruit Bluefruit Connect app. Receives characters from the UARTService
and transmits them back.
"""

from adafruit_ble import BLERadio
Expand Down

0 comments on commit 07f579c

Please sign in to comment.