public void ProcessSignal(SignalRequirementsSignalRequirement signalRequirement)
        {
            InstrumentDAO dao = new InstrumentDAO();
            List <Tuple <string, object, string> > attributes = new List <Tuple <string, object, string> >();

            foreach (SignalRequirementsSignalRequirementTsfClassAttribute attribute in signalRequirement.TsfClassAttribute)
            {
                TsfClassAttributeName name = attribute.Name;
                if (attribute.Value != null)
                {
                    if (attribute.Value.Item is DatumType)
                    {
                        DatumType datum = attribute.Value.Item as DatumType;
                        Object    value = Datum.GetNominalDatumValue(datum);
                        if (value != null)
                        {
                            attributes.Add(new Tuple <string, object, string>(name.Value, value, datum.unitQualifier));
                        }
                    }
                }
            }

            lvInstruments.BeginUpdate();
            try
            {
                foreach (ListViewItem lvi in lvInstruments.Items)
                {
                    lvi.BackColor = Color.White;
                }

                ICollection <object> ids = dao.FindCapableEquipment(attributes);
                foreach (ListViewItem lvi in lvInstruments.Items)
                {
                    var testStationInstrumentData = lvi.Tag as TestStationInstrumentData;
                    if (testStationInstrumentData != null)
                    {
                        var instrument = testStationInstrumentData.InstrumentDescription;
                        if (instrument != null)
                        {
                            foreach (var id in ids)
                            {
                                if (id.Equals(instrument.uuid))
                                {
                                    lvi.BackColor = Color.PaleGreen;
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception e2)
            {
                LogManager.Debug("Error In TSF Class: {0}", signalRequirement.TsfClass.tsfClassName);
                foreach (Tuple <string, object, string> tuple in attributes)
                {
                    LogManager.Debug("     {0} = {1} {2}", tuple.Item1, tuple.Item2, tuple.Item3);
                }
            }
            lvInstruments.EndUpdate();
        }
Exemple #2
0
        public Dictionary <SignalRequirementsSignalRequirement, ICollection <object> > Build(TestDescription testDescription)
        {
            var requiredSignals = new Dictionary <SignalRequirementsSignalRequirement, ICollection <object> >();

            foreach (SignalRequirementsSignalRequirement signalRequirement in testDescription.SignalRequirements)
            {
                var      attributes = new List <Tuple <string, object, string> >();
                var      dao        = new InstrumentDAO();
                TsfClass tsfClass   = signalRequirement.TsfClass;
                if (tsfClass.tsfClassName.Equals("SHORT"))
                {
                    continue;
                }
                if (string.IsNullOrWhiteSpace(tsfClass.tsfClassName))
                {
                    continue;
                }
                foreach (SignalRequirementsSignalRequirementTsfClassAttribute attribute in
                         signalRequirement.TsfClassAttribute)
                {
                    TsfClassAttributeName name = attribute.Name;
                    if (attribute.Value != null)
                    {
                        if (attribute.Value.Item is DatumType)
                        {
                            DatumType datum = attribute.Value.Item as DatumType;
                            Object    value = Datum.GetNominalDatumValue(datum);
                            if (value != null)
                            {
                                attributes.Add(new Tuple <string, object, string>(name.Value, value, datum.unitQualifier));
                            }
                        }
                    }
                }

                try
                {
                    ICollection <object> capableEquipment = dao.FindCapableEquipment(attributes);
                    requiredSignals.Add(signalRequirement, capableEquipment);
                }
                catch (Exception e2)
                {
                    LogManager.SourceError(ATMLAllocator.SOURCE, "Error In TSF Class: {0} - ERROR: {1}", tsfClass.tsfClassName, e2.Message);
                    LogManager.Debug(e2);
                    foreach (var tuple in attributes)
                    {
                        LogManager.SourceError(ATMLAllocator.SOURCE, "     {0} = {1}", tuple.Item1, tuple.Item2);
                    }
                }
            }

            return(requiredSignals);
        }
Exemple #3
0
        public void ProcessSignal(SignalRequirementsSignalRequirement signalRequirement)
        {
            var dao        = new InstrumentDAO();
            var attributes = (from attribute
                              in signalRequirement.TsfClassAttribute
                              let name = attribute.Name
                                         where attribute.Value != null
                                         where attribute.Value.Item is DatumType
                                         let value = Datum.GetNominalDatumValue((DatumType)attribute.Value.Item)
                                                     let qualifier = ((DatumType)attribute.Value.Item).unitQualifier
                                                                     where value != null
                                                                     select new Tuple <string, object, string>(name.Value, value, qualifier)).ToList();

            lvTestStations.BeginUpdate();
            try
            {
                foreach (ListViewItem lvi in lvTestStations.Items)
                {
                    lvi.BackColor = Color.White;
                }

                ICollection <object> ids = dao.FindCapableEquipment(attributes);
                foreach (ListViewItem lvi in lvTestStations.Items)
                {
                    var instrument = lvi.Tag as TestStationDescription11;
                    if (instrument != null)
                    {
                        foreach (var id in ids)
                        {
                            if (id.Equals(instrument.uuid))
                            {
                                lvi.BackColor = Color.PaleGreen;
                            }
                        }
                    }
                }
            }
            catch (Exception e2)
            {
                LogManager.Debug("Error In TSF Class: {0}", signalRequirement.TsfClass.tsfClassName);
                foreach (Tuple <string, object, string> tuple in attributes)
                {
                    LogManager.Debug("     {0} = {1} {2}", tuple.Item1, tuple.Item2, tuple.Item3);
                }
            }
            lvTestStations.EndUpdate();
        }
Exemple #4
0
        public string Analyze(string testDescriptionXml)
        {
            string xml = "";

            try
            {
                var dao              = new InstrumentDAO();
                var testDescription  = TestDescription.Deserialize(testDescriptionXml);
                var signalTypeLookup = new Dictionary <string, SignalAnalysisType>();
                var signalList       = new List <string>();

                Dictionary <SignalRequirementsSignalRequirement, ICollection <object> > equips = Build(testDescription);

                foreach (SignalRequirementsSignalRequirement signalRequirement in testDescription.SignalRequirements)
                {
                    string     name = signalRequirement.TsfClass.tsfClassName;
                    string     id   = signalRequirement.TsfClass.tsfLibraryID;
                    SignalRole role = signalRequirement.role;
                    if ("SHORT".Equals(name))
                    {
                        continue;
                    }
                    if ("".Equals(name))
                    {
                        continue;
                    }

                    SignalAnalysisType sat = null;
                    if (!signalTypeLookup.ContainsKey(name))
                    {
                        sat      = new SignalAnalysisType();
                        sat.Type = name;
                        signalTypeLookup.Add(name, sat);
                    }

                    sat = signalTypeLookup[name];
                    SignalInstance si = new SignalInstance();
                    si.Tsf = id;
                    foreach (
                        SignalRequirementsSignalRequirementTsfClassAttribute tsfClassAttribute in
                        signalRequirement.TsfClassAttribute)
                    {
                        SignalInstanceAttribute sia = new SignalInstanceAttribute();
                        sia.Name  = tsfClassAttribute.Name.Value;
                        sia.Value = tsfClassAttribute.Value.ToString();
                        if (tsfClassAttribute.Value.Item is DatumType)
                        {
                            object v = Datum.GetNominalDatumValue((DatumType)tsfClassAttribute.Value.Item);
                            sia.NominalValue = v == null?null:v.ToString();
                            sia.Qualifier    = ((DatumType)tsfClassAttribute.Value.Item).unitQualifier;
                        }
                        si.AddAttribute(sia);
                    }
                    if (!signalList.Contains(name + id + si))
                    {
                        signalList.Add(name + id + si);
                        sat.AddSignal(si);
                        Console.WriteLine(name + si);
                    }
                }

                SignalAnalysis signalAnalysis = new SignalAnalysis();
                signalAnalysis.Uut = new Uut();
                if (testDescription.UUT != null && testDescription.UUT.Description != null &&
                    testDescription.UUT.Description.Item != null)
                {
                    var id     = testDescription.UUT.Description.Item as ItemDescription;
                    var docRef = testDescription.UUT.Description.Item as DocumentReference;
                    if (docRef != null)
                    {
                        signalAnalysis.Uut.Name = docRef.DocumentName;
                        signalAnalysis.Uut.Uuid = docRef.uuid;
                    }
                    else if (id != null)
                    {
                        signalAnalysis.Uut.Name    = id.name;
                        signalAnalysis.Uut.Uuid    = id.Identification.ModelName;
                        signalAnalysis.Uut.Version = id.version;
                    }
                }

                signalAnalysis.Tps         = ATMLContext.CurrentProjectName;
                signalAnalysis.RunDateTime = String.Format("{0:yyyy-dd-MM HH:mm:ss}", DateTime.Now);

                foreach (var testStation in ATMLAllocator.Instance.SelectedTestStations)
                {
                    var tsa = new TestStationSignalAnalysis();
                    tsa.Name = testStation.name;
                    tsa.Uuid = testStation.uuid;
                    signalAnalysis.AddTestStation(tsa);

                    foreach (SignalAnalysisType signalType in signalTypeLookup.Values)
                    {
                        SignalAnalysisType copy = signalType.Copy();
                        tsa.AddSignal(copy);
                        foreach (var signalInstance in copy.SignalInstances)
                        {
                            foreach (var signalInstanceAttribute in signalInstance.Attributes)
                            {
                                try
                                {
                                    if (signalInstanceAttribute.NominalValue != null)
                                    {
                                        bool isValid = dao.TestAttribute(testStation.uuid,
                                                                         signalInstanceAttribute.Name,
                                                                         signalInstanceAttribute.NominalValue,
                                                                         signalInstanceAttribute.Qualifier);

                                        signalInstanceAttribute.IsValid = isValid;
                                    }
                                }
                                catch (Exception err)
                                {
                                    LogManager.SourceError(ATMLAllocator.SOURCE, err);
                                }
                            }
                        }
                    }
                }

                xml = XmlUtils.SerializeObject(signalAnalysis);
            }
            catch (Exception e)
            {
                LogManager.SourceError(ATMLAllocator.SOURCE, e);
            }
            return(xml);
        }