Ejemplo n.º 1
0
        internal static async Task <IBleResult> ExecuteWithBleAvailabilityCheckAsync(this IBleAvailability bleAvailability, Func <Task <IBleResult> > executionProvider)
        {
            IBleResult result;

            try
            {
                switch (bleAvailability.BleState)
                {
                case BluetoothState.On:
                    result = await executionProvider.Invoke().ConfigureAwait(false);

                    break;

                case BluetoothState.Unavailable:
                    result = BleResult.Failure(BleFailure.BleNotAvailable);
                    break;

                case BluetoothState.Unauthorized:
                    result = BleResult.Failure(BleFailure.NoBluetoothPermissions);
                    break;

                default:
                    result = BleResult.Failure(BleFailure.BluetoothNotEnabled);
                    break;
                }
            }
            catch (Exception e)
            {
                result = BleResult.Failure(e);
            }

            return(result);
        }
Ejemplo n.º 2
0
        internal static IBleResult <T> ExecuteWithBleAvailabilityCheck <T>(this IBleAvailability bleAvailability, Func <IBleResult <T> > executionProvider)
        {
            IBleResult <T> result;

            try
            {
                switch (bleAvailability.BleState)
                {
                case BluetoothState.On:
                    result = executionProvider.Invoke();
                    break;

                case BluetoothState.Unavailable:
                    result = BleResult.Failure <T>(BleFailure.BleNotAvailable);
                    break;

                case BluetoothState.Unauthorized:
                    result = BleResult.Failure <T>(BleFailure.NoBluetoothPermissions);
                    break;

                default:
                    result = BleResult.Failure <T>(BleFailure.BluetoothNotEnabled);
                    break;
                }
            }
            catch (Exception e)
            {
                result = BleResult.Failure <T>(e);
            }

            return(result);
        }
Ejemplo n.º 3
0
        public BleConnectionManager(IAdapter bleAdapter, IBleAvailability bleAvailabilityManager, IBleLogger logger)
        {
            _bleAdapter      = bleAdapter;
            _bleAvailability = bleAvailabilityManager;
            _logger          = logger;

            _bleAdapter.DeviceConnected      += OnDeviceConnected;
            _bleAdapter.DeviceDisconnected   += OnDeviceDisconnected;
            _bleAdapter.DeviceConnectionLost += OnDeviceConnectionLost;
        }
Ejemplo n.º 4
0
        public BleSearchManager(IAdapter bleAdapter, IBleAvailability bleAvailabilityManager, IExecutor executor, IBleLogger logger)
        {
            _bleAdapter             = bleAdapter;
            _bleAvailabilityManager = bleAvailabilityManager;
            _executor = executor;
            _logger   = logger;

            _bleAdapter.ScanMode    = ScanMode.Balanced;
            _bleAdapter.ScanTimeout = int.MaxValue;
        }