Beispiel #1
0
        public void Shutdown()
        {
            StopScanning();

            if (_service != null)
            {
                _service.Dispose();
                _service = null;
            }

            if (_peripheral != null)
            {
                _peripheral.Dispose();
                _peripheral = null;
            }

            if (_centralManager != null)
            {
                _centralManager.Dispose();
                _centralManager = null;
            }

            if (_dispatchQueue != null)
            {
                _dispatchQueue.Dispose();
                _dispatchQueue = null;
            }
        }
Beispiel #2
0
        public void Dispose()
        {
            if (dfuController != null)
            {
                dfuController.Dispose();
                dfuController = null;
            }

            if (dfuServiceInitiator != null)
            {
                dfuServiceInitiator.Dispose();
                dfuServiceInitiator = null;
            }

            if (dfuFirmware != null)
            {
                dfuFirmware.Dispose();
                dfuFirmware = null;
            }

            if (cbCentralManager != null)
            {
                cbCentralManager.Dispose();
                cbCentralManager = null;
            }
        }
        private Task <PermissionStatus> RequestBluetoothAsync()
        {
            var manager = new CBCentralManager();
            var tcs     = new TaskCompletionSource <PermissionStatus>(manager);

            manager.UpdatedState += StatusCollback;

            return(tcs.Task.ReturnInTimeoutAsync(PermissionStatus.Unknown, PermissionTimeout));

            void StatusCollback(object sender, EventArgs e)
            {
                var state = manager.State;

                manager.UpdatedState -= StatusCollback;

                var result = PermissionStatus.Unknown;

                switch (state)
                {
                case CBCentralManagerState.PoweredOff:
                case CBCentralManagerState.Unsupported:
                    result = PermissionStatus.Disabled;
                    break;

                case CBCentralManagerState.PoweredOn:
                    result = PermissionStatus.Granted;
                    break;

                case CBCentralManagerState.Unauthorized:
                    result = PermissionStatus.Denied;
                    break;

                case CBCentralManagerState.Resetting:
                default:
                    result = PermissionStatus.Unknown;
                    break;
                }
                manager.Dispose();
                manager = null;
                tcs.SetResult(result);
            }
        }
Beispiel #4
0
 public void TearDown()
 {
     heartRateMonitorUUID?.Dispose();
     mgrDelegate?.Dispose();               // make sure that our delegate does not get messages after the mgr was disposed
     mgr?.Dispose();
 }
 public void TearDown()
 {
     // should dispose the delegate
     mgr.Dispose();
 }
Beispiel #6
0
 public void Dispose()
 {
     cbManager.Dispose();
 }