public CharacteristicPage(IGattService selectedService) { InitializeComponent(); Title = selectedService.Description; Characteristics = new ObservableCollection <CharacteristicWrapper>(); characteristicListView.ItemsSource = Characteristics; characteristicListView.ItemSelected += CharacteristicListView_ItemSelected; selectedService.WhenCharacteristicDiscovered().Subscribe((ch) => { var characteristic = ch as IGattCharacteristic; var charProperties = string.Empty; if (characteristic.CanRead()) { charProperties += "read "; } if (characteristic.CanWrite()) { charProperties += "write "; } if (characteristic.CanNotify()) { charProperties += "notify"; } Debug.WriteLine($"Characteristic discovered. UUID: {characteristic.Uuid }, Desc: {characteristic.Description}, Properties: {charProperties}"); Characteristics.Add(new CharacteristicWrapper(characteristic.Uuid.ToString(), charProperties, characteristic)); }); }
protected override void AddNative(IGattService service) { var native = service as IDroidGattService; if (native == null) { throw new ArgumentException("Service does not inherit IDroidGattService"); } if (native.Characteristics.Count == 0) { throw new ArgumentException("No characteristics are assigned to this service"); } native .Characteristics .Cast <IDroidGattCharacteristic>() .Select(character => { character .Descriptors .Cast <IDroidGattDescriptor>() .Select(y => y.Native) .ToList() .ForEach(character.Native.Descriptors.Add); return(native.Native); }); this.context.Server.AddService(native.Native); }
protected override void RemoveNative(IGattService service) { if (this.services.Remove(service)) { var native = ((IIosGattService)service).Native; this.manager.RemoveService(native); } }
protected override void RemoveNative(IGattService service) { if (this.services.Remove(service)) { var native = ((GattService)service).Native; //this.context.Manager?.RemoveService(native); } }
public GattCharacteristic(IGattService service, DeviceContext context, BluetoothGattCharacteristic native) : base(service, native.Uuid.ToGuid(), (CharacteristicProperties)(int)native.Properties) { this.context = context; this.native = native; }
public CrossBleRadioCharacteristic(IDevice device, IGattService service, IGattCharacteristic characteristic) { Device = device; Service = service; Characteristic = characteristic; }
public UwpGattCharacteristic(IGattService service, Guid characteristicUuid, CharacteristicProperties properties, GattPermissions permissions) : base(service, characteristicUuid, properties, permissions) { this.nativeReady = new Subject <GattLocalCharacteristic>(); this.connectedDevices = new List <IDevice>(); this.SubscribedDevices = new ReadOnlyCollection <IDevice>(this.connectedDevices); }
protected override void RemoveNative(IGattService service) { var nuuid = Java.Util.UUID.FromString(service.Uuid.ToString()); var native = this.server.Services.FirstOrDefault(x => x.Uuid.Equals(nuuid)); if (native != null) { this.server?.RemoveService(native); } }
public GattCharacteristic(DeviceContext context, Native native, IGattService service) : base(service, native.Uuid, (CharacteristicProperties)native.CharacteristicProperties) { this.context = context; this.Native = native; }
protected AbstractGattCharacteristic(IGattService service, Guid characteristicUuid, CharacteristicProperties properties, GattPermissions permissions) { this.Service = service; this.Uuid = characteristicUuid; this.Properties = properties; this.Permissions = permissions; this.InternalDescriptors = new List <IGattDescriptor>(); this.Descriptors = new ReadOnlyCollection <IGattDescriptor>(this.InternalDescriptors); }
public GattCharacteristic( PeripheralContext context, Native native, IGattService service ) : base( service, native.Uuid.ToString(), (CharacteristicProperties)native.CharacteristicProperties ) { this.context = context; this.Native = native; }
public GattCharacteristic(CBPeripheralManager manager, IGattService service, Guid characteristicUuid, CharacteristicProperties properties, GattPermissions permissions) : base(service, characteristicUuid, properties, permissions) { this.manager = manager; this.subscribers = new ConcurrentDictionary <NSUuid, IDevice>(); this.Native = new CBMutableCharacteristic( characteristicUuid.ToCBUuid(), properties.ToNative(), null, (CBAttributePermissions)(int)permissions // TODO ); }
private void Button_ScanService(object sender, RoutedEventArgs e) { currdev.DiscoverServices().Subscribe(mService => { IGattService findServ = mService; findServ.DiscoverCharacteristics().Subscribe(mCharacter => { Debug.WriteLine("FindCharacter OK:" + mCharacter.Uuid); if (mCharacter.Uuid == (new Guid("48EB9002-F352-5FA0-9B06-8FCAA22602CF"))) { Debug.WriteLine("找到了 OK:"); FindCharacter = mCharacter; } } ); //Debug.WriteLine("mService OK"); }); }
public GattCharacteristic(GattContext context, IGattService service, Guid uuid, CharacteristicProperties properties, GattPermissions permissions) : base(service, uuid, properties, permissions) { this.context = context; this.subscribers = new Dictionary <string, IDevice>(); this.Native = new BluetoothGattCharacteristic( uuid.ToUuid(), properties.ToNative(), permissions.ToNative() ); this.NotificationDescriptor = new BluetoothGattDescriptor( NotifyDescriptorId.ToUuid(), GattDescriptorPermission.Write | GattDescriptorPermission.Read ); this.Native.AddDescriptor(this.NotificationDescriptor); }
protected override void AddNative(IGattService service) { var native = service as IUwpGattService; native.Init().Wait(); }
private void RegisterBatteryLevelListener(IGattService service) { this.BatteryServiceHandler.ValueChangeCompleted += BatteryServiceHandler_ValueChangeCompleted; }
private void RegisterGlucoseMeasurementListener(IGattService service) { this.GlucoseServiceHandler.MeasurementNotification += GlucoseServiceHandler_MeasurementNotification;; }
public GattCharacteristic(Native native, IGattService service) : base(service, native.Uuid, (CharacteristicProperties)native.CharacteristicProperties) { this.Native = native; }
private void RegisterGlucoseMeasurementListener(IGattService service) { this.GlucoseServiceHandler.MeasurementNotification += GlucoseServiceHandler_MeasurementNotification; ; }
public GattCharacteristic(GattCharacteristic1 native, IGattService service, CharacteristicProperties properties) : base(service, Guid.Parse(native.UUID), properties) { this.native = native; }
protected abstract void RemoveNative(IGattService service);
protected AbstractGattCharacteristic(IGattService service, Guid uuid, CharacteristicProperties properties) { this.Service = service; this.Uuid = uuid; this.Properties = properties; }
public GattCharacteristic(IGattService service, CBCharacteristic native) : base(service, native.UUID.ToGuid(), (CharacteristicProperties)(int)native.Properties) { this.native = native; }
protected abstract void AddNative(IGattService service);
protected override void RemoveNative(IGattService service) => ((IUwpGattService)service).Stop();
public virtual void AddService(IGattService service) { this.ServiceList.Add(service); this.AddNative(service); }
public GattCharacteristic(IGattService service, Guid uuid, CharacteristicProperties properties) : base(service, uuid, properties) { }
public MockGattCharacteristic(IGattService service, Guid guid, CharacteristicProperties properties) : base(service, guid, properties) { }
public TestGattCharacteristic(string uuid, IGattService service, CharacteristicProperties?props = null) { this.Uuid = uuid; this.Service = service; this.Properties = props ?? CharacteristicProperties.Notify | CharacteristicProperties.Write | CharacteristicProperties.Read; }
public static Task <IList <IGattCharacteristic> > GetCharacteristicsAsync(this IGattService service, CancellationToken?cancelToken = null) => service .GetCharacteristics() .ToTask(cancelToken ?? CancellationToken.None);
protected override void RemoveNative(IGattService service) => this.context.Server.Services.Remove(((IDroidGattService)service).Native);