Пример #1
0
        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);
        }
Пример #2
0
        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);
        }