public override void OnReadRemoteRssi(BluetoothGatt gatt, int rssi, GattStatus status)
        {
            base.OnReadRemoteRssi(gatt, rssi, status);

            Trace.Message("OnReadRemoteRssi: device {0} status {1} value {2}", gatt.Device.Name, status, rssi);

            RemoteRssiRead?.Invoke(this, new RssiReadCallbackEventArgs(GetExceptionFromGattStatus(status), rssi));
        }
Example #2
0
        public override void OnReadRemoteRssi(BluetoothGatt gatt, int rssi, GattStatus status)
        {
            base.OnReadRemoteRssi(gatt, rssi, status);

            Trace.Message("OnReadRemoteRssi: device {0} status {1} value {2}", gatt.Device.Name, status, rssi);

            IDevice device;

            if (!_adapter.ConnectedDeviceRegistry.TryGetValue(gatt.Device.Address, out device))
            {
                device = new Device(_adapter, gatt.Device, gatt, this, rssi);
                Trace.Message("Rssi updated for device not in connected list. This should not happen.");
            }

            RemoteRssiRead?.Invoke(this, new RssiReadCallbackEventArgs(device, GetExceptionFromGattStatus(status), rssi));
        }
        public override void OnReadRemoteRssi(BluetoothGatt gatt, int rssi, GattStatus status)
        {
            base.OnReadRemoteRssi(gatt, rssi, status);

            Trace.Message("OnReadRemoteRssi: device {0} status {1} value {2}", gatt.Device.Name, status, rssi);

            IDevice device;

            if (!_adapter.ConnectedDeviceRegistry.TryGetValue(gatt.Device.Address, out device))
            {
                device = new Device(_adapter, gatt.Device, gatt, this, rssi);
                Trace.Message("Rssi updated for device not in connected list. This should not happen.");
            }

            Exception error = null;

            switch (status)
            {
            case GattStatus.Failure:
            case GattStatus.InsufficientAuthentication:
            case GattStatus.InsufficientEncryption:
            case GattStatus.InvalidAttributeLength:
            case GattStatus.InvalidOffset:
            case GattStatus.ReadNotPermitted:
            case GattStatus.RequestNotSupported:
            case GattStatus.WriteNotPermitted:
                error = new Exception(status.ToString());
                break;

            case GattStatus.Success:
                break;
            }

            var args = new RssiReadCallbackEventArgs(device, error, rssi);

            RemoteRssiRead?.Invoke(this, args);
        }