/// <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(); } } } }); }
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); }
public MeasuredValues() { TemperatureStatus = FlagsStatus.None; Temperature = float.NaN; HumidityStatus = FlagsStatus.None; Humidity = float.NaN; DewPointStatus = FlagsStatus.None; DewPoint = float.NaN; }