public void Discover(Action <PoweredUpBluetoothDeviceInfo> discoveryHandler, CancellationToken cancellationToken = default) { _logger.LogInformation("BluegigaPoweredUpBluetoothAdapter: Connecting to BgBleService"); _tokenSource = new CancellationTokenSource(); var applicationCancellationTokenSource = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken, _tokenSource.Token); var discoveryCompleteTokenSource = new CancellationTokenSource(); _bleService = new BgBleService(applicationCancellationTokenSource, _bleRepository, _logger); _bleService.Process(discoveryCompleteTokenSource).ConfigureAwait(false); while (!discoveryCompleteTokenSource.IsCancellationRequested) { WaitHandle.WaitAny(new[] { cancellationToken.WaitHandle }, 500); } _logger.LogInformation("BluegigaPoweredUpBluetoothAdapter: BgBleService Processing Complete"); foreach (var bgBleDevice in _bleService.Devices.Values) { discoveryHandler?.Invoke(new PoweredUpBluetoothDeviceInfo { ManufacturerData = bgBleDevice.Advertisement.Data, BluetoothAddress = bgBleDevice.BluetoothAddress }); } }
public BluegigaPoweredUpBluetoothCharacteristic(BgBleService bgBleService, BgBleDeviceCharacteristic bgBleDeviceCharacteristic) { _bgBleService = bgBleService; _bgBleDeviceCharacteristic = bgBleDeviceCharacteristic; }
protected virtual void Dispose(bool disposing) { _bgBleService = null; _bgBleDeviceService = null; }
public BluegigaPoweredUpBluetoothService(BgBleService bgBleService, BgBleDeviceService bgBleDeviceService) { _bgBleService = bgBleService; _bgBleDeviceService = bgBleDeviceService; }