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); }
private void RaiseValueWritten(CharacteristicWriteEventArgs e) { if (ValueWritten != null) { ValueWritten(this, e); } }
private void OnCharacteristicWriteComplete(object sender, CharacteristicWriteEventArgs characteristicUpdateEventArgs) { if (characteristicUpdateEventArgs.Characteristic.Id == this.Id) { WriteComplete?.Invoke(this, new CharacteristicWriteEventArgs(true, this)); } }
private void OnCharacteristicValueWritten(object sender, CharacteristicWriteEventArgs e) { if (e.Characteristic.ID == ID) { _gattCallback.CharacteristicValueWritten -= OnCharacteristicValueWritten; RaiseValueWritten(e); } }