コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
 public RXGattClientCharacteristic(RXGattClient rxGattClient, Windows.Devices.Bluetooth.GenericAttributeProfile.GattCharacteristic win10Characteristic)
 {
     RXGattClient                      = rxGattClient;
     Win10Characteristic               = win10Characteristic;
     GattCharacteristicConfiguration   = new RXClientCharacteristicConfiguration(this);
     Win10Characteristic.ValueChanged += Win10Characteristic_ValueChanged;
     //Win10Characteristic.GetDescriptorsForUuidAsync()
 }
コード例 #4
0
 public RXGattClientService(RXGattClient rxGattClient, GattDeviceService win10GattService)
 {
     RXGattClient     = rxGattClient;
     Win10GattService = win10GattService;
 }