# SPDX-FileCopyrightText: 2021 ladyada for Adafruit Industries # SPDX-License-Identifier: MIT """ This example solicits that apple devices that provide notifications connect to it, initiates pairing, prints existing notifications and then prints any new ones as they arrive. """ import time import adafruit_ble from adafruit_ble.advertising.standard import SolicitServicesAdvertisement import adafruit_ble_apple_notification_center as ancs # PyLint can't find BLERadio for some reason so special case it here. radio = adafruit_ble.BLERadio() # pylint: disable=no-member a = SolicitServicesAdvertisement() a.solicited_services.append(ancs.AppleNotificationCenterService) radio.start_advertising(a) while not radio.connected: pass print("connected") known_notifications = set() while radio.connected: for connection in radio.connections: if not connection.paired: connection.pair() print("paired")
# Pick your MIDI CC numbers here cc_x_num = 7 # volume cc_y_num = 70 # unassigned cc_thumb_num = 71 # unassigned cc_index_num = 75 # unassigned cc_middle_num = 76 # unassigned cc_ring_num = 77 # unassigned midi_channel = 1 # pick your midi out channel here # Use default HID descriptor midi_service = adafruit_ble_midi.MIDIService() advertisement = ProvideServicesAdvertisement(midi_service) ble = adafruit_ble.BLERadio() if ble.connected: for c in ble.connections: c.disconnect() midi = adafruit_midi.MIDI(midi_out=midi_service, out_channel=midi_channel - 1) print("advertising") ble.name = "Power Glove MIDI" ble.start_advertising(advertisement) # reads an analog pin and returns value remapped to out range, e.g., 0-127 def get_flex_cc(sensor, low_in, high_in, min_out, max_out): flex_raw = sensor.value flex_cc = simpleio.map_range(flex_raw, low_in, high_in, min_out, max_out)
* Author(s): Scott Shawcroft """ import struct import os import time from micropython import const import adafruit_ble from adafruit_ble.advertising import Advertisement, LazyObjectField from adafruit_ble.advertising.standard import ManufacturerData, ManufacturerDataField __version__ = "0.0.0-auto.0" __repo__ = "https://github.com/adafruit/Adafruit_CircuitPython_BLE_BroadcastNet.git" _ble = adafruit_ble.BLERadio() # pylint: disable=invalid-name _sequence_number = 0 # pylint: disable=invalid-name def broadcast(measurement, *, broadcast_time=0.1, extended=False): """Broadcasts the given measurement for the given broadcast time. If extended is False and the measurement would be too long, it will be split into multiple measurements for transmission. """ global _sequence_number # pylint: disable=global-statement,invalid-name for submeasurement in measurement.split(252 if extended else 31): submeasurement.sequence_number = _sequence_number _ble.start_advertising(submeasurement, scan_response=None) time.sleep(broadcast_time) _ble.stop_advertising() _sequence_number = (_sequence_number + 1) % 256