Пример #1
0
 public PMUDataStructure(DateTime dateTime, float[] value, DataQuality quality = DataQuality.Good, DataQualityReason qualityReason = DataQualityReason.None)
 {
     TimeStamp = dateTime;
     Value = value;
     Quality = quality;
     QualityReason = qualityReason;
 }
Пример #2
0
        public void Obs_21_Create()
        {
            Observation originalObj = new Observation(new Item_Measurement(null))
            {
                Name              = "Some name",
                Description       = "Some description",
                FeatureOfInterest = "somefeature",
                ObservedProperty  = "someproperty",
                PhenomenonTime    = ParseDateTimeInUtc("2018-02-23T10:00:00Z"),
                Procedure         = "someprocedure",
                ResultTime        = ParseDateTimeInUtc("2018-02-23T10:00:00Z"),
                ResultQuality     = DataQuality.CreateGood()
            };

            // Serializing and validating the XML document
            Observation parsedObj = SerialiseAndReadResultObj(originalObj);

            // Checking string values
            Assert.AreEqual("Some description", parsedObj.Description);
            Assert.AreEqual("Some name", parsedObj.Name);

            // Checking reference values
            Assert.AreEqual("somefeature", parsedObj.FeatureOfInterest.TrimEnd('/'));
            Assert.AreEqual("someproperty", parsedObj.ObservedProperty.TrimEnd('/'));
            Assert.AreEqual("someprocedure", parsedObj.Procedure.TrimEnd('/'));

            // Checking result time
            TestCommon.TestHelper.AssertDateTime(ParseDateTimeInUtc("2018-02-23T10:00:00Z"), parsedObj.ResultTime);

            // Comparing phenomenon time
            TestCommon.TestHelper.AssertDateTime(ParseDateTimeInUtc("2018-02-23T10:00:00Z"), parsedObj.PhenomenonTime);

            // Asserting good data quality
            Assert.IsTrue(parsedObj.ResultQuality.IsGood);
        }
        public static void FetchAndFlushData(AdapterParams prms)
        {
            // get measurement id from command line arguments
            string measId = prms.MeasId;
            // get the start and end times
            DateTime startTime = prms.FromTime;
            DateTime endTime   = prms.ToTime;

            // This Configuration data varaible Config_ can be handy here while dealing application secrets or configurations...
            ConfigurationManager Config_ = new ConfigurationManager();

            Config_.Initialize();

            // Create output data string
            string        outStr      = "";
            List <object> fetchResult = new List <object>();
            Random        rand        = new Random();

            for (DateTime dt = startTime; dt <= endTime; dt = dt.AddSeconds(1))
            {
                double ts = TimeUtils.ToMillisSinceUnixEpoch(dt);
                fetchResult.Add(ts);
                fetchResult.Add(rand.Next(-50, 50));
                if (prms.IncludeQuality)
                {
                    DataQuality qual = DataQuality.GOOD;
                    fetchResult.Add((int)qual);
                }
            }
            outStr = String.Join(",", fetchResult);

            // send the output data to console
            ConsoleUtils.FlushChunks(outStr);
        }
Пример #4
0
 public DataPoint(TX x, TY y, bool emphasis, DataQuality quality = DataQuality.GoodPoint)
 {
     this.emphasis = emphasis;
     this.quality  = quality;
     this.x        = x;
     this.y        = y;
 }
Пример #5
0
        public static byte[] toBytes(this DataQuality inp)
        {
            byte[] res = new byte[2];

            if ((inp & DataQuality.VALIDITY0) == DataQuality.VALIDITY0)
            {
                res[0] |= Scsm_MMS.DatQualValidity0;
            }
            if ((inp & DataQuality.VALIDITY1) == DataQuality.VALIDITY1)
            {
                res[0] |= Scsm_MMS.DatQualValidity1;
            }
            if ((inp & DataQuality.OVERFLOW) == DataQuality.OVERFLOW)
            {
                res[0] |= Scsm_MMS.DatQualOverflow;
            }
            if ((inp & DataQuality.OUT_OF_RANGE) == DataQuality.OUT_OF_RANGE)
            {
                res[0] |= Scsm_MMS.DatQualOutOfRange;
            }
            if ((inp & DataQuality.BAD_REFERENCE) == DataQuality.BAD_REFERENCE)
            {
                res[0] |= Scsm_MMS.DatQualBadReference;
            }
            if ((inp & DataQuality.OSCILLATORY) == DataQuality.OSCILLATORY)
            {
                res[0] |= Scsm_MMS.DatQualOscillatory;
            }
            if ((inp & DataQuality.FAILURE) == DataQuality.FAILURE)
            {
                res[0] |= Scsm_MMS.DatQualFailure;
            }
            if ((inp & DataQuality.OLD_DATA) == DataQuality.OLD_DATA)
            {
                res[0] |= Scsm_MMS.DatQualOldData;
            }
            if ((inp & DataQuality.INCONSISTENT) == DataQuality.INCONSISTENT)
            {
                res[1] |= Scsm_MMS.DatQualInconsistent;
            }
            if ((inp & DataQuality.INACCURATE) == DataQuality.INACCURATE)
            {
                res[1] |= Scsm_MMS.DatQualInaccurate;
            }
            if ((inp & DataQuality.SOURCE) == DataQuality.SOURCE)
            {
                res[1] |= Scsm_MMS.DatQualSource;
            }
            if ((inp & DataQuality.TEST) == DataQuality.TEST)
            {
                res[1] |= Scsm_MMS.DatQualTest;
            }
            if ((inp & DataQuality.OPERATOR_BLOCKED) == DataQuality.OPERATOR_BLOCKED)
            {
                res[1] |= Scsm_MMS.DatQualOperatorBlocked;
            }
            return(res);
        }
Пример #6
0
        public PowerValue(DateTime datetime, float value) : base(datetime)
        {
            Value = value;

            Confidence = 1;
            Accuracy   = (float)1.0;

            DataQuality = DataQuality.qualityGoodNonSpecific;
        }
Пример #7
0
        public void Dq_20_CustomBad()
        {
            // Test bad qualities with a custom reason

            DataQuality customBad1 = DataQuality.CreateBad("myreason");
            DataQuality customBad2 = DataQuality.CreateBad("myreason/subreason");

            Assert.IsFalse(customBad1.IsGood);
            Assert.IsFalse(customBad2.IsGood);
        }
Пример #8
0
        public void Dq_10_BasicGoodness()
        {
            // Test basic good and bad qualities

            DataQuality good = DataQuality.CreateGood();
            DataQuality bad  = DataQuality.CreateBad();

            Assert.IsTrue(good.IsGood);
            Assert.IsFalse(bad.IsGood);
        }
Пример #9
0
        public void Dq_25_CustomBad_Errors()
        {
            // Test bad qualities with a custom reason (with errors)

            var myAction = new Action(() =>
            {
                DataQuality.CreateBad("myreaso n");
            });

            TestCommon.TestHelper.AssertArgumentException(myAction, ERR_WHITESPACES_START);
        }
Пример #10
0
        public void Obs_22_Create_BadQuality()
        {
            Observation originalObj = new Observation(new Item_Measurement(null))
            {
                // Populating the object
                ResultQuality = DataQuality.CreateBad()
            };

            // Serializing and validating the XML document
            Observation parsedObj = SerialiseAndReadResultObj(originalObj);

            // Asserting bad data quality
            Assert.IsFalse(parsedObj.ResultQuality.IsGood);
        }
Пример #11
0
        public void Dq_30_Parse()
        {
            // Test creation for a raw string

            var value1 = "good";
            var value2 = "bad";
            var value3 = "bad/justreason";

            DataQuality fromStr1 = new DataQuality(value1);
            DataQuality fromStr2 = new DataQuality(value2);
            DataQuality fromStr3 = new DataQuality(value3);

            Assert.IsTrue(fromStr1.IsGood);
            Assert.IsFalse(fromStr2.IsGood);
            Assert.IsFalse(fromStr3.IsGood);
        }
        public static List <double> FetchHistData(string pnt, DateTime startTime, DateTime endTime, int secs, string type, bool includeQuality)
        {
            int           nret           = 0;
            List <double> historyResults = new List <double>();

            try
            {
                uint     s         = 0;
                double   dval      = 0;
                DateTime timestamp = DateTime.Now;
                string   status    = "";
                TimeSpan period    = TimeSpan.FromSeconds(secs);
                // history request initiation
                if (type == "snap")
                {
                    nret = History.DnaGetHistSnap(pnt, startTime, endTime, period, out s);
                }
                else if (type == "average")
                {
                    nret = History.DnaGetHistAvg(pnt, startTime, endTime, period, out s);
                }
                else if (type == "min")
                {
                    nret = History.DnaGetHistMin(pnt, startTime, endTime, period, out s);
                }
                else if (type == "max")
                {
                    nret = History.DnaGetHistMax(pnt, startTime, endTime, period, out s);
                }
                else
                {
                    nret = History.DnaGetHistRaw(pnt, startTime, endTime, out s);
                }

                while (nret == 0)
                {
                    nret = History.DnaGetNextHist(s, out dval, out timestamp, out status);
                    if (status != null)
                    {
                        historyResults.Add(TimeUtils.ToMillisSinceUnixEpoch(timestamp));
                        historyResults.Add(dval);
                        if (includeQuality)
                        {
                            DataQuality qual = DataQuality.GOOD;
                            if (status == "GOOD" || status == "OK")
                            {
                                qual = DataQuality.GOOD;
                            }
                            else if (status == "BAD")
                            {
                                qual = DataQuality.BAD;
                            }
                            else if (status == "SUSPECT")
                            {
                                qual = DataQuality.SUSPECT;
                            }
                            else if (status == "REPLACED")
                            {
                                qual = DataQuality.REPLACED;
                            }
                            historyResults.Add((int)qual);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                // Console.WriteLine("Error while fetching history results " + ex.Message);
                historyResults = new List <double>();
            }
            return(historyResults);
        }
Пример #13
0
 public void Upsert(DataQuality.ChannelDataQualitySummaryRow dataRow)
 {
     UpsertQuery(dataRow.ChannelID, dataRow.Date, dataRow.ExpectedPoints, dataRow.GoodPoints, dataRow.LatchedPoints, dataRow.UnreasonablePoints, dataRow.NoncongruentPoints, dataRow.DuplicatePoints);
 }
        private void _read()
        {
            _header = new Header(m_io, this, m_root);
            switch (header.MessageType)
            {
            case Header.EMessageType.EState: {
                __raw_content = m_io.ReadBytes(header.ContentLength);
                var io___raw_content = new KaitaiStream(__raw_content);
                _content = new State(io___raw_content, this, m_root);
                break;
            }

            case Header.EMessageType.ESequenceData: {
                __raw_content = m_io.ReadBytes(header.ContentLength);
                var io___raw_content = new KaitaiStream(__raw_content);
                _content = new SequenceData(io___raw_content, this, m_root);
                break;
            }

            case Header.EMessageType.EDebug: {
                __raw_content = m_io.ReadBytes(header.ContentLength);
                var io___raw_content = new KaitaiStream(__raw_content);
                _content = new Debug(io___raw_content, this, m_root);
                break;
            }

            case Header.EMessageType.ESync: {
                __raw_content = m_io.ReadBytes(header.ContentLength);
                var io___raw_content = new KaitaiStream(__raw_content);
                _content = new Sync(io___raw_content, this, m_root);
                break;
            }

            case Header.EMessageType.EAuxSequenceData: {
                __raw_content = m_io.ReadBytes(header.ContentLength);
                var io___raw_content = new KaitaiStream(__raw_content);
                _content = new AuxSequenceData(io___raw_content, this, m_root);
                break;
            }

            case Header.EMessageType.EPackage: {
                __raw_content = m_io.ReadBytes(header.ContentLength);
                var io___raw_content = new KaitaiStream(__raw_content);
                _content = new Package(io___raw_content, this, m_root);
                break;
            }

            case Header.EMessageType.EDataQuality: {
                __raw_content = m_io.ReadBytes(header.ContentLength);
                var io___raw_content = new KaitaiStream(__raw_content);
                _content = new DataQuality(io___raw_content, this, m_root);
                break;
            }

            case Header.EMessageType.ENode: {
                __raw_content = m_io.ReadBytes(header.ContentLength);
                var io___raw_content = new KaitaiStream(__raw_content);
                _content = new Node(io___raw_content, this, m_root);
                break;
            }

            case Header.EMessageType.EStatus: {
                __raw_content = m_io.ReadBytes(header.ContentLength);
                var io___raw_content = new KaitaiStream(__raw_content);
                _content = new Status(io___raw_content, this, m_root);
                break;
            }

            case Header.EMessageType.ETrigger: {
                __raw_content = m_io.ReadBytes(header.ContentLength);
                var io___raw_content = new KaitaiStream(__raw_content);
                _content = new Trigger(io___raw_content, this, m_root);
                break;
            }

            default: {
                _content = m_io.ReadBytes(header.ContentLength);
                break;
            }
            }
        }
Пример #15
0
 public FakeFileLoader(DataQuality dataQuality)
 {
     quality = dataQuality;
 }
Пример #16
0
 public static DataQuality fromBytes(this DataQuality res, byte[] value)
 {
     res = DataQuality.NONE;
     if (value == null || value.Length < 1)
     {
         return(res);
     }
     if ((value[0] & Scsm_MMS.DatQualValidity0) == Scsm_MMS.DatQualValidity0)
     {
         res |= DataQuality.VALIDITY0;
     }
     if ((value[0] & Scsm_MMS.DatQualValidity1) == Scsm_MMS.DatQualValidity1)
     {
         res |= DataQuality.VALIDITY1;
     }
     if ((value[0] & Scsm_MMS.DatQualOverflow) == Scsm_MMS.DatQualOverflow)
     {
         res |= DataQuality.OVERFLOW;
     }
     if ((value[0] & Scsm_MMS.DatQualOutOfRange) == Scsm_MMS.DatQualOutOfRange)
     {
         res |= DataQuality.OUT_OF_RANGE;
     }
     if ((value[0] & Scsm_MMS.DatQualBadReference) == Scsm_MMS.DatQualBadReference)
     {
         res |= DataQuality.BAD_REFERENCE;
     }
     if ((value[0] & Scsm_MMS.DatQualOscillatory) == Scsm_MMS.DatQualOscillatory)
     {
         res |= DataQuality.OSCILLATORY;
     }
     if ((value[0] & Scsm_MMS.DatQualFailure) == Scsm_MMS.DatQualFailure)
     {
         res |= DataQuality.FAILURE;
     }
     if ((value[0] & Scsm_MMS.DatQualOldData) == Scsm_MMS.DatQualOldData)
     {
         res |= DataQuality.OLD_DATA;
     }
     if (value.Length < 2)
     {
         return(res);
     }
     if ((value[1] & Scsm_MMS.DatQualInconsistent) == Scsm_MMS.DatQualInconsistent)
     {
         res |= DataQuality.INCONSISTENT;
     }
     if ((value[1] & Scsm_MMS.DatQualInaccurate) == Scsm_MMS.DatQualInaccurate)
     {
         res |= DataQuality.INACCURATE;
     }
     if ((value[1] & Scsm_MMS.DatQualSource) == Scsm_MMS.DatQualSource)
     {
         res |= DataQuality.SOURCE;
     }
     if ((value[1] & Scsm_MMS.DatQualTest) == Scsm_MMS.DatQualTest)
     {
         res |= DataQuality.TEST;
     }
     if ((value[1] & Scsm_MMS.DatQualOperatorBlocked) == Scsm_MMS.DatQualOperatorBlocked)
     {
         res |= DataQuality.OPERATOR_BLOCKED;
     }
     return(res);
 }