public async Task <Bluetooth.LE.Gatt.Client.GattCharacteristicsResult> DiscoverAllCharacteristicsAsync() { var win10Result = await Win10GattService.GetCharacteristicsAsync(); Bluetooth.LE.Gatt.Client.GattCharacteristicsResult rxResult = new Bluetooth.LE.Gatt.Client.GattCharacteristicsResult(); rxResult.CommunicationStatus = win10Result.Status.ToRXCommunicationStatus(); if (rxResult.CommunicationStatus == Bluetooth.LE.Gatt.GattCommunicationStatus.Success) { rxResult.ProtocolError = GattErrorCode.Success; List <RXGattClientCharacteristic> rxCharacteristicList = new List <RXGattClientCharacteristic>(); foreach (var win10Characteristic in win10Result.Characteristics) { rxCharacteristicList.Add(RXGattClient.GetRXCharacteristicFromWin10Characteristic(win10Characteristic)); } rxResult.Characteristics = rxCharacteristicList.ToArray(); } else if (rxResult.CommunicationStatus == Bluetooth.LE.Gatt.GattCommunicationStatus.ProtocolError) { rxResult.ProtocolError = (Bluetooth.LE.Gatt.GattErrorCode)(win10Result.ProtocolError); } else if (rxResult.CommunicationStatus == Bluetooth.LE.Gatt.GattCommunicationStatus.Unreachable) { throw new NotImplementedException("UNREACHABLE"); } else if (rxResult.CommunicationStatus == Bluetooth.LE.Gatt.GattCommunicationStatus.AccessDenied) { throw new NotImplementedException("ACCESS_DENIED"); } return(rxResult); }
public async Task <Bluetooth.LE.Gatt.Client.GattDescriptorsResult> DiscoverAllCharacteristicDescriptorsAsync() { var win10Result = await Win10Characteristic.GetDescriptorsAsync(); Bluetooth.LE.Gatt.Client.GattDescriptorsResult rxResult = new Bluetooth.LE.Gatt.Client.GattDescriptorsResult(); rxResult.CommunicationStatus = win10Result.Status.ToRXCommunicationStatus(); if (rxResult.CommunicationStatus == RemoteX.Bluetooth.LE.Gatt.GattCommunicationStatus.Success) { rxResult.ProtocolError = GattErrorCode.Success; List <RXGattClientDescriptor> rxDescriptorList = new List <RXGattClientDescriptor>(); foreach (var win10Descriptor in win10Result.Descriptors) { rxDescriptorList.Add(RXGattClient.GetRXDescriptorFromWin10Descriptor(win10Descriptor)); } rxResult.Descriptors = rxDescriptorList.ToArray(); } else if (rxResult.CommunicationStatus == RemoteX.Bluetooth.LE.Gatt.GattCommunicationStatus.ProtocolError) { rxResult.ProtocolError = (Bluetooth.LE.Gatt.GattErrorCode)(win10Result.ProtocolError); } else if (rxResult.CommunicationStatus == GattCommunicationStatus.Unreachable) { throw new NotImplementedException("UNREACHABLE"); } else if (rxResult.CommunicationStatus == GattCommunicationStatus.AccessDenied) { throw new NotImplementedException("ACCESSDENIED"); } return(rxResult); }
public RXGattClientCharacteristic(RXGattClient rxGattClient, Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristic win10Characteristic) { RXGattClient = rxGattClient; Win10Characteristic = win10Characteristic; GattCharacteristicConfiguration = new RXClientCharacteristicConfiguration(this); Win10Characteristic.ValueChanged += Win10Characteristic_ValueChanged; //Win10Characteristic.GetDescriptorsForUuidAsync() }
public RXGattClientService(RXGattClient rxGattClient, GattDeviceService win10GattService) { RXGattClient = rxGattClient; Win10GattService = win10GattService; }