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);
        }
Example #3
0
        /// <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);
        }
Example #5
0
        /// <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));
 }
Example #7
0
        public Characteristic(Guid uuid, CharacterisiticPermissionType permissions, CharacteristicPropertyType properties)
        {
            GattPermission gattPermissions = GetNativePermissions(permissions);

            _nativeCharacteristic = new BluetoothGattCharacteristic(UUID.FromString(uuid.ToString()), (GattProperty)properties, gattPermissions);
        }