public static DataQualityFlags DeriveQualityFlags(this MeasurementStateFlags stateFlags) { DataQualityFlags qualityFlags = DataQualityFlags.Normal; if (stateFlags.HasFlag(MeasurementStateFlags.BadData)) { qualityFlags |= DataQualityFlags.ValueQualityIsBad; } if (stateFlags.HasFlag(MeasurementStateFlags.BadTime)) { qualityFlags |= DataQualityFlags.TimeQualityIsBad; } return(qualityFlags); }
protected MeasurementFlags GetMeasurementFlags(IMeasurement measurement) { MeasurementStateFlags tslFlags = measurement.StateFlags; // Time-series Library Measurement State Flags MeasurementFlags ecaflags = MeasurementFlags.Normal; // openECA Measurement Flags if (tslFlags.HasFlag(MeasurementStateFlags.BadData) || tslFlags.HasFlag(MeasurementStateFlags.SuspectData) || tslFlags.HasFlag(MeasurementStateFlags.ReceivedAsBad) || tslFlags.HasFlag(MeasurementStateFlags.DiscardedValue) || tslFlags.HasFlag(MeasurementStateFlags.MeasurementError)) { ecaflags |= MeasurementFlags.BadValue; } if (tslFlags.HasFlag(MeasurementStateFlags.BadTime) || tslFlags.HasFlag(MeasurementStateFlags.SuspectTime) || tslFlags.HasFlag(MeasurementStateFlags.LateTimeAlarm) || tslFlags.HasFlag(MeasurementStateFlags.FutureTimeAlarm)) { ecaflags |= MeasurementFlags.BadTime; } if (tslFlags.HasFlag(MeasurementStateFlags.CalcuatedValue) || tslFlags.HasFlag(MeasurementStateFlags.UpSampled) || tslFlags.HasFlag(MeasurementStateFlags.DownSampled)) { ecaflags |= MeasurementFlags.CalculatedValue; } if (tslFlags.HasFlag(MeasurementStateFlags.OverRangeError) || tslFlags.HasFlag(MeasurementStateFlags.UnderRangeError) || tslFlags.HasFlag(MeasurementStateFlags.AlarmHigh) || tslFlags.HasFlag(MeasurementStateFlags.AlarmLow) || tslFlags.HasFlag(MeasurementStateFlags.WarningHigh) || tslFlags.HasFlag(MeasurementStateFlags.WarningLow) || tslFlags.HasFlag(MeasurementStateFlags.FlatlineAlarm) || tslFlags.HasFlag(MeasurementStateFlags.ComparisonAlarm) || tslFlags.HasFlag(MeasurementStateFlags.ROCAlarm) || tslFlags.HasFlag(MeasurementStateFlags.CalculationError) || tslFlags.HasFlag(MeasurementStateFlags.CalculationWarning) || tslFlags.HasFlag(MeasurementStateFlags.SystemError) || tslFlags.HasFlag(MeasurementStateFlags.SystemWarning)) { ecaflags |= MeasurementFlags.UnreasonableValue; } return(ecaflags); }