Ejemplo n.º 1
0
        public override void OnCharacteristicWrite(BluetoothGatt gatt, BluetoothGattCharacteristic characteristic, GattStatus status)
        {
            base.OnCharacteristicWrite(gatt, characteristic, status);

            Mvx.Trace("OnCharacteristicWrite: value {0} status {1}", characteristic.GetValue().ToHexString(), status);

            var args = new CharacteristicWriteEventArgs {
                Characteristic = new Characteristic(characteristic, gatt, this)
            };

            switch (status)
            {
            case GattStatus.Failure:
            case GattStatus.InsufficientAuthentication:
            case GattStatus.InsufficientEncryption:
            case GattStatus.InvalidAttributeLength:
            case GattStatus.InvalidOffset:
            case GattStatus.ReadNotPermitted:
            case GattStatus.RequestNotSupported:
            case GattStatus.WriteNotPermitted:
                args.IsSuccessful = false;
                break;

            case GattStatus.Success:
                args.IsSuccessful = true;
                break;
            }

            CharacteristicValueWritten(this, args);
        }
Ejemplo n.º 2
0
 private void RaiseValueWritten(CharacteristicWriteEventArgs e)
 {
     if (ValueWritten != null)
     {
         ValueWritten(this, e);
     }
 }
Ejemplo n.º 3
0
 private void OnCharacteristicWriteComplete(object sender, CharacteristicWriteEventArgs characteristicUpdateEventArgs)
 {
     if (characteristicUpdateEventArgs.Characteristic.Id == this.Id)
     {
         WriteComplete?.Invoke(this, new CharacteristicWriteEventArgs(true, this));
     }
 }
Ejemplo n.º 4
0
 private void OnCharacteristicValueWritten(object sender, CharacteristicWriteEventArgs e)
 {
     if (e.Characteristic.ID == ID)
     {
         _gattCallback.CharacteristicValueWritten -= OnCharacteristicValueWritten;
         RaiseValueWritten(e);
     }
 }