private Paragraph PrepareSensorData(bool addLabel, int index, Pr1132SensorData sensorData) { var para = new Paragraph(); if (sensorData.Temperature.HasValue) { var text = addLabel ? string.Format("{0} {1}: {2} ", AppResources.Group_Sensor, index + 1, AppResources.Group_Temperature.ToLower()) : string.Format("{0} ", AppResources.Group_Temperature); para.Inlines.Add(text); para.Inlines.Add(CreateBold(sensorData.Temperature, "{0}°C")); if (sensorData.Humidity.HasValue) { para.Inlines.Add(string.Format(", {0} ", AppResources.Group_Humidity.ToLower())); para.Inlines.Add(CreateBold(sensorData.Humidity, "{0}%")); } } return(para); }
public async Task <Pr1132SensorData[]> LoadSensorData() { var url = string.Format("sens.xml?cache={0}", DateTime.Now.Ticks); var response = await SendRequest(url); if (response == null) { return(null); } var xml = Windows1251Encoding.Instance.GetString(response, 0, response.Length); //var xml = // "<response><snst0>-</snst0><snsh0>-</snsh0><snt0>1</snt0><snst1>23,8</snst1><snsh1>-</snsh1><snt1>0</snt1><snst2>-</snst2><snsh2>-</snsh2><snt2>1</snt2><snst3>-</snst3><snsh3>-</snsh3><snt3>1</snt3></response>"; var doc = XDocument.Parse(xml); var result = new Pr1132SensorData[4]; var root = doc.Element("response"); if (root != null) { for (int i = 0; i < 4; i++) { var separator = Thread.CurrentThread.CurrentCulture.NumberFormat.NumberDecimalSeparator; // state var elState = root.Element("snt" + i); if (elState != null) { var state = (SensorState)Convert.ToInt32(elState.Value); var data = new Pr1132SensorData { State = state }; // temperature var elT = root.Element("snst" + i); if (elT != null) { decimal t; if (decimal.TryParse(elT.Value.Replace(",", separator), out t)) { data.Temperature = t; } } // humidity var elH = root.Element("snsh" + i); if (elH != null) { int h; if (int.TryParse(elH.Value.Replace(",", separator), out h)) { data.Humidity = h; } } result[i] = data; } else { result[i] = null; } } } return(result); }