Ejemplo n.º 1
0
        IEnumerable <TemperatureFrame> GetFromQueues()
        {
            TemperatureFrame frame = new TemperatureFrame();

            frame.Time = DateTime.Now;

            if (!Device.Alive())
            {
                yield break;
            }

            float value = 0.0f;

            while (!TemperatureStack.TryPop(out value))
            {
                Thread.Yield();
            }
            frame.Temperature = value;

            while (!HumidityStack.TryPop(out value))
            {
                Thread.Yield();
            }
            frame.Humidity = value;

            while (!PressureStack.TryPop(out value))
            {
                Thread.Yield();
            }
            frame.Pressure = value;

            yield return(frame);
        }
Ejemplo n.º 2
0
 private void Device_OnPressureRead(object sender, ReadPacket <float> e)
 {
     if (PressureStack.Count > 100)
     {
         PressureStack.Clear();
     }
     PressureStack.Push(e.Value);
 }