/// <summary> /// Scan for nearby BLE device advertisements that match <paramref name="filter" />. Stop scanning after /// <see cref="DefaultScanTimeout" /> /// </summary> /// <param name="adapter">The adapter to use for scanning</param> /// <param name="advertisementDiscovered">Callback to notify for each discovered advertisement</param> /// <param name="filter"> /// Scan filter that will ignore broadcast advertisements that do not match. /// <c>new ScanFilter.Factory(){}.CreateFilter()</c> /// </param> public static Task ScanForBroadcasts(this IBluetoothLowEnergyAdapter adapter, ScanFilter filter, Action <IBlePeripheral> advertisementDiscovered) { Contract.Requires <ArgumentNullException>(adapter != null); return(ScanForBroadcasts(adapter, filter, advertisementDiscovered, DefaultScanTimeout)); }
/// <summary> /// Scan for nearby BLE device advertisements that match <paramref name="filter" />. Stop scanning when /// <paramref name="ct" /> is cancelled. /// </summary> /// <param name="adapter">The adapter to use for scanning</param> /// <param name="advertisementDiscovered">Callback to notify for each discovered advertisement</param> /// <param name="filter"> /// Scan filter that will ignore broadcast advertisements that do not match. /// <c>new ScanFilter.Factory(){}.CreateFilter()</c> /// </param> /// <param name="ct">Scan will run continuously until this token is cancelled</param> public static Task ScanForBroadcasts(this IBluetoothLowEnergyAdapter adapter, ScanFilter filter, Action <IBlePeripheral> advertisementDiscovered, CancellationToken ct) { Contract.Requires <ArgumentNullException>(adapter != null); // ReSharper disable once PossibleNullReferenceException return(adapter.ScanForBroadcasts(filter, Observer.Create(advertisementDiscovered), ct)); }
/// <summary> /// Scan for nearby BLE device advertisements that match <paramref name="filter" />. Stop scanning after /// <paramref name="timeout" /> /// </summary> /// <param name="adapter">The adapter to use for scanning</param> /// <param name="advertisementDiscovered">Callback to notify for each discovered advertisement</param> /// <param name="timeout">cancel scan after this length of time</param> /// <param name="filter"> /// Scan filter that will ignore broadcast advertisements that do not match. /// <c>new ScanFilter.Factory(){}.CreateFilter()</c> /// </param> public static Task ScanForBroadcasts(this IBluetoothLowEnergyAdapter adapter, ScanFilter filter, Action <IBlePeripheral> advertisementDiscovered, TimeSpan timeout) { Contract.Requires <ArgumentNullException>(adapter != null); return(ScanForBroadcasts( adapter, filter, advertisementDiscovered, new CancellationTokenSource(timeout).Token)); }
/// <summary> /// Scan for nearby BLE device advertisements that match <paramref name="filter" />. Stop scanning after /// <paramref name="timeout" /> /// </summary> /// <param name="adapter">The adapter to use for scanning</param> /// <param name="advertisementDiscovered">Callback to notify for each discovered advertisement</param> /// <param name="timeout">cancel scan after this length of time</param> /// <param name="filter"> /// Scan filter that will ignore broadcast advertisements that do not match. /// <see cref="ScanFilter.Factory" /> /// </param> public static Task ScanForBroadcasts(this IBluetoothLowEnergyAdapter adapter, ScanFilter filter, IObserver <IBlePeripheral> advertisementDiscovered, TimeSpan timeout) { Contract.Requires <ArgumentNullException>(adapter != null); // ReSharper disable once PossibleNullReferenceException return(adapter.ScanForBroadcasts( filter, advertisementDiscovered, new CancellationTokenSource(timeout).Token)); }