protected bool AdjustWavelengthMethod_1() { Int32 StartDac = MyStruct.WavelengthDacStart; dut.WriteWavelengthDac(MyStruct.WavelengthDacStart); double CurrentWavelength = pWavemeter.GetCenterWavelength(); TargetWavelengthDac = MyStruct.WavelengthDacStart; if (CurrentWavelength > MyStruct.WavelengthTargetMin && CurrentWavelength < MyStruct.WavelengthTargetMax) { Log.SaveLogToTxt("CurrentWavelength is " + CurrentWavelength); return(true); } else { int DataCount = (MyStruct.WavelengthDacMax - MyStruct.WavelengthDacMin) / MyStruct.WavelengthDacStep; ScanDacArray = new double[DataCount]; ScanWavelengthArray = new double[DataCount]; for (int i = 0; i < DataCount; i++) { ScanDacArray[i] = MyStruct.WavelengthDacMin + MyStruct.WavelengthDacStep * i; dut.WriteWavelengthDac(ScanDacArray[i]); Thread.Sleep(200); ScanWavelengthArray[i] = pWavemeter.GetCenterWavelength(); Log.SaveLogToTxt("ScanDacArray[" + i.ToString() + "]=" + ScanDacArray[i].ToString() + " " + "ScanWavelengthArray[" + i.ToString() + "]=" + ScanWavelengthArray[i].ToString()); } BestDac = Convert.ToInt32(CalculateBestPoint(MyStruct.WavelengthTypcalValue, ScanDacArray, ScanWavelengthArray)); Log.SaveLogToTxt("CalculateBestPoint=" + BestDac); if (BestDac >= MyStruct.WavelengthDacMax) { BestDac = MyStruct.WavelengthDacMax; } else if (BestDac <= MyStruct.WavelengthDacMin) { BestDac = MyStruct.WavelengthDacMin; } Log.SaveLogToTxt("BestDac=" + BestDac); dut.WriteWavelengthDac(BestDac); return(true); } }
public override bool Test() { if (AnalysisInputParameters(inputParameters) == false) { return(false); } if (!CloseandOpenAPC(Convert.ToByte(APCMODE.IBAISandIMODON))) { return(false); //开启APC } if (!pSpectrograph.StartSweep()) { fitDataTable("Wavelength(nm)", Wavelength.ToString()); if (!flagNormalTest)//全测试 { fitDataTable("SpanWide(nm)", SpanWide.ToString()); if (pSpectrograph.analysisMode == 2)//单模 { fitDataTable("SMSR(db)", SMSR.ToString()); fitDataTable("OSNR(db)", OSNR.ToString()); } } return(false); } Wavelength = pSpectrograph.GetCenterWavelength(); fitDataTable("Wavelength(nm)", Wavelength.ToString()); if (!flagNormalTest)//全测试 { SpanWide = pSpectrograph.GetSpectralWidth(); fitDataTable("SpanWide(nm)", SpanWide.ToString()); if (pSpectrograph.analysisMode == 2)//单模 { SMSR = pSpectrograph.GetSMSR(); fitDataTable("SMSR(db)", SMSR.ToString()); OSNR = pSpectrograph.GetOSNR(); fitDataTable("OSNR(db)", OSNR.ToString()); } pSpectrograph.pglobalParameters = GlobalParameters; pSpectrograph.SaveWaveformScreen(); } return(true); }