protected override bool StartTest() { lock (tempAtten) { logoStr = ""; if (AnalysisInputParameters(inputParameters) == false) { OutPutandFlushLog(); return(false); } GlobalBER_EXPtoRealBer(); if (testBerStruct.IsOpticalSourceUnitOMA) { testBerStruct.CsenAlignRxPwr = Algorithm.CalculateFromOMAtoDBM(testBerStruct.CsenAlignRxPwr, Convert.ToDouble(OSERValueArray[GlobalParameters.CurrentChannel - 1])); testBerStruct.CsenStartingRxPwr = Algorithm.CalculateFromOMAtoDBM(testBerStruct.CsenStartingRxPwr, Convert.ToDouble(OSERValueArray[GlobalParameters.CurrentChannel - 1])); testBerStruct.FirstPointRxPowerUL = Algorithm.CalculateFromOMAtoDBM(testBerStruct.FirstPointRxPowerUL, Convert.ToDouble(OSERValueArray[GlobalParameters.CurrentChannel - 1])); testBerStruct.FirstPointRxPowerLL = Algorithm.CalculateFromOMAtoDBM(testBerStruct.FirstPointRxPowerLL, Convert.ToDouble(OSERValueArray[GlobalParameters.CurrentChannel - 1])); } if (tempAtten != null && tempED != null && tempps != null) { // open apc { CloseandOpenAPC(Convert.ToByte(APCMODE.IBAISandIMODON)); } // open apc Log.SaveLogToTxt("Step3...SetAttenValue"); SetAttenValue(tempAtten, testBerStruct.CsenAlignRxPwr); Log.SaveLogToTxt("Step4...AutoAlaign"); bool isAutoAlaign = tempED.AutoAlaign(true); if (isAutoAlaign) { Log.SaveLogToTxt(isAutoAlaign.ToString()); } else { Log.SaveLogToTxt(isAutoAlaign.ToString()); sensitivityPoint = -5000; OutPutandFlushLog(); return(isAutoAlaign); } if (isAutoAlaign) { if (testBerStruct.IsBerQuickTest == true) { QuickTest(tempAtten, tempED); OutPutandFlushLog(); return(true); } else { if (!SerchTargetBer(tempAtten, tempED)) { OutPutandFlushLog(); return(true); } GettingCurvingPointsandFitting(tempAtten, tempED); if (double.IsNaN(sensitivityPoint) || double.IsInfinity(sensitivityPoint)) { sensitivityPoint = -1000; OutPutandFlushLog(); } sensitivityPoint = Math.Round(sensitivityPoint, 2); Log.SaveLogToTxt("sensitivityPoint= " + sensitivityPoint.ToString()); OutPutandFlushLog(); return(true); } } else { AnalysisOutputProcData(procData); AnalysisOutputParameters(outputParameters); return(false); } } else { Log.SaveLogToTxt("Equipments are not enough!"); AnalysisOutputProcData(procData); AnalysisOutputParameters(outputParameters); return(false); } } }