public byte[] ReadUserDescription(string uuid) { if (!uuid.Equals("ffe1") && !uuid.Equals("ffe2")) { return(null); } wclGattDescriptor descriptor = uuid.Equals("ffe1") ? WriteChUserDesc : ReadChUserDesc; Client.ReadDescriptorValue(descriptor, wclGattOperationFlag.goReadFromDevice, out wclGattDescriptorValue value); return((byte[])value.Data.Clone()); }
public bool GetFeatures() { stage = 4; int Res = Client.ReadCharacteristics(UEIservice, wclGattOperationFlag.goReadFromDevice, out Characteristics); if (Res != wclErrors.WCL_E_SUCCESS || Characteristics == null) { return(false); } stage = 5; int flags = 0; foreach (wclGattCharacteristic Character in Characteristics) { String s; if (Character.Uuid.IsShortUuid) { s = Character.Uuid.ShortUuid.ToString("X4"); } else { s = Character.Uuid.LongUuid.ToString(); } if (s.Equals("FFE1")) { WriteCh = Character; flags |= 1; } else if (s.Equals("FFE2")) { ReadCh = Character; flags |= 2; } } if (flags != 3) { return(false); } stage = 6; Res = Client.ReadDescriptors(ReadCh, wclGattOperationFlag.goReadFromDevice, out Descriptors); if (Res != wclErrors.WCL_E_SUCCESS || Descriptors == null) { return(false); } stage = 7; foreach (wclGattDescriptor Descriptor in Descriptors) { String s; if (Descriptor.Uuid.IsShortUuid) { s = Descriptor.Uuid.ShortUuid.ToString("X4"); } else { s = Descriptor.Uuid.LongUuid.ToString(); } if (s.Equals("2902")) { hasCCCD = true; CCCDdescriptor = Descriptor; } else if (s.Equals("2901")) { ReadChUserDesc = Descriptor; } } stage = 8; Res = Client.ReadDescriptors(WriteCh, wclGattOperationFlag.goReadFromDevice, out Descriptors); if (Res != wclErrors.WCL_E_SUCCESS || Descriptors == null) { return(false); } foreach (wclGattDescriptor Descriptor in Descriptors) { String s; if (Descriptor.Uuid.IsShortUuid) { s = Descriptor.Uuid.ShortUuid.ToString("X4"); } else { s = Descriptor.Uuid.LongUuid.ToString(); } if (s.Equals("2901")) { WriteChUserDesc = Descriptor; } } stage = 9; Subscribe(true); Client.OnCharacteristicChanged += Client_OnCharacteristicChanged; return(true); }