Пример #1
0
        //private void timerTick(object sender, object args)
        //{
        //    textBlockTemperatureHumidity.Text = "Start reading the temperature";
        //    String displayStr = "";
        //    int[] data = new int[4];
        //    PrecisionCronometer c = new PrecisionCronometer();
        //    c.start();
        //    long t = c.ticks;

        //    if (sensor_.read())
        //    {
        //        sensor_.getData(data);
        //        displayStr = string.Format("Temperature:{0}.{1}, humidity:{2}.{3} ({4}us)",
        //                    data[0], data[1], data[2], data[3], c.ticksToUs(c.ticks - t));
        //    }
        //    else
        //    {
        //        sensor_.getData(data);
        //        displayStr = sensor_.getErrorString() + string.Format(", d[0]={0},d[1]={1},d[2]={2},d[3]={3} ({4}us)",
        //                    data[0], data[1], data[2], data[3], c.ticksToUs(c.ticks - t));
        //    }
        //    textBlockTemperatureHumidity.Text = displayStr;
        //}


        private void getTemperatureHumidity(object sender, object args)
        {
            int[] data            = new int[4];
            PrecisionCronometer c = new PrecisionCronometer();

            c.start();
            long     t    = c.ticks;
            DateTime tnow = DateTime.Now;

            if (sensor_ == null)
            {
                textBoxHumidityTemperature.Foreground = new SolidColorBrush(Windows.UI.Colors.Blue);
                textBoxHumidityTemperature.Text       = string.Format("Temperature:{0}.{1}, humidity:{2}.{3} ({4}us)",
                                                                      data[0], data[1], data[2], data[3], c.ticksToUs(c.ticks - t));

                return;
            }

            ellipseErrorLed.Fill = new SolidColorBrush(Windows.UI.Colors.LightSalmon);
            ellipseTHLed.Fill    = new SolidColorBrush(Windows.UI.Colors.LightGreen);

            if (sensor_.read())
            {
                ellipseTHLed.Fill = new SolidColorBrush(Windows.UI.Colors.Green);
                sensor_.getData(data);
                textBoxHumidityTemperature.Foreground = new SolidColorBrush(Windows.UI.Colors.Blue);

                textBoxHumidityTemperature.Text = string.Format("Hum:{0}.{1}, temp:{2}.{3} ({4}us) {5}",
                                                                data[0], data[1], data[2], data[3], c.ticksToUs(c.ticks - t), tnow);
            }
            else
            {
                ellipseErrorLed.Fill = new SolidColorBrush(Windows.UI.Colors.Red);
                sensor_.getData(data);
                textBoxError.Foreground = new SolidColorBrush(Windows.UI.Colors.Red);
                textBoxError.Text       = sensor_.getErrorString() + string.Format(", d[0]={0},d[1]={1},d[2]={2},d[3]={3} ({4}us)",
                                                                                   data[0], data[1], data[2], data[3], c.ticksToUs(c.ticks - t));
            }
        }
 public DHT11Sensor(GpioPin pin, PrecisionCronometer c)
 {
     pin_        = pin;
     cronometer_ = c;
     cronometer_.start();
 }