Example #1
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="gatt"></param>
        /// <param name="data"></param>
        internal void OnParameterUpdated(Guid gatt, int[] data)
        {
            IDeviceParameter parameter = GetParameter(gatt);

            if (parameter == null)
            {
                throw new NullReferenceException("Unknown device parameter");
            }

            try
            {
                bool changed = ((BaseDeviceParameter)parameter).UpdateCachedValue(data);

                if (changed)
                {
                    ParameterChanged(this, new ParameterChangedEventArgs()
                    {
                        Parameter = parameter
                    });
                }
            }
            catch (DeviceIsLockedException e)
            {
                SetLockStatus(LockState.Locked);
            }
        }
Example #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="parameterId"></param>
        /// <returns></returns>
        public async Task UpdateParameter(Parameter parameterId)
        {
            IDeviceParameter parameter = GetParameter(parameterId);

            if (parameter == null)
            {
                throw new NullReferenceException($"Unknown device parameter `{parameterId}`");
            }

            if (!parameter.IsAvailable)
            {
                throw new ParameterUnavailableException(parameterId);
            }

            await this.framework.ReadDeviceParameter(parameter.GattId, checkSuccess : true);

            ConsoleLogger.WriteLine($"Read finish -> [{parameterId}]");
        }