private void InstrInit(string locSetFilePath) { #region NA Init string na = _myUtility.ReadTextFile(locSetFilePath, "EQUIPMENT", "NA"); string nAaddr = _myUtility.ReadTextFile(locSetFilePath, "ADDRESS", "NA"); _eqmtStatus.Na01 = false; try { switch (na.ToUpper()) { case "E5071B": case "E5071C": case "E5071D": _eqNa = new LibEqmtDriver.NA.Ena(nAaddr); //EqNA.Preset("1"); _eqmtStatus.Na01 = true; break; case "ZNB": case "ZNBT": _eqNa = new LibEqmtDriver.NA.Znbt(nAaddr); //EqNA.Preset("2"); _eqmtStatus.Na01 = true; break; case "NONE": case "NA": _eqmtStatus.Na01 = false; break; } _eqNa.TriggerMode(LibEqmtDriver.NA.naEnum.ETriggerMode.Single); _eqNa.TriggerSource(LibEqmtDriver.NA.naEnum.ETriggerSource.BUS); _eqNa.LoadState(_stateFiles[0].StateFile); DelayMs(3000); _eqNa.Operation_Complete(); } catch { DisplayError(this.ToString(), "Init Equipment", "NA with alias name " + nAaddr + " init error."); } #endregion }
private void Init(ref StringBuilder sb) { try { #region Load TCF var doneEvents = new ManualResetEvent[6]; doneEvents[0] = new ManualResetEvent(false); doneEvents[1] = new ManualResetEvent(false); doneEvents[2] = new ManualResetEvent(false); doneEvents[3] = new ManualResetEvent(false); doneEvents[4] = new ManualResetEvent(false); doneEvents[5] = new ManualResetEvent(false); ThreadWithDelegate thLoadFbarTcf = new ThreadWithDelegate(doneEvents[0]); thLoadFbarTcf.WorkExternal = ReadFbarTcf; ThreadPool.QueueUserWorkItem(thLoadFbarTcf.ThreadPoolCallback, 0); ThreadWithDelegate thReadSegment = new ThreadWithDelegate(doneEvents[1]); thReadSegment.WorkExternal = ReadSegmentTable; ThreadPool.QueueUserWorkItem(thReadSegment.ThreadPoolCallback, 0); ThreadWithDelegate thLoadCalInfoTcf = new ThreadWithDelegate(doneEvents[2]); thLoadCalInfoTcf.WorkExternal = ReadFbarCalInfoTcf; ThreadPool.QueueUserWorkItem(thLoadCalInfoTcf.ThreadPoolCallback, 0); ThreadWithDelegate thFbarCalProcTcf = new ThreadWithDelegate(doneEvents[3]); thFbarCalProcTcf.WorkExternal = ReadFbarCalProcedure; ThreadPool.QueueUserWorkItem(thFbarCalProcTcf.ThreadPoolCallback, 0); ThreadWithDelegate thFbarCalKitStd = new ThreadWithDelegate(doneEvents[4]); thFbarCalKitStd.WorkExternal = ReadTcfCalKitStd; ThreadPool.QueueUserWorkItem(thFbarCalKitStd.ThreadPoolCallback, 0); ThreadWithDelegate thFbarTraceSetting = new ThreadWithDelegate(doneEvents[5]); thFbarTraceSetting.WorkExternal = ReadTcfTraceSetting; ThreadPool.QueueUserWorkItem(thFbarTraceSetting.ThreadPoolCallback, 0); WaitHandle.WaitAll(doneEvents); //ReadFbarTCF(); //ReadSegmentTable(); //ReadFbarCalProcedure(); //ReadTcfTraceSetting(); //ReadTcfCalKitStd(); //ReadTcfTraceSetting(); #endregion #region Retrieve Cal Sheet Info //string CalFilePath = Convert.ToString(DicCalInfo[DataFilePath.CalPathRF]); //H2 Cal Path string locSetFilePath = Convert.ToString(_dicCalInfo[DataFilePath.LocSettingPath]); SnpFile.FileOutputEnable = Convert.ToBoolean(_dicCalInfo[DataFilePath.EnableDataLog]); SnpFile.FileOutputPath = TcfHeader.ConstFBarResultDir; SnpFile.FileOutputCount = int.Parse(_dicCalInfo[DataFilePath.DataLogCount]); SnpFile.ADSFormat = Convert.ToBoolean(_dicCalInfo[DataFilePath.AdsDataLog]); ProductTag = _dicCalInfo[DataFilePath.GuPartNo].ToUpper(); if (ProductTag == string.Empty | !ATFCrossDomainWrapper.GetStringFromCache(PublishTags.PUBTAG_PACKAGE_TAG, "").ToUpper().Contains(ProductTag)) { InitSuccess = false; MessageBox.Show("TCF Main sheet GuPartNo " + ProductTag + " not match with test package load " + ATFCrossDomainWrapper.GetStringFromCache(PublishTags.PUBTAG_PACKAGE_TAG, "").ToUpper(), "Read Main Sheet Error", MessageBoxButtons.OK); } #endregion #region Instrument Init InstrInit(locSetFilePath); #endregion #region Verify ENA State InitSuccess = VerifyTraceMatch(); InitSuccess = VerifySegment(); #endregion #region Configure Network Analyzer string cnt_str = Interaction.InputBox ("Do you want to Configure Network Analyzer? If so, please enter \"Yes\".", "Configure Network Analyzer", "No", 100, 100); if (cnt_str.ToUpper() == "YES") { _eqNa.Reset(); _eqNa.SetupCalKit(_fbarCalStdTable); _eqNa.SetupSegmentTable(_segmentParam); for (int i = 0; i < _traceSetting.Length; i++) { _eqNa.SetupTrace(i + 1, _traceSetting[i]); } _eqNa.TriggerSource(naEnum.ETriggerSource.BUS); _eqNa.SaveState(_stateFiles[0].StateFile); InitSuccess = true; } cnt_str = Interaction.InputBox ("Do you want to perform FBAR subcal? If so, please enter \"Yes\".", "Network Analyzer Calibration", "No", 100, 100); if (cnt_str.ToUpper() == "YES") { _eqNa.Calibrate(_fbarCalProcedure, _stateFiles[0].StateFile); _eqNa.SaveState(_stateFiles[0].StateFile); InitSuccess = true; } DialogResult rslt = MessageBox.Show("Switch OFF ENA display?", "ENA Display Setting", MessageBoxButtons.YesNo, MessageBoxIcon.Information); if (rslt == DialogResult.Yes) { _eqNa.DisplayOn(true); } else { _eqNa.DisplayOn(false); } #endregion #region Init Sparam Test Case InitTestCase(); #endregion } catch (Exception ex) { InitSuccess = false; MessageBox.Show(ex.Message); } }