コード例 #1
0
        public void ConnectPrinter(IPeripheral selectedPeripheral)
        {
            if (!selectedPeripheral.IsConnected())
            {
                selectedPeripheral.Connect();
            }

            _perifDisposable = selectedPeripheral.WhenAnyCharacteristicDiscovered().Subscribe((characteristic) =>
            {
                if (characteristic.CanWrite() && !characteristic.CanRead() && !characteristic.CanNotify())
                {
                    _savedCharacteristic = characteristic;

                    IsReady = true;

                    _perifDisposable.Dispose();
                }
            });
        }
コード例 #2
0
        void ConnectPrinter(IPeripheral selectedPeripheral)
        {
            if (!selectedPeripheral.IsConnected())
            {
                selectedPeripheral.Connect();
            }

            _perifDisposable = selectedPeripheral.WhenAnyCharacteristicDiscovered().Subscribe((characteristic) =>
            {
                //System.Diagnostics.Debug.WriteLine(characteristic.Description); //this is not suppported at this momment, and no neccesary I guess
                if (characteristic.CanWrite() && !characteristic.CanRead() && !characteristic.CanNotify())
                {
                    IsReadyToPrint       = true;
                    _savedCharacteristic = characteristic;
                    System.Diagnostics.Debug.WriteLine($"Writing {characteristic.Uuid} - {characteristic.CanRead()} - {characteristic.CanIndicate()} - {characteristic.CanNotify()}");
                    _perifDisposable.Dispose();
                }
            });
        }
コード例 #3
0
 /// <summary>
 /// Will discover all services/characteristics/descriptors when connected state occurs
 /// </summary>
 /// <param name="peripheral"></param>
 /// <returns></returns>
 public static IObservable <IGattDescriptor> WhenAnyDescriptorDiscovered(this IPeripheral peripheral)
 => peripheral.WhenAnyCharacteristicDiscovered().SelectMany(x => x.DiscoverDescriptors());