ble_detailed_scan.py
1 # This example scans for any BLE advertisements and prints one advertisement and one scan response 2 # from every device found. This scan is more detailed than the simple test because it includes 3 # specialty advertising types. 4 5 from adafruit_ble import BLERadio 6 7 from adafruit_ble.advertising import Advertisement 8 from adafruit_ble.advertising.standard import ProvideServicesAdvertisement 9 10 ble = BLERadio() 11 print("scanning") 12 found = set() 13 scan_responses = set() 14 # By providing Advertisement as well we include everything, not just specific advertisements. 15 for advertisement in ble.start_scan(ProvideServicesAdvertisement, Advertisement): 16 addr = advertisement.address 17 if advertisement.scan_response and addr not in scan_responses: 18 scan_responses.add(addr) 19 elif not advertisement.scan_response and addr not in found: 20 found.add(addr) 21 else: 22 continue 23 print(addr, advertisement) 24 print("\t" + repr(advertisement)) 25 print() 26 27 print("scan done")