public SignalAnalysisType Copy() { var copy = new SignalAnalysisType(); copy.Type = Type; foreach (SignalInstance signalInstance in SignalInstances) { copy.AddSignal(signalInstance.Copy()); } return(copy); }
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; }
public void AddSignal( SignalAnalysisType signal ) { Signals.Add( signal ); }
public void AddSignal(SignalAnalysisType signal) { Signals.Add(signal); }
public SignalAnalysisType Copy() { var copy = new SignalAnalysisType(); copy.Type = Type; foreach (SignalInstance signalInstance in SignalInstances) { copy.AddSignal( signalInstance.Copy() ); } return copy; }