def main(serial_port): print("Serial port used: {}".format(serial_port)) driver = BLEDriver(serial_port=serial_port, baud_rate=1000000) observer = TimeoutObserver() adv_data = BLEAdvData(complete_local_name="pc_ble_driver_py") driver.observer_register(observer) driver.open() if config.__conn_ic_id__.upper() == "NRF51": driver.ble_enable( BLEEnableParams( vs_uuid_count=0, service_changed=0, periph_conn_count=1, central_conn_count=0, central_sec_count=0, ) ) elif config.__conn_ic_id__.upper() == "NRF52": driver.ble_enable() driver.ble_gap_adv_data_set(adv_data) driver.ble_gap_adv_start() observer.wait_for_timeout() print("Closing") driver.close()
def main(serial_port): print("Serial port used: {}".format(serial_port)) driver = BLEDriver(serial_port=serial_port, auto_flash=True) observer = TimeoutObserver() adv_data = BLEAdvData(complete_local_name='Example') driver.observer_register(observer) driver.open() driver.ble_enable() driver.ble_gap_adv_data_set(adv_data) driver.ble_gap_adv_start() observer.wait_for_timeout() print("Closing") driver.close()
def scan_for_devices(timeout, adapter) -> List[Tuple[str, str]]: """Scan for additional devices. Returns a list of all the mac addresses of ble devices found. """ class ScanDriverObserver(BLEDriverObserver): def __init__(self): super(ScanDriverObserver, self).__init__() self.advertised_devices = [] def on_gap_evt_adv_report(self, ble_driver, conn_handle, peer_addr, rssi, adv_type, adv_data): if BLEAdvData.Types.complete_local_name in adv_data.records: dev_name_list = adv_data.records[ BLEAdvData.Types.complete_local_name] elif BLEAdvData.Types.short_local_name in adv_data.records: dev_name_list = adv_data.records[ BLEAdvData.Types.short_local_name] else: return dev_name = "".join(chr(e) for e in dev_name_list) dev_addr = NrfBackend.mac_bin_to_string(peer_addr.addr) self.advertised_devices.append((dev_name, dev_addr)) observer = ScanDriverObserver() driver = BLEDriver(serial_port=adapter, auto_flash=False, baud_rate=1000000, log_severity_level="debug") driver.open() driver.ble_enable() driver.observer_register(observer) driver.ble_gap_scan_start(scan_params=BLEGapScanParams( interval_ms=200, window_ms=150, timeout_s=timeout)) sleep(timeout) driver.close() return list(set(observer.advertised_devices))