/// <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); } }
/// <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}]"); }