Beispiel #1
0
        public async Task <IHttpActionResult> Post([FromBody] KolibriValue kolibriValue)
        {
            if (kolibriValue == null)
            {
                return(BadRequest());
            }

            var kolibriRequest = new WriteRpcRequest()
            {
                Params = new WriteRpcRequestParam()
                {
                    Nodes = new Collection <WriteRpcRequestNodeParam>(new List <WriteRpcRequestNodeParam>()
                    {
                        new WriteRpcRequestNodeParam()
                        {
                            Value = Convert.ToInt32(kolibriValue.Value),
                            Path  = this.GetPath(kolibriValue.HexAddress)
                        }
                    })
                }
            };

            try
            {
                await this.kolibriClient.RequestAsync <WriteRpcResponse>(kolibriRequest);

                return(Ok());
            }
            catch (KolibriApiException ex)
            {
                return(BadRequest(ex.KolibriErrorMessage));
            }
        }
Beispiel #2
0
        /// <summary>
        /// Assigns the values.
        /// </summary>
        /// <param name="setting">The setting.</param>
        /// <param name="kolibriValue">The kolibri values.</param>
        /// <returns></returns>
        private GatewayDatapoint AssignValues(GatewaySetting setting, KolibriValue kolibriValue)
        {
            var datapoint = new GatewayDatapoint()
            {
                Id          = setting.Id,
                Description = setting.Description,
                HexAdress   = setting.HexAdress,
                IsReadOnly  = setting.IsReadOnly,
                Value       = this.valueConverter.ConvertFromDevice(setting, kolibriValue.Value)
            };

            return(datapoint);
        }
Beispiel #3
0
        /// <summary>
        /// Saves the value to kolibri.
        /// </summary>
        /// <param name="setting">The setting.</param>
        /// <param name="value">The value.</param>
        /// <returns></returns>
        private Task <IRestResponse> SaveValueToKolibri(GatewaySetting setting, string value)
        {
            var restClient     = new RestClient(ConfigurationManager.AppSettings["ServiceEndpoints:Kolibri"]);
            var kolibriRequest = new RestRequest("kolibri", Method.POST);

            var body = new KolibriValue()
            {
                Value      = this.valueConverter.ConvertToDevice(setting, value),
                HexAddress = setting.HexAdress
            };

            kolibriRequest.RequestFormat = DataFormat.Json;
            kolibriRequest.AddBody(body);

            return(restClient.ExecuteTaskAsync(kolibriRequest));
        }