Esempio n. 1
0
 protected bool LoadMaskSpec()
 {
     lock (tempScope)
     {
         try
         {
             Algorithm.GetSpec(specParameters, "MASKMARGIN(%)", 0, out MaskSpecMax, out MaskSpecMin);
             return(true);
         }
         catch (InnoExCeption ex)//from driver
         {
             //Log.SaveLogToTxt(ex.ID + ": " + ex.Message + "\r\n" + ex.StackTrace);
             exceptionList.Add(ex);
             return(false);
         }
         catch (Exception error)//from itself
         {
             //one way: deal this exception itself
             InnoExCeption ex = new InnoExCeption(ExceptionDictionary.Code._0x02000, error.StackTrace);
             //Log.SaveLogToTxt(ex.ID + ": " + ex.Message + "\r\n" + ex.StackTrace);
             exceptionList.Add(ex);
             return(false);
             //the other way is: should throw exception, rather than the above three code. see below:
             //throw new InnoExCeption(ExceptionDictionary.Code._0x02000, error.StackTrace);
         }
     }
 }
Esempio n. 2
0
        private bool LoadPNSpec()
        {
            try
            {
                Algorithm.GetSpec(specParameters, "MaskMargin(%)", 0, out MySpec.SpecMax, out MySpec.TypcalValue, out MySpec.SpecMin);

                MySpec.AdjustSpecMax = MySpec.SpecMax;
                MySpec.AdjustSpecMin = MySpec.SpecMin;
                //Algorithm.GetSpec(specParameters, "JitterRMS(ps)", 0, out MySpec.JitterMax, out MySpec.JitterTypcalValue, out MySpec.JitterMin);

                return(true);
            }
            catch (InnoExCeption ex)//from driver
            {
                //Log.SaveLogToTxt(ex.ID + ": " + ex.Message + "\r\n" + ex.StackTrace);
                exceptionList.Add(ex);
                return(false);
            }
            catch (Exception error)//from itself
            {
                //one way: deal this exception itself
                InnoExCeption ex = new InnoExCeption(ExceptionDictionary.Code._0x02000, error.StackTrace);
                //Log.SaveLogToTxt(ex.ID + ": " + ex.Message + "\r\n" + ex.StackTrace);
                exceptionList.Add(ex);
                return(false);
                //the other way is: should throw exception, rather than the above three code. see below:
                //throw new InnoExCeption(ExceptionDictionary.Code._0x02000, error.StackTrace);
            }
        }
Esempio n. 3
0
        private bool LoadPNSpec()
        {
            try
            {
                double max, min, target;
                Algorithm.GetSpec(specParameters, "Crossing(%)", 0, out max, out target, out min);

                mySpec.SpecMax     = max;
                mySpec.SpecMin     = min;
                mySpec.TypcalValue = target;

                mySpec.AdjustSpecMax = mySpec.SpecMax * myStruct.SpecMax_PR / 100;
                mySpec.AdjustSpecMin = mySpec.SpecMin * myStruct.SpecMin_PR / 100;

                return(true);
            }
            catch (InnoExCeption ex)//from driver
            {
                //Log.SaveLogToTxt(ex.ID + ": " + ex.Message + "\r\n" + ex.StackTrace);
                exceptionList.Add(ex);
                return(false);
            }
            catch (Exception error)//from itself
            {
                //one way: deal this exception itself
                InnoExCeption ex = new InnoExCeption(ExceptionDictionary.Code._0x02000, error.StackTrace);
                //Log.SaveLogToTxt(ex.ID + ": " + ex.Message + "\r\n" + ex.StackTrace);
                exceptionList.Add(ex);
                return(false);
                //the other way is: should throw exception, rather than the above three code. see below:
                //throw new InnoExCeption(ExceptionDictionary.Code._0x02000, error.StackTrace);
            }
        }
Esempio n. 4
0
        protected bool RxEyeVecEWTest()
        {
            try
            {
                scope.pglobalParameters = GlobalParameters;
                double eyeHeight_15_max, eyeHeight_15_min, eyeWidth_15_max, eyeWidth_15_min, vec_max, vec_min;
                Algorithm.GetSpec(specParameters, "EyeHeight_15(mV)", 0, out eyeHeight_15_max, out eyeHeight_15_min);
                Algorithm.GetSpec(specParameters, "EyeWidth_15(ps)", 0, out eyeWidth_15_max, out eyeWidth_15_min);
                Algorithm.GetSpec(specParameters, "VEC(dB)", 0, out vec_max, out vec_min);
                testOutputData = new Dictionary <string, double>();
                int  i      = 0;
                bool result = false;
                do
                {
                    testOutputData.Clear();
                    result = scope.MeasureRxEyeVecEW(ref testOutputData);

                    result = result && (testOutputData["EyeHeight_15(mV)"] <= eyeHeight_15_max) && (testOutputData["EyeHeight_15(mV)"] >= eyeHeight_15_min);
                    result = result && (testOutputData["EyeWidth_15(ps)"] <= eyeWidth_15_max) && (testOutputData["EyeWidth_15(ps)"] >= eyeWidth_15_min);
                    result = result && (testOutputData["VEC(dB)"] <= vec_max) && (testOutputData["VEC(dB)"] >= vec_min);

                    if (result == true)
                    {
                        break;
                    }
                    i++;
                } while (i < 3);

                foreach (string key in testOutputData.Keys)
                {
                    Log.SaveLogToTxt(key + testOutputData[key].ToString("f4"));
                }

                return(result);
            }
            catch (InnoExCeption ex)//from driver
            {
                //Log.SaveLogToTxt(ex.ID + ": " + ex.Message + "\r\n" + ex.StackTrace);
                exceptionList.Add(ex);
                return(false);
            }
            catch (Exception error)//from itself
            {
                //one way: deal this exception itself
                InnoExCeption ex = new InnoExCeption(ExceptionDictionary.Code._0xFFFFF, error.StackTrace);
                //Log.SaveLogToTxt(ex.ID + ": " + ex.Message + "\r\n" + ex.StackTrace);
                exceptionList.Add(ex);
                return(false);
                //the other way is: should throw exception, rather than the above three code. see below:
                //throw new InnoExCeption(ExceptionDictionary.Code._0xFFFFF, error.StackTrace);
            }
        }