示例#1
0
        protected override async Task <double> GetValue()
        {
            var url = baseUrl + getRoute;

            Logger.Trace($"Try getting value via {url}");

            var request  = new Utility.Http.HttpGetRequest(url, Id);
            var response = await request.Request(new CancellationToken());

            var jobj           = JObject.Parse(response);
            var regoutResponse = jobj.ToObject <PowerHubResponse>();

            if (regoutResponse.Success())
            {
                if (!string.IsNullOrWhiteSpace(regoutResponse.Label))
                {
                    ReceivedName(regoutResponse.Label);
                }
                return(regoutResponse.Status);
            }
            else
            {
                return(double.NaN);
            }
        }
示例#2
0
        protected override async Task <double> GetValue()
        {
            var url = baseUrl + getRoute;

            Logger.Trace($"Try getting value via {url}");

            var request  = new Utility.Http.HttpGetRequest(url, Id);
            var response = await request.Request(new CancellationToken());

            var jobj           = JObject.Parse(response);
            var regoutResponse = jobj.ToObject <SupplyResponse>();

            if (regoutResponse.Success())
            {
                return(regoutResponse.Supply);
            }
            else
            {
                return(double.NaN);
            }
        }
示例#3
0
        public async Task SetValue()
        {
            try {
                var url = baseUrl + setRoute + $"&{setValueAttribute}={{1}}";

                Logger.Trace($"Try setting value {TargetValue} via {url}");

                var request  = new Utility.Http.HttpGetRequest(url, Id, TargetValue);
                var response = await request.Request(new CancellationToken());

                var jobj           = JObject.Parse(response);
                var regoutResponse = jobj.ToObject <EagleResponse>();
                if (!regoutResponse.Success())
                {
                    Logger.Warning($"Unable to set value {TargetValue} via {url}");
                }
                else
                {
                    await Task.Delay(TimeSpan.FromSeconds(2));
                }
            } catch (Exception ex) {
                Logger.Error(ex);
            }
        }
示例#4
0
        private async Task SetName(string targetName)
        {
            nameChangeInProgress = true;
            try {
                var url = baseUrl + setRoute + "&label={1}";
                name = targetName;
                RaisePropertyChanged(nameof(Name));

                Logger.Trace($"Try setting name {targetName} via {url}");
                var request  = new Utility.Http.HttpGetRequest(url, Id, targetName);
                var response = await request.Request(new CancellationToken());

                var jobj           = JObject.Parse(response);
                var regoutResponse = jobj.ToObject <EagleResponse>();
                if (!regoutResponse.Success())
                {
                    Logger.Warning($"Setting Eagle Switch {Id} Label was not successful");
                }
            } catch (Exception ex) {
                Logger.Error(ex);
            } finally {
                nameChangeInProgress = false;
            }
        }