コード例 #1
0
ファイル: SerializationExtensions.cs プロジェクト: xj0229/gsf
        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);
        }
コード例 #2
0
        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);
        }