private CBAttributePermissions GetNativePermissions(CharacterisiticPermissionType permissions) { CBAttributePermissions nativePermissions = 0; foreach (CharacterisiticPermissionType value in Enum.GetValues(typeof(CharacterisiticPermissionType))) { if (permissions.HasFlag(value)) { switch (value) { case CharacterisiticPermissionType.Read: nativePermissions |= CBAttributePermissions.Readable; break; case CharacterisiticPermissionType.Write: nativePermissions |= CBAttributePermissions.Writeable; break; case CharacterisiticPermissionType.ReadEncrypted: nativePermissions |= CBAttributePermissions.ReadEncryptionRequired; break; case CharacterisiticPermissionType.WriteEncrypted: nativePermissions |= CBAttributePermissions.WriteEncryptionRequired; break; } } } return(nativePermissions); }
public Characteristic(Guid uuid, CharacterisiticPermissionType permissions, CharacteristicPropertyType properties) { CBAttributePermissions nativePermissions = 0; nativePermissions = GetNativePermissions(permissions); _nativeCharacteristic = new CBMutableCharacteristic(CBUUID.FromString(uuid.ToString()), (CBCharacteristicProperties)properties, null, nativePermissions); }
/// <summary> /// Convert abstracted permissions to android native permissions /// </summary> /// <param name="permissions"></param> /// <returns></returns> GattPermission GetNativePermissions(CharacterisiticPermissionType permissions) { GattPermission nativePermissions = 0; foreach (CharacterisiticPermissionType value in Enum.GetValues(typeof(CharacterisiticPermissionType))) { if (permissions.HasFlag(value)) { switch (value) { case CharacterisiticPermissionType.Read: nativePermissions |= GattPermission.Read; break; case CharacterisiticPermissionType.Write: nativePermissions |= GattPermission.Write; break; case CharacterisiticPermissionType.ReadEncrypted: nativePermissions |= GattPermission.ReadEncrypted; break; case CharacterisiticPermissionType.WriteEncrypted: nativePermissions |= GattPermission.WriteEncrypted; break; } } } return(nativePermissions); }
private void AddCharacteristic(ref IService service, Guid guid, CharacterisiticPermissionType permissions, CharacteristicPropertyType properties, byte[] value) { var charFactory = DependencyService.Get <ICharacteristicsFactory>(); var characteristic = charFactory.Create(guid, permissions, properties); characteristic.ValueUpdated += CharacteristicOnValueUpdated; characteristic.Value = value; service.Characteristics.Add(characteristic); }
/// <summary> /// Convert native permissions to abstracted permissions /// </summary> /// <param name="permission"></param> /// <returns></returns> CharacterisiticPermissionType GetPermissions(GattPermission permission) { CharacterisiticPermissionType t = 0; foreach (GattPermission value in Enum.GetValues(typeof(GattPermission))) { switch (value) { case GattPermission.Read: t |= CharacterisiticPermissionType.Read; break; case GattPermission.ReadEncrypted: t |= CharacterisiticPermissionType.ReadEncrypted; break; case GattPermission.ReadEncryptedMitm: t |= CharacterisiticPermissionType.ReadEncryptedMitm; break; case GattPermission.Write: t |= CharacterisiticPermissionType.Write; break; case GattPermission.WriteEncrypted: t |= CharacterisiticPermissionType.WriteEncrypted; break; case GattPermission.WriteEncryptedMitm: t |= CharacterisiticPermissionType.WriteEncryptedMitm; break; case GattPermission.WriteSigned: t |= CharacterisiticPermissionType.WriteSigned; break; case GattPermission.WriteSignedMitm: t |= CharacterisiticPermissionType.WriteSignedMitm; break; default: throw new ArgumentOutOfRangeException(); } } return(t); }
public ICharacteristic Create(Guid uuid, CharacterisiticPermissionType permissions, CharacteristicPropertyType propeties) { return(new Characteristic(uuid, permissions, propeties)); }
public Characteristic(Guid uuid, CharacterisiticPermissionType permissions, CharacteristicPropertyType properties) { GattPermission gattPermissions = GetNativePermissions(permissions); _nativeCharacteristic = new BluetoothGattCharacteristic(UUID.FromString(uuid.ToString()), (GattProperty)properties, gattPermissions); }