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