private Task <PayloadVoid> OnValueSet(DeviceIdentity devid, KeyValueData data) { _logger.Info($"Settings changed[sys:{devid.SystemId}, com:{devid.ComponentId}]: {data.Key} = {data.Value}"); Status.Log(MavSeverity.MavSeverityInfo, $"Write {data.Key}={data.Value}"); return(Task.Factory.StartNew(() => { _settings.OnRemoteUpdate(data); return new PayloadVoid(); })); }
private Task <PayloadVoid> OnGetAll(DeviceIdentity devid, KeyValueData data) { foreach (var item in _valuesDig) { item.Value.LastSyncTime = DateTime.MinValue; } foreach (var item in _valuesStr) { item.Value.LastSyncTime = DateTime.MinValue; } foreach (var item in _settingsDict) { item.Value.LastSyncTime = DateTime.MinValue; } return(Task.FromResult(PayloadVoid.Default)); }
public void OnRemoteUpdate(KeyValueData value) { _values.AddOrUpdate(value.Key, _ => new ValueWithFlag <string> { Value = value.Value }, (k, v) => { v.Value = value.Value; return(v); }); try { _remoteChanges.OnNext(value); } catch (Exception e) { _logger.Error(e, $"Error to publish remote changes settings event:{e.Message}"); } }
private Task SendUpdate(KeyValueData value, CancellationToken cancel) { return(Send <KeyValueData, PayloadVoid>(WellKnownDiag.DiagSettingsSetMethodName, value, DefaultTimeout, DefaultAttemptCount, cancel, null)); }