diff --git a/adafruit_ble/__init__.py b/adafruit_ble/__init__.py index 07bd8a5..37c205c 100755 --- a/adafruit_ble/__init__.py +++ b/adafruit_ble/__init__.py @@ -174,6 +174,8 @@ class BLERadio: :param float interval: advertising interval, in seconds :param int timeout: advertising timeout in seconds. If None, no timeout. + + ``timeout`` is not available in CircuitPython 5.x and must be `None`. """ advertisement_bytes = bytes(advertisement) scan_response_bytes = b"" @@ -183,13 +185,28 @@ class BLERadio: scan_response.tx_power = self.tx_power if scan_response: scan_response_bytes = bytes(scan_response) - self._adapter.start_advertising( - advertisement_bytes, - scan_response=scan_response_bytes, - connectable=advertisement.connectable, - interval=interval, - timeout=0 if timeout is None else timeout, - ) + + # Remove after 5.x is no longer supported. + if ( + sys.implementation.name == "circuitpython" + and sys.implementation.version[0] <= 5 + ): + if timeout is not None: + raise NotImplementedError("timeout not available for CircuitPython 5.x") + self._adapter.start_advertising( + advertisement_bytes, + scan_response=scan_response_bytes, + connectable=advertisement.connectable, + interval=interval, + ) + else: + self._adapter.start_advertising( + advertisement_bytes, + scan_response=scan_response_bytes, + connectable=advertisement.connectable, + interval=interval, + timeout=0 if timeout is None else timeout, + ) def stop_advertising(self): """Stops advertising.""" diff --git a/examples/ble_bluefruit_color_picker.py b/examples/ble_bluefruit_color_picker.py index 2b197af..2bf3499 100755 --- a/examples/ble_bluefruit_color_picker.py +++ b/examples/ble_bluefruit_color_picker.py @@ -2,11 +2,13 @@ import board import neopixel + +from adafruit_bluefruit_connect.packet import Packet +from adafruit_bluefruit_connect.color_packet import ColorPacket + from adafruit_ble import BLERadio from adafruit_ble.advertising.standard import ProvideServicesAdvertisement from adafruit_ble.services.nordic import UARTService -from adafruit_bluefruit_connect.packet import Packet -from adafruit_bluefruit_connect.color_packet import ColorPacket ble = BLERadio() uart_service = UARTService() diff --git a/examples/ble_demo_central.py b/examples/ble_demo_central.py index f492e66..433f3ad 100644 --- a/examples/ble_demo_central.py +++ b/examples/ble_demo_central.py @@ -10,13 +10,14 @@ import board import busio import digitalio import adafruit_lis3dh -from adafruit_ble import BLERadio -from adafruit_ble.advertising.standard import ProvideServicesAdvertisement -from adafruit_ble.services.nordic import UARTService import neopixel from adafruit_bluefruit_connect.color_packet import ColorPacket +from adafruit_ble import BLERadio +from adafruit_ble.advertising.standard import ProvideServicesAdvertisement +from adafruit_ble.services.nordic import UARTService + def scale(value): """Scale an value from (acceleration range) to 0-255 (RGB range)""" diff --git a/examples/ble_demo_periph.py b/examples/ble_demo_periph.py index ff6800c..5eb5ae5 100644 --- a/examples/ble_demo_periph.py +++ b/examples/ble_demo_periph.py @@ -6,14 +6,14 @@ and updates a Circuit Playground to show the history of the received packets. import board import neopixel -from adafruit_ble import BLERadio -from adafruit_ble.advertising.standard import ProvideServicesAdvertisement -from adafruit_ble.services.nordic import UARTService - # Only the packet classes that are imported will be known to Packet. from adafruit_bluefruit_connect.packet import Packet from adafruit_bluefruit_connect.color_packet import ColorPacket +from adafruit_ble import BLERadio +from adafruit_ble.advertising.standard import ProvideServicesAdvertisement +from adafruit_ble.services.nordic import UARTService + NUM_PIXELS = 10 np = neopixel.NeoPixel(board.NEOPIXEL, NUM_PIXELS, brightness=0.1) next_pixel = 0 diff --git a/examples/ble_hid_periph.py b/examples/ble_hid_periph.py index 8940bcc..f35fdd4 100644 --- a/examples/ble_hid_periph.py +++ b/examples/ble_hid_periph.py @@ -6,13 +6,15 @@ This example acts as a keyboard to peer devices. import sys import time +from adafruit_hid.keyboard import Keyboard +from adafruit_hid.keyboard_layout_us import KeyboardLayoutUS + import adafruit_ble from adafruit_ble.advertising import Advertisement from adafruit_ble.advertising.standard import ProvideServicesAdvertisement from adafruit_ble.services.standard.hid import HIDService from adafruit_ble.services.standard.device_info import DeviceInfoService -from adafruit_hid.keyboard import Keyboard -from adafruit_hid.keyboard_layout_us import KeyboardLayoutUS + # Use default HID descriptor hid = HIDService()