コード例 #1
0
        /// <summary>
        /// Default constructor
        /// </summary>
        public StatusBlinker()
        {
            Task.Factory.StartNew(() =>
            {
                while (true)
                {
                    // Wait between each check of the loop
                    Task.Delay(1000).Wait();

                    NetworkStatusEnum[] flags;

                    // Lock for flag access
                    lock (LockFlags)
                    {
                        // Enumerate the flags
                        flags = Enum.GetValues(typeof(NetworkStatusEnum)).Cast <NetworkStatusEnum>()
                                .Where(i => FlagsStatus.HasFlag(i))
                                .ToArray();
                    }

                    // Loop through the active flags
                    for (var i = 0; i < flags.Length; i++)
                    {
                        // Emit the status flag
                        EmitStatus?.Invoke(flags[i]);

                        // Wait between each emission except the last
                        if (i != flags.Length - 1)
                        {
                            Task.Delay(1000).Wait();
                        }
                    }
                }
            });
        }
コード例 #2
0
 private void _read()
 {
     _id          = System.Text.Encoding.GetEncoding("ASCII").GetString(m_io.ReadBytes(4));
     _size        = new U4beSynchsafe(m_io, this, m_root);
     _flagsStatus = new FlagsStatus(m_io, this, m_root);
     _flagsFormat = new FlagsFormat(m_io, this, m_root);
     _data        = m_io.ReadBytes(Size.Value);
 }
コード例 #3
0
 public MeasuredValues()
 {
     TemperatureStatus = FlagsStatus.None;
     Temperature       = float.NaN;
     HumidityStatus    = FlagsStatus.None;
     Humidity          = float.NaN;
     DewPointStatus    = FlagsStatus.None;
     DewPoint          = float.NaN;
 }