Simple test

Ensure your device works with this simple test.

examples/ble_magic_light_simpletest.py
 1# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries
 2# SPDX-License-Identifier: MIT
 3
 4"""This demo connects to a magic light and has it do a colorwheel."""
 5
 6import _bleio
 7import adafruit_ble
 8from adafruit_ble.advertising.standard import ProvideServicesAdvertisement
 9from rainbowio import colorwheel
10
11from adafruit_ble_magic_light import MagicLightService
12
13# CircuitPython <6 uses its own ConnectionError type. So, is it if available. Otherwise,
14# the built in ConnectionError is used.
15connection_error = ConnectionError
16if hasattr(_bleio, "ConnectionError"):
17    connection_error = _bleio.ConnectionError
18
19
20def find_connection():
21    for connection in radio.connections:
22        if MagicLightService not in connection:
23            continue
24        return connection, connection[MagicLightService]
25    return None, None
26
27
28# Start advertising before messing with the display so that we can connect immediately.
29radio = adafruit_ble.BLERadio()
30
31active_connection, pixels = find_connection()
32current_notification = None
33app_icon_file = None
34while True:
35    if not active_connection:
36        print("Scanning for Magic Light")
37        for scan in radio.start_scan(ProvideServicesAdvertisement):
38            if MagicLightService in scan.services:
39                active_connection = radio.connect(scan)
40                try:
41                    pixels = active_connection[MagicLightService]
42                except connection_error:
43                    print("disconnected")
44                    continue
45                break
46        radio.stop_scan()
47
48    i = 0
49    while active_connection.connected:
50        pixels[0] = colorwheel(i % 256)
51        i += 1
52
53    active_connection = None