コード例 #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);
        }
コード例 #2
0
 private void Device_OnTemperatureRead(object sender, ReadPacket <float> e)
 {
     if (TemperatureStack.Count > 100)
     {
         TemperatureStack.Clear();
     }
     TemperatureStack.Push(e.Value);
 }