Exemple #1
0
        private void Set_TD_Condition(ProductTest TestCondition)
        {
            SetVCC(Convert.ToDouble(TestCondition.VCC));
            SetVbat(Convert.ToDouble(TestCondition.VBAT), 1.0);

            SetVEN(Arb_Channel.Channel_1, TestCondition.Txen_Ven, true);
            SetVEN(Arb_Channel.Channel_2, TestCondition.Vramp, true);

            util.Wait(intDelay_PowerSupply);

            //if (is_Mipi) frmMipi.ShowDialog();
        }
Exemple #2
0
        private void Set_WCDMA_Condition(ProductTest TestCondition)
        {
            SetVCC(Convert.ToDouble(TestCondition.VCC));
            SetVbat(Convert.ToDouble(TestCondition.VBAT), 1.0);

            SetVEN(Arb_Channel.Channel_1, TestCondition.Txen_Ven, true);
            SetVEN(Arb_Channel.Channel_2, TestCondition.Vramp, true);

            util.Wait(intDelay_PowerSupply);
        }
Exemple #3
0
        private int Set_CW_Condition(ProductTest TestCondition)
        {
            int delaytime = 0;

            if (first_run)
            {
                SetVCC(Convert.ToDouble(TestCondition.VCC));
                SetVramp(Convert.ToDouble(TestCondition.Vramp));
                SetTXEnable(Convert.ToDouble(TestCondition.Txen_Ven));

                util.Wait(intDelay_PowerSupply);
                first_run = false;
            }
            else
            {
                if (Convert.ToDouble(TestCondition.VCC) != last_vcc)
                {
                    SetVCC(Convert.ToDouble(TestCondition.VCC));
                    delaytime = intDelay_PowerSupply;
                }

                if (Convert.ToDouble(TestCondition.Vramp) != last_vramp)
                {
                    SetVramp(Convert.ToDouble(TestCondition.Vramp));
                    if (intDelay_Arb > delaytime)
                        delaytime = intDelay_Arb;
                }

                if (Convert.ToDouble(TestCondition.Txen_Ven) != last_txen)
                {
                    SetTXEnable(Convert.ToDouble(TestCondition.Txen_Ven));
                    if (intDelay_Arb > delaytime)
                        delaytime = intDelay_Arb;
                }
            }
            last_vcc = Convert.ToDouble(TestCondition.VCC);
            last_txen = Convert.ToDouble(TestCondition.Txen_Ven);
            last_vramp = Convert.ToDouble(TestCondition.Vramp);

            return delaytime;
        }
Exemple #4
0
        private void DeviceTest_WCDMA(ProductTest Test)
        {
            double dblTestResult = 0;
            double dblReportResult = 0;

            int intDelay = 60;

            //Seach for current Test Item
            int index = Array.IndexOf(Program.ProductTest, Test);

            #region -- Idle Current
            if (Test.Description.ToUpper().Contains("IDLE"))
            {
                double I_Vcc;
                double I_Vbat;

                #region BJ_1
                if (Program.Location == LocationList.BJ_1)
                {
                    Set_WCDMA_Condition(Test);

                    _SRC_3G.SetOutput(Output.OFF);

                    util.Wait(intDelay);

                    //Idle Vbat
                    dblTestResult = I_Vbat = _PS_VBAT.RMS_Current(PS_66319B_Channel.Channel_1);
                    if (Program.evb)
                        dblReportResult = Math.Round((dblTestResult * 1000), 3);
                    else
                        dblReportResult = Math.Round((dblTestResult * 1000), 3) + Test.SocketOffset;

                    this.UpdateGrid(Test.TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Test.TestItem.ToString(), dblReportResult);

                    //Idle VCC
                    //dblTestResult = I_Vcc = _PS_VCC.High_Current();
                    double[] dblTemp = _PS_VCC.Meas_Current_Trig(Triger_Source.Bus, 0.1, 25, 200, 0);
                    dblTestResult = I_Vcc = dblTemp[0];
                    if (Program.evb)
                        dblReportResult = Math.Round((dblTestResult * 1000), 3);
                    else
                        dblReportResult = Math.Round((dblTestResult * 1000), 3) + Program.ProductTest[index + 1].SocketOffset;
                    this.UpdateGrid(Program.ProductTest[index + 1].TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Program.ProductTest[index + 1].TestItem.ToString(), dblReportResult);

                    //Idle Total
                    dblTestResult = I_Vbat + I_Vcc;
                    if (Program.evb)
                        dblReportResult = Math.Round((dblTestResult * 1000), 3);
                    else
                        dblReportResult = Math.Round((dblTestResult * 1000), 3) + Program.ProductTest[index + 2].SocketOffset;
                    this.UpdateGrid(Program.ProductTest[index + 2].TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Program.ProductTest[index + 2].TestItem.ToString(), dblReportResult);
                }
                #endregion BJ_1

                else
                {
                    throw new Exception("Bad Location");
                }
            }
            #endregion -- Idle Current

            #region -- Gain
            if (Test.Description.ToUpper().Contains("GAIN"))
            {
                double I_Vcc = 0.0;
                double I_Vbat = 0.0;
                double dblPout = 0.0;
                double dblPin = Test.Pin;
                double PoutLL = Test.Pout - 0.09;
                double PoutUL = Test.Pout + 0.09;
                WCDMA_Pin = dblPin;

                #region BJ_1
                if (Program.Location == LocationList.BJ_1)
                {
                    Set_WCDMA_Condition(Test);

                    //_E4438C.SetModOutput(Output.OFF);
                    _SRC_3G.SetFrequency(Test.FreqIn);
                    _SRC_3G.SetPower(dblPin + Test.LossIn);
                    _SRC_3G.SetOutput(Output.ON);

                    //_MXA_N9020A.Config__CW_Power(Test.FreqOut, 20, 30, 368, 20, 10);
                    _MSR_3G.Config__WCDMA_CHP(Test.FreqOut);
                    intDelay = Math.Max(intDelay_SigGen, intDelay_MXA);
                    util.Wait(intDelay );

                    dblPout = _MSR_3G.Get_WCDMA_CHP_Result();
                    dblPout += +Test.LossOut;
                    while (dblPout <= PoutLL || dblPout >= PoutUL)
                    {
                        dblPin = dblPin + Test.Pout - dblPout;
                        if (dblPin > 4) break;

                        _SRC_3G.SetPower(dblPin + Test.LossIn);
                        util.Wait(intDelay * 1);
                        dblPout = _MSR_3G.Get_WCDMA_CHP_Result();
                        dblPout += +Test.LossOut;
                        WCDMA_Pin = dblPin;
                    }
                    //_E4438C.SetModOutput(Output.ON);

                    //Pin
                    dblTestResult = WCDMA_Pin;
                    if (Program.evb)
                        dblReportResult = Math.Round(dblTestResult, 3);
                    else
                        dblReportResult = Math.Round(dblTestResult, 3) + Test.SocketOffset;
                    this.UpdateGrid(Test.TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Test.TestItem.ToString(), dblReportResult);

                    //Pout
                    dblTestResult = dblPout;
                    dblReportResult = Math.Round(dblTestResult, 3);
                    this.UpdateGrid(Program.ProductTest[index + 1].TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Program.ProductTest[index + 1].TestItem.ToString(), dblReportResult);

                    //Gain
                    dblTestResult = dblPout - WCDMA_Pin;
                    if (Program.evb)
                        dblReportResult = Math.Round(dblTestResult, 3);
                    else
                        dblReportResult = Math.Round(dblTestResult, 3) + Program.ProductTest[index + 2].SocketOffset;
                    this.UpdateGrid(Program.ProductTest[index + 2].TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Program.ProductTest[index + 2].TestItem.ToString(), dblReportResult);

                    //Icc Vbat
                    dblTestResult = I_Vbat = _PS_VBAT.RMS_Current(PS_66319B_Channel.Channel_1);
                    if (Program.evb)
                        dblReportResult = Math.Round((dblTestResult * 1000), 3);
                    else
                        dblReportResult = Math.Round((dblTestResult * 1000), 3) + Program.ProductTest[index + 3].SocketOffset;
                    this.UpdateGrid(Program.ProductTest[index + 3].TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Program.ProductTest[index + 3].TestItem.ToString(), dblReportResult);

                    //Icc VCC
                    //dblTestResult = I_Vcc = _PS_VCC.High_Current();
                    double[] dblTemp = _PS_VCC.Meas_Current_Trig(Triger_Source.Bus, 0.1, 25, 200, 0);
                    dblTestResult = I_Vcc = dblTemp[0];
                    if (Program.evb)
                        dblReportResult = Math.Round((dblTestResult * 1000), 3);
                    else
                        dblReportResult = Math.Round((dblTestResult * 1000), 3) + Program.ProductTest[index + 4].SocketOffset;
                    this.UpdateGrid(Program.ProductTest[index + 4].TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Program.ProductTest[index + 4].TestItem.ToString(), dblReportResult);

                    //Icc Total
                    dblTestResult = I_Vcc + I_Vbat;
                    if (Program.evb)
                        dblReportResult = Math.Round((dblTestResult * 1000), 3);
                    else
                        dblReportResult = Math.Round((dblTestResult * 1000), 3) + Program.ProductTest[index + 5].SocketOffset;
                    this.UpdateGrid(Program.ProductTest[index + 5].TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Program.ProductTest[index + 5].TestItem.ToString(), dblReportResult);

                    //PAE
                    dblTestResult = Math.Pow(10, ((dblPout - 30) / 10)) / Test.VCC / (I_Vcc + I_Vbat);
                    dblReportResult = Math.Round((dblTestResult * 100), 3);
                    this.UpdateGrid(Program.ProductTest[index + 6].TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Program.ProductTest[index + 6].TestItem.ToString(), dblReportResult);
                }
                #endregion BJ_1

                else
                {
                    throw new Exception("Bad Location");
                }
            }
            #endregion -- GAIN

            #region -- ACP
            if (Test.Description.ToUpper().Contains("ACP"))
            {
                double dblPin;
                double[] dblResult;

                if (WCDMA_Pin == -99)
                    dblPin = Test.Pin;
                else
                    dblPin = WCDMA_Pin;

                #region BJ_1
                if (Program.Location == LocationList.BJ_1)
                {
                    Set_WCDMA_Condition(Test);

                    _SRC_3G.SetFrequency(Test.FreqIn);
                    _SRC_3G.SetPower(dblPin + Test.LossIn);
                    _SRC_3G.SetOutput(Output.ON);

                    _MSR_3G.Config__WCDMA_ACP(Test.FreqOut);
                    intDelay = Math.Max(intDelay_SigGen, intDelay_MXA);
                    util.Wait(intDelay * 1);

                    dblResult = _MSR_3G.Get_WCDMA_ACP_Result();

                    //ACP -5MHz
                    dblTestResult = dblResult[1];
                    if (Program.evb)
                        dblReportResult = Math.Round(dblTestResult, 3);
                    else
                        dblReportResult = Math.Round(dblTestResult, 3) + Test.SocketOffset;
                    this.UpdateGrid(Test.TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Test.TestItem.ToString(), dblReportResult);

                    //ACP +5MHz
                    dblTestResult = dblResult[2];
                    if (Program.evb)
                        dblReportResult = Math.Round(dblTestResult, 3);
                    else
                        dblReportResult = Math.Round(dblTestResult, 3) + Program.ProductTest[index + 1].SocketOffset;
                    this.UpdateGrid(Program.ProductTest[index + 1].TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Program.ProductTest[index + 1].TestItem.ToString(), dblReportResult);

                    //ACP -10MHz
                    dblTestResult = dblResult[3];
                    if (Program.evb)
                        dblReportResult = Math.Round(dblTestResult, 3);
                    else
                        dblReportResult = Math.Round(dblTestResult, 3) + Program.ProductTest[index + 2].SocketOffset;
                    this.UpdateGrid(Program.ProductTest[index + 2].TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Program.ProductTest[index + 2].TestItem.ToString(), dblReportResult);

                    //ACP +10MHz
                    dblTestResult = dblResult[4];
                    if (Program.evb)
                        dblReportResult = Math.Round(dblTestResult, 3);
                    else
                        dblReportResult = Math.Round(dblTestResult, 3) + Program.ProductTest[index + 3].SocketOffset;
                    this.UpdateGrid(Program.ProductTest[index + 3].TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Program.ProductTest[index + 3].TestItem.ToString(), dblReportResult);

                }
                #endregion BJ_1

                else
                {
                    throw new Exception("Bad Location");
                }
            }
            #endregion -- ACP

            #region -- EVM
            if (Test.Description.ToUpper().Contains("EVM"))
            {
                double dblPin;

                if (WCDMA_Pin == -99)
                    dblPin = Test.Pin;
                else
                    dblPin = WCDMA_Pin;

                #region BJ_1
                if (Program.Location == LocationList.BJ_1)
                {
                    Set_WCDMA_Condition(Test);

                    _SRC_3G.SetFrequency(Test.FreqIn);
                    _SRC_3G.SetPower(dblPin + Test.LossIn);
                    _SRC_3G.SetOutput(Output.ON);

                    _MSR_3G.Config__WCDMA_EVM(Test.FreqOut);
                    intDelay = Math.Max(intDelay_SigGen, intDelay_MXA);
                    util.Wait(intDelay * 1);

                    dblTestResult = _MSR_3G.Get_WCDMA_EVM_Result();

                    //EVM
                    if (Program.evb)
                        dblReportResult = Math.Round(dblTestResult, 3);
                    else
                        dblReportResult = Math.Round(dblTestResult, 3) + Test.SocketOffset;

                    this.UpdateGrid(Test.TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Test.TestItem.ToString(), dblReportResult);

                }
                #endregion BJ_1

                else
                {
                    throw new Exception("Bad Location");
                }
            }
            #endregion -- EVM

            #region -- Harmonic
            if (Test.Description.ToUpper().Contains("HARMONIC"))
            {
                double dblPin;

                if (WCDMA_Pin == -99)
                    dblPin = Test.Pin;
                else
                    dblPin = WCDMA_Pin;

                #region BJ_1
                if (Program.Location == LocationList.BJ_1)
                {
                    Set_WCDMA_Condition(Test);

                    _SRC_3G.SetModOutput(Output.OFF);
                    _SRC_3G.SetFrequency(Test.FreqIn);
                    _SRC_3G.SetPower(dblPin + Test.LossIn);
                    _SRC_3G.SetOutput(Output.ON);

                    _MSR_4G.Config__CW_Power_FreeRun(Test.FreqOut, 30, 0, 2, 10);
                    intDelay = Math.Max(intDelay_SigGen, intDelay_MXA);
                    util.Wait(intDelay);

                    MessageBox.Show("Connect highpass filter", "WCDMA Testing", MessageBoxButtons.OK);

                    dblTestResult = _MSR_4G.Get_CW_PowerResult();
                    dblTestResult += Test.LossOut;

                    _SRC_3G.SetModOutput(Output.ON);

                    //Harmonic
                    if (Program.evb)
                        dblReportResult = Math.Round(dblTestResult, 3);
                    else
                        dblReportResult = Math.Round(dblTestResult, 3) + Test.SocketOffset;
                    this.UpdateGrid(Test.TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Test.TestItem.ToString(), dblReportResult);

                    MessageBox.Show("Disconnect highpass filter", "WCDMA Testing", MessageBoxButtons.OK);

                }
                #endregion BJ_1

                else
                {
                    throw new Exception("Bad Location");
                }
            }
            #endregion -- Harmonic
        }
Exemple #5
0
        private void DeviceTest_TDSCDMA(ProductTest Test)
        {
            double dblTestResult = 0;
            double dblReportResult = 0;

            int intDelay = 60;

            //Seach for current Test Item
            int index = Array.IndexOf(Program.ProductTest, Test);

            #region -- Idle Current
            if (Test.Description.ToUpper().Contains("IDLE"))
            {
                double I_Vcc;

                #region BJ_1
                if (Program.Location == LocationList.BJ_1)
                {
                    _SRC_3G.SetOutput(Output.OFF);

                    Set_TD_Condition(Test);

                    util.Wait(intDelay);

                    //Idle VCC
                    //dblTestResult = I_Vcc = _PS_VCC.High_Current();
                    double[] dblTemp = _PS_VCC.Meas_Current_Trig(Triger_Source.Bus, 0.1, 25, 200, 0);
                    dblTestResult = I_Vcc = dblTemp[2];
                    dblReportResult = Math.Round((dblTestResult * 1000), 3);
                    this.UpdateGrid(Test.TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Test.TestItem.ToString(), dblReportResult);

                }
                #endregion BJ_1

                else
                {
                    throw new Exception("Bad Location");
                }
            }
            #endregion -- Idle Current

            #region -- Gain
            if (Test.Description.ToUpper().Contains("GAIN"))
            {
                double I_Vcc = 0.0;
                double I_Vbat = 0.0;
                double dblPout = 0.0;
                double dblPin = Test.Pin;
                double PoutLL = Test.Pout - 0.05;
                double PoutUL = Test.Pout + 0.05;
                TDSCDMA_Pin = dblPin;

                #region BJ_1
                if (Program.Location == LocationList.BJ_1)
                {
                    Set_TD_Condition(Test);

                    _SRC_3G.SetFrequency(Test.FreqIn);
                    _SRC_3G.SetPower(dblPin + Test.LossIn);
                    _SRC_3G.SetOutput(Output.ON);

                    _MSR_3G.Config__TDSCDMA_CHP(Test.FreqOut);
                    intDelay = Math.Max(intDelay_SigGen, intDelay_MXA);
                    util.Wait(intDelay * 10);

                    dblPout = _MSR_3G.Get_TDSCDMA_CHP_Result();
                    dblPout += +Test.LossOut;
                    while (dblPout <= PoutLL || dblPout >= PoutUL)
                    {
                        dblPin = dblPin + Test.Pout - dblPout;
                        if (dblPin > 2) break;

                        _SRC_3G.SetPower(dblPin + Test.LossIn);
                        util.Wait(intDelay * 3);
                        dblPout = _MSR_3G.Get_TDSCDMA_CHP_Result();
                        dblPout += +Test.LossOut;
                        TDSCDMA_Pin = dblPin;
                    }

                    //Pout
                    dblTestResult = dblPout;
                    dblReportResult = Math.Round(dblTestResult, 3);
                    this.UpdateGrid(Test.TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Test.TestItem.ToString(), dblReportResult);

                    //Pin
                    dblTestResult = TDSCDMA_Pin;
                    dblReportResult = Math.Round(dblTestResult, 3);
                    this.UpdateGrid(Program.ProductTest[index + 1].TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Program.ProductTest[index + 1].TestItem.ToString(), dblReportResult);

                    //Icc VCC
                    //dblTestResult = I_Vcc = _PS_VCC.High_Current();
                    double[] dblTemp = _PS_VCC.Meas_Current_Trig(Triger_Source.Bus, 0.1, 25, 200, 0);
                    dblTestResult = I_Vcc = dblTemp[2];
                    dblReportResult = Math.Round(dblTestResult * 1000, 3);
                    this.UpdateGrid(Program.ProductTest[index + 2].TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Program.ProductTest[index + 2].TestItem.ToString(), dblReportResult);

                    //PAE
                    dblTestResult = Math.Pow(10, ((dblPout - 30) / 10)) / Test.VCC / (I_Vcc + I_Vbat);
                    dblReportResult = Math.Round((dblTestResult * 100), 3);
                    this.UpdateGrid(Program.ProductTest[index + 3].TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Program.ProductTest[index + 3].TestItem.ToString(), dblReportResult);

                    //Gain
                    dblTestResult = dblPout - TDSCDMA_Pin;
                    dblReportResult = Math.Round((dblTestResult), 3);
                    this.UpdateGrid(Program.ProductTest[index + 4].TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Program.ProductTest[index + 4].TestItem.ToString(), dblReportResult);

                }
                #endregion BJ_1

                else
                {
                    throw new Exception("Bad Location");
                }
            }
            #endregion -- GAIN

            #region -- ACP
            if (Test.Description.ToUpper().Contains("ACP"))
            {
                double dblPin;
                double[] dblResult;

                if (TDSCDMA_Pin == -99)
                    dblPin = Test.Pin;
                else
                    dblPin = TDSCDMA_Pin;

                #region BJ_1
                if (Program.Location == LocationList.BJ_1)
                {
                    Set_TD_Condition(Test);

                    _SRC_3G.SetFrequency(Test.FreqIn);
                    _SRC_3G.SetPower(dblPin + Test.LossIn);
                    _SRC_3G.SetOutput(Output.ON);

                    _MSR_3G.Config__TDSCDMA_ACP(Test.FreqOut, 5);
                    intDelay = Math.Max(intDelay_SigGen, intDelay_MXA);
                    util.Wait(intDelay * 1);

                    dblResult = _MSR_3G.Get_TDSCDMA_ACP_Result();

                    //ACP -1.6MHz
                    dblTestResult = dblResult[1];
                    dblReportResult = Math.Round(dblTestResult, 3);
                    this.UpdateGrid(Test.TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Test.TestItem.ToString(), dblReportResult);

                    //ACP +1.6MHz
                    dblTestResult = dblResult[2];
                    dblReportResult = Math.Round(dblTestResult, 3);
                    this.UpdateGrid(Program.ProductTest[index + 1].TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Program.ProductTest[index + 1].TestItem.ToString(), dblReportResult);

                    //ACP -3.2MHz
                    dblTestResult = dblResult[3];
                    dblReportResult = Math.Round(dblTestResult, 3);
                    this.UpdateGrid(Program.ProductTest[index + 2].TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Program.ProductTest[index + 2].TestItem.ToString(), dblReportResult);

                    //ACP +3.2MHz
                    dblTestResult = dblResult[4];
                    dblReportResult = Math.Round(dblTestResult, 3);
                    this.UpdateGrid(Program.ProductTest[index + 3].TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Program.ProductTest[index + 3].TestItem.ToString(), dblReportResult);

                }
                #endregion BJ_1

                else
                {
                    throw new Exception("Bad Location");
                }
            }
            #endregion -- ACP

            #region -- EVM
            if (Test.Description.ToUpper().Contains("EVM"))
            {
                double dblPin;

                if (TDSCDMA_Pin == -99)
                    dblPin = Test.Pin;
                else
                    dblPin = TDSCDMA_Pin;

                #region BJ_1
                if (Program.Location == LocationList.BJ_1)
                {
                    Set_TD_Condition(Test);

                    _SRC_3G.SetFrequency(Test.FreqIn);
                    _SRC_3G.SetPower(dblPin + Test.LossIn);
                    _SRC_3G.SetOutput(Output.ON);

                    _MSR_3G.Config__TDSCDMA_EVM(Test.FreqOut);
                    intDelay = Math.Max(intDelay_SigGen, intDelay_MXA);
                    util.Wait(intDelay * 1);

                    dblTestResult = _MSR_3G.Get_TDSCDMA_EVM_Result();

                    //EVM
                    dblReportResult = Math.Round(dblTestResult, 3);
                    this.UpdateGrid(Test.TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Test.TestItem.ToString(), dblReportResult);

                }
                #endregion BJ_1

                else
                {
                    throw new Exception("Bad Location");
                }
            }
            #endregion -- EVM
        }
Exemple #6
0
        private void DeviceTest_FDD(ProductTest Test)
        {
            double dblTestResult = 0;
            double dblReportResult = 0;

            int intDelay = 60;

            //Seach for current Test Item
            int index = Array.IndexOf(Program.ProductTest, Test);

            #region -- Idle Current
            if (Test.Description.ToUpper().Contains("IDLE"))
            {
                double I_Vcc;
                double I_Vbat;

                #region BJ_1
                if (Program.Location == LocationList.BJ_1)
                {
                    Set_WCDMA_Condition(Test);

                    _SRC_4G.SetOutput(Output.OFF);

                    util.Wait(intDelay);

                    //Idle Vbat
                    dblTestResult = I_Vbat = _PS_VBAT.RMS_Current(PS_66319B_Channel.Channel_1);
                    if (Program.evb)
                        dblReportResult = Math.Round((dblTestResult * 1000), 3);
                    else
                        dblReportResult = Math.Round((dblTestResult * 1000), 3) + Test.SocketOffset;

                    //this.UpdateGrid(Test.TestItem.ToString(), dblReportResult);
                    //this.UpdateProductionTestResult(Test.TestItem.ToString(), dblReportResult);

                    this.UpdateGrid(Test.TestItem.ToString(), 0.1);
                    this.UpdateProductionTestResult(Test.TestItem.ToString(), 0.1);

                    //Idle VCC
                    //dblTestResult = I_Vcc = _PS_VCC.High_Current();
                    double[] dblTemp = _PS_VCC.Meas_Current_Trig(Triger_Source.Bus, 0.1, 25, 200, 0);
                    dblTestResult = I_Vcc = dblTemp[0];
                    if (Program.evb)
                        dblReportResult = Math.Round((dblTestResult * 1000), 3);
                    else
                        dblReportResult = Math.Round((dblTestResult * 1000), 3) + Program.ProductTest[index + 1].SocketOffset;
                    this.UpdateGrid(Program.ProductTest[index + 1].TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Program.ProductTest[index + 1].TestItem.ToString(), dblReportResult);

                    //Idle Total
                    this.UpdateGrid(Program.ProductTest[index + 2].TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Program.ProductTest[index + 2].TestItem.ToString(), dblReportResult);

                }
                #endregion BJ_1

                else
                {
                    throw new Exception("Bad Location");
                }
            }
            #endregion -- Idle Current

            #region -- Gain
            if (Test.Description.ToUpper().Contains("GAIN"))
            {
                double I_Vcc = 0.0;
                double I_Vbat = 0.0;
                double dblPout = 0.0;
                double dblPin = Test.Pin;
                double PoutLL = Test.Pout - 0.05;
                double PoutUL = Test.Pout + 0.05;
                LTE_Pin = dblPin;

                #region BJ_1
                if (Program.Location == LocationList.BJ_1)
                {
                    Set_WCDMA_Condition(Test);

                    _SRC_4G.SetFrequency(Test.FreqIn);
                    _SRC_4G.SetPower(dblPin + Test.LossIn);

                    _SRC_4G.SetOutput(Output.ON);

                    _MSR_4G.Config__LTEFDD_CHP(Test.FreqOut);
                    _MSR_4G.SetAttenuattor(10);
                    intDelay = Math.Max(intDelay_SigGen, intDelay_MXA);
                    util.Wait(intDelay);

                    dblPout = _MSR_4G.Get_LTEFDD_CHP_Result();
                    dblPout += +Test.LossOut;
                    while (dblPout <= PoutLL || dblPout >= PoutUL)
                    {
                        dblPin = dblPin + Test.Pout - dblPout;
                        if (dblPin > 7) break;

                        _SRC_4G.SetPower(dblPin + Test.LossIn);
                        util.Wait(intDelay);
                        dblPout = _MSR_4G.Get_LTEFDD_CHP_Result();
                        dblPout += +Test.LossOut;
                        LTE_Pin = dblPin;
                    }

                    //Pin
                    dblTestResult = LTE_Pin;
                    dblReportResult = Math.Round(dblTestResult, 3);
                    this.UpdateGrid(Test.TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Test.TestItem.ToString(), dblReportResult);

                    //Pout
                    dblTestResult = dblPout;
                    dblReportResult = Math.Round(dblTestResult, 3);
                    this.UpdateGrid(Program.ProductTest[index + 1].TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Program.ProductTest[index + 1].TestItem.ToString(), dblReportResult);

                    //Gain
                    dblTestResult = dblPout - LTE_Pin;
                    dblReportResult = Math.Round(dblTestResult, 3);
                    this.UpdateGrid(Program.ProductTest[index + 2].TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Program.ProductTest[index + 2].TestItem.ToString(), dblReportResult);

                    //Icc Vbat
                    this.UpdateGrid(Program.ProductTest[index + 3].TestItem.ToString(), 0.1);
                    this.UpdateProductionTestResult(Program.ProductTest[index + 3].TestItem.ToString(), 0.1);

                    //Icc Vcc
                    //dblTestResult = I_Vcc = _PS_VCC.High_Current();
                    double[] dblTemp = _PS_VCC.Meas_Current_Trig(Triger_Source.Bus, 0.1, 25, 200, 0);
                    dblTestResult = I_Vcc = dblTemp[2];
                    dblReportResult = Math.Round((dblTestResult * 1000), 3);
                    this.UpdateGrid(Program.ProductTest[index + 4].TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Program.ProductTest[index + 3].TestItem.ToString(), dblReportResult);

                    //Icc Total
                    this.UpdateGrid(Program.ProductTest[index + 5].TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Program.ProductTest[index + 3].TestItem.ToString(), dblReportResult);

                    //PAE
                    dblTestResult = Math.Pow(10, ((dblPout - 30) / 10)) / Test.VCC / (I_Vcc + I_Vbat);
                    dblReportResult = Math.Round((dblTestResult * 100), 3);
                    this.UpdateGrid(Program.ProductTest[index + 6].TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Program.ProductTest[index + 4].TestItem.ToString(), dblReportResult);

                    //_E4438C.SetModOutput(Output.ON);
                    util.Wait(1000);
                }
                #endregion BJ_1

                else
                {
                    throw new Exception("Bad Location");
                }
            }
            #endregion -- GAIN

            #region -- ACP
            if (Test.Description.ToUpper().Contains("ACP"))
            {
                double dblPin;
                double[] dblResult;

                if (LTE_Pin == -99)
                    dblPin = Test.Pin;
                else
                    dblPin = LTE_Pin;

                #region BJ_1
                if (Program.Location == LocationList.BJ_1)
                {

                    Set_WCDMA_Condition(Test);

                    _SRC_4G.SetFrequency(Test.FreqIn);
                    _SRC_4G.SetPower(dblPin + Test.LossIn);
                    _SRC_4G.SetOutput(Output.ON);

                    _MSR_4G.Config__LTEFDD_ACP_EULTRA(Test.FreqOut);
                    intDelay = Math.Max(intDelay_SigGen, intDelay_MXA);
                    util.Wait(intDelay * 1);

                    dblResult = _MSR_4G.Get_LTEFDD_ACP_EULTRA_Result();

                    // EUTRA ACP
                    dblTestResult = dblResult[1];
                    dblReportResult = Math.Round(dblTestResult, 3);
                    this.UpdateGrid(Test.TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Test.TestItem.ToString(), dblReportResult);

                    _MSR_4G.Config__LTEFDD_ACP_ULTRA(Test.FreqOut);
                    intDelay = Math.Max(intDelay_SigGen, intDelay_MXA);
                    util.Wait(intDelay * 1);

                    dblResult = _MSR_4G.Get_LTEFDD_ACP_ULTRA_Result();

                    // UTRA ACP1
                    dblTestResult = dblResult[1];
                    dblReportResult = Math.Round(dblTestResult, 3);
                    this.UpdateGrid(Program.ProductTest[index + 1].TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Program.ProductTest[index + 1].TestItem.ToString(), dblReportResult);

                    // UTRA ACP2
                    dblTestResult = dblResult[3];
                    dblReportResult = Math.Round(dblTestResult, 3);
                    this.UpdateGrid(Program.ProductTest[index + 2].TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Program.ProductTest[index + 1].TestItem.ToString(), dblReportResult);
                }
                #endregion BJ_1

                else
                {
                    throw new Exception("Bad Location");
                }
            }
            #endregion -- ACP

            #region -- EVM
            if (Test.Description.ToUpper().Contains("EVM"))
            {
                double dblPin;

                if (LTE_Pin == -99)
                    dblPin = Test.Pin;
                else
                    dblPin = LTE_Pin;

                #region BJ_1
                if (Program.Location == LocationList.BJ_1)
                {
                    Set_WCDMA_Condition(Test);

                    _SRC_4G.SetFrequency(Test.FreqIn);
                    _SRC_4G.SetPower(dblPin + Test.LossIn);
                    _SRC_4G.SetOutput(Output.ON);

                    _MSR_4G.Config__LTEFDD_EVM(Test.FreqOut);
                    intDelay = Math.Max(intDelay_SigGen, intDelay_MXA);
                    util.Wait(intDelay * 1);

                    dblTestResult = _MSR_4G.Get_LTEFDD_EVM_Result();

                    //EVM
                    dblReportResult = Math.Round(dblTestResult, 3);
                    this.UpdateGrid(Test.TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Test.TestItem.ToString(), dblReportResult);

                }
                #endregion BJ_1

                else
                {
                    throw new Exception("Bad Location");
                }
            }
            #endregion -- EVM
        }
Exemple #7
0
        private void DeviceTest_CW(ProductTest Test)
        {
            double dblTestResult = 0;
            double dblReportResult = 0;
            double LoopResult = 0;
            double LoopResult_Vramp_Low = 0;
            double LoopResult_Vramo_High = 0;
            double Slope_mV = 0;

            int intDelay = 60;

            //Seach for current Test Item
            int index = Array.IndexOf(Program.ProductTest, Test);

            #region -- Idle Current
            if (Test.Description.ToUpper().Contains("IDLE"))
            {
                #region BJ_1
                if (Program.Location == LocationList.BJ_1)
                {
                    intDelay = Set_CW_Condition(Test);

                    _SRC_3G.SetOutput(Output.OFF);

                    util.Wait(intDelay);

                    //dblTestResult = _PS_VCC.High_Current();
                    double[] dblTemp = _PS_VCC.Meas_Current_Trig(Triger_Source.Bus, 0.1, 25, 200, 0);
                    dblTestResult = dblTemp[2];
                    dblReportResult = Math.Round((dblTestResult * 1000), 3);

                    this.UpdateGrid(Test.TestItem.ToString(), dblReportResult);
                    this.UpdateProductionTestResult(Test.TestItem.ToString(), dblReportResult);
                }
                #endregion BJ_1

                else
                {
                    throw new Exception("Bad Location");
                }
            }
            #endregion

            #region -- Pout
            if (Test.Description.ToUpper().Contains("POUT"))
            {
                #region BJ_1
                if (Program.Location == LocationList.BJ_1)
                {
                    intDelay = Set_CW_Condition(Test);

                    _SRC_3G.SetOutput(Output.ON);
                    _SRC_3G.SetFrequency(Test.FreqIn);
                    _SRC_3G.SetPower(Test.Pin + Test.LossIn);

                    _MSR_3G.Config__CW_Power(Test.FreqOut, 10, 30, 368, 0.7, 10);
                    _MSR_3G.SetAttenuattor(10);
                    _MSR_3G.SetFrequency(Test.FreqOut);

                    util.Wait(Math.Max(intDelay_MXA, intDelay_SigGen));

                    dblTestResult = _MSR_3G.Get_CW_PowerResult();
                    dblReportResult = Math.Round((dblTestResult + Test.LossOut), 3);
                    this.UpdateGrid(Test.TestItem, dblReportResult);
                    this.UpdateProductionTestResult(Test.TestItem.ToString(), dblReportResult);
                }
                #endregion BJ_1

                else
                {
                    throw new Exception("Bad Location");
                }
            }
            #endregion

            #region -- PowerPAE
            if (Test.Description.ToUpper().Contains("POWERPAE"))
            {
                #region BJ_1
                if (Program.Location == LocationList.BJ_1)
                {
                    intDelay = Set_CW_Condition(Test);

                    _SRC_3G.SetOutput(Output.ON);
                    _SRC_3G.SetFrequency(Test.FreqIn);
                    _SRC_3G.SetPower(Test.Pin + Test.LossIn);

                    _MSR_3G.Config__CW_Power(Test.FreqOut, 10, 30, 368, 0.7, 10);
                    _MSR_3G.SetAttenuattor(10);
                    _MSR_3G.SetFrequency(Test.FreqOut);

                    util.Wait(Math.Max(intDelay_MXA, intDelay_SigGen));
                    //Pout
                    dblTestResult = _MSR_3G.Get_CW_PowerResult();
                    dblReportResult = dblMaxPout = Math.Round((dblTestResult + Test.LossOut), 3);
                    this.UpdateGrid(Test.TestItem, dblReportResult);
                    this.UpdateProductionTestResult(Test.TestItem.ToString(), dblReportResult);
                    //Icc
                    //dblTestResult = _PS_VCC.High_Current();
                    double[] dblTemp = _PS_VCC.Meas_Current_Trig(Triger_Source.Bus, 0.1, 25, 200, 0);
                    dblTestResult = dblTemp[2];
                    dblReportResult = dblTestResult * 1000;
                    this.UpdateGrid(Program.ProductTest[index + 1].TestItem, dblReportResult);
                    this.UpdateProductionTestResult(Program.ProductTest[index + 1].TestItem, dblReportResult);
                    //PAE
                    dblTestResult = (Math.Pow(10, ((dblMaxPout - 30) / 10))) / Test.VCC / dblTestResult;
                    dblReportResult = Math.Round(dblTestResult * 100, 3);
                    this.UpdateGrid(Program.ProductTest[index + 2].TestItem, dblReportResult);
                    this.UpdateProductionTestResult(Program.ProductTest[index + 2].TestItem, dblReportResult);
                }
                #endregion BJ_1

                else
                {
                    throw new Exception("Bad Location");
                }
            }
            #endregion

            #region -- Power Servo
            if (Test.Description.ToUpper().Contains("SERVO"))
            {
                if (dblMaxPout < Test.Pout)
                {
                    dblRatedVramp = 1.8;
                    return;
                }

                #region BJ_1
                if (Program.Location == LocationList.BJ_1)
                {
                    int Count = 0;
                    intDelay = Set_CW_Condition(Test);

                    _SRC_3G.SetOutput(Output.ON);
                    _SRC_3G.SetFrequency(Test.FreqIn);
                    _SRC_3G.SetPower(Test.Pin + Test.LossIn);

                    this.SetVramp(1.2);
                    _MSR_3G.Config__CW_Power(Test.FreqOut, 10, 30, 368, 0.7, 10);
                    _MSR_3G.SetAttenuattor(10);
                    _MSR_3G.SetFrequency(Test.FreqOut);

                    util.Wait(Math.Max(intDelay_MXA, intDelay_SigGen));

                    LoopResult_Vramp_Low = _MSR_3G.Get_CW_PowerResult();

                    this.SetVramp(1.6);
                    util.Wait(intDelay_MXA);
                    LoopResult_Vramo_High = _MSR_3G.Get_CW_PowerResult();

                    Slope_mV = (LoopResult_Vramo_High - LoopResult_Vramp_Low) / 400;

                    LoopResult = LoopResult_Vramp_Low + Test.LossOut;
                    dblRatedVramp = 1.2 + (Test.Pout - LoopResult) / Slope_mV / 1000;

                    if (dblRatedVramp < 0.8 || dblRatedVramp > 1.8) dblRatedVramp = 1.8;

                    while (Math.Abs(LoopResult - Test.Pout) > 0.05 && dblRatedVramp < 1.8 && dblRatedVramp > 0.8)
                    {
                        this.SetVramp(dblRatedVramp);
                        util.Wait(intDelay_PowerMeter);
                        LoopResult = _MSR_3G.Get_CW_PowerResult() + Test.LossOut;
                        dblRatedVramp = dblRatedVramp + (Test.Pout - LoopResult) / Slope_mV / 1000;
                        Count++;
                        if (Count > 20) break;
                    }
                    //Rated Pout
                    dblTestResult = LoopResult;
                    dblReportResult = Math.Round(dblTestResult, 3);
                    this.UpdateGrid(Test.TestItem, dblReportResult);
                    this.UpdateProductionTestResult(Test.TestItem, dblReportResult);
                    //Rated Vramp
                    dblTestResult = dblRatedVramp;
                    dblReportResult = Math.Round(dblTestResult, 3);
                    this.UpdateGrid(Program.ProductTest[index + 1].TestItem, dblReportResult);
                    this.UpdateProductionTestResult(Program.ProductTest[index + 1].TestItem, dblReportResult);
                    //Rated Icc
                    //dblTestResult = _PS_VCC.High_Current();
                    double[] dblTemp = _PS_VCC.Meas_Current_Trig(Triger_Source.Bus, 0.1, 25, 200, 0);
                    dblTestResult = dblTemp[2];
                    dblReportResult = dblTestResult * 1000;
                    this.UpdateGrid(Program.ProductTest[index + 2].TestItem, dblReportResult);
                    this.UpdateProductionTestResult(Program.ProductTest[index + 2].TestItem, dblReportResult);
                    //Rated PAE
                    dblTestResult = (Math.Pow(10, ((LoopResult - 30) / 10))) / Test.VCC / dblTestResult;
                    dblReportResult = Math.Round(dblTestResult * 100, 3);
                    this.UpdateGrid(Program.ProductTest[index + 3].TestItem, dblReportResult);
                    this.UpdateProductionTestResult(Program.ProductTest[index + 3].TestItem, dblReportResult);
                }
                #endregion BJ_1

                else
                {
                    throw new Exception("Bad Location");
                }

            }
            #endregion -- Power Servo

            #region -- Harmonic
            if (Test.Description.ToUpper().Contains("HARMONIC"))
            {
                if (Test.Vramp == 0.01)
                {
                    if (dblRatedVramp == 1.8) return;
                    Test.Vramp = dblRatedVramp;
                }

                #region BJ_1
                if (Program.Location == LocationList.BJ_1)
                {
                    intDelay = Set_CW_Condition(Test);

                    _SRC_3G.SetOutput(Output.ON);
                    _SRC_3G.SetFrequency(Test.FreqIn);
                    _SRC_3G.SetPower(Test.Pin + Test.LossIn);

                    _MSR_4G.Config__CW_Power(Test.FreqOut, 0, 30, 368, 0.7, 10);
                    _MSR_4G.SetAttenuattor(0);
                    _MSR_4G.SetFrequency(Test.FreqOut);

                    util.Wait(Math.Max(intDelay_SigGen, intDelay_MXA));

                    dblTestResult = _MSR_4G.Get_CW_PowerResult();
                    dblReportResult = Math.Round(dblTestResult + Test.LossOut, 3);
                    this.UpdateGrid(Test.TestItem, dblReportResult);
                    this.UpdateProductionTestResult(Test.TestItem, dblReportResult);
                }
                #endregion BJ_1

                else
                {
                    throw new Exception("Bad Location");
                }

            }
            #endregion -- Harmonic

            #region -- Stress
            if (Test.Description.ToUpper().Contains("STRESS"))
            {
                double dbl2ndMaxPout = 0;
                double VCCNormal = Program.ProductTest[1].VCC;
                double VCCStress = Test.VCC;

                #region BJ_1
                if (Program.Location == LocationList.BJ_1)
                {
                    _SRC_3G.SetOutput(Output.ON);
                    _SRC_3G.SetFrequency(Test.FreqIn);
                    _SRC_3G.SetPower(Test.Pin + Test.LossIn);

                    // Test 1st Normal Max Pout if not tested before
                    if (dblMaxPout == 0)
                    {
                        Test.VCC = VCCNormal;
                        intDelay = Math.Max(intDelay, Set_CW_Condition(Test));
                        _MSR_3G.Config__CW_Power(Test.FreqOut, 10, 30, 368, 0.7, 10);
                        _MSR_3G.SetAttenuattor(10);
                        _MSR_3G.SetFrequency(Test.FreqOut);

                        util.Wait(Math.Max(intDelay_MXA, intDelay_SigGen));

                        dblTestResult = _MSR_3G.Get_CW_PowerResult();

                        dblMaxPout = Math.Round((dblTestResult + Test.LossOut), 3);
                    }
                    //Stress
                    Test.VCC = VCCStress;
                    intDelay = Math.Max(intDelay, Set_CW_Condition(Test));
                    util.Wait(intDelay + 5);   //Stress one time frame
                    //Test 2nd Normal Max Pout
                    Test.VCC = VCCNormal;
                    intDelay = Math.Max(intDelay, Set_CW_Condition(Test));
                    _MSR_3G.Config__CW_Power(Test.FreqOut, 0, 30, 368, 0.7, 10);
                    _MSR_3G.SetAttenuattor(10);
                    _MSR_3G.SetFrequency(Test.FreqOut);

                    util.Wait(Math.Max(intDelay_MXA, intDelay_SigGen));

                    dblTestResult = _MSR_3G.Get_CW_PowerResult();
                    dbl2ndMaxPout = Math.Round((dblTestResult + Test.LossOut), 3);
                    dblReportResult = Math.Round((dbl2ndMaxPout - dblMaxPout), 3);
                    //Stress delta
                    this.UpdateGrid(Test.TestItem, dblReportResult);
                    this.UpdateProductionTestResult(Test.TestItem, dblReportResult);
                }
                #endregion BJ_1

                else
                {
                    throw new Exception("Bad Location");
                }
            }
            #endregion -- Stress

            #region -- RX
            if (Test.Description.ToUpper().Contains("RX"))
            {
                string msgString = "";
                if (cbxMIPI.Checked)
                {
                    SetVCC(Program.ProductTest[1].VCC);
                    msgString = "Make sure everything is setup for testing  " + Test.Description + "\r\n" +
                                "   1) Connect rx source cable to " + Test.Description + "\r\n" +
                                "   2) Set Mipi control to " + Test.TestItem + " mode\r\n" +
                                "   3) Disconnect highpass filter";

                    MessageBox.Show(msgString, Test.TestItem + " Testing", MessageBoxButtons.OK);
                    this.Refresh();
                    frmMipi.ShowDialog();
                    util.Wait(1000);
                }
                else
                {
                    msgString = "Make sure everything is setup for testing  " + Test.Description +"\r\n"+
                                "   1) Connect rx source cable to " + Test.Description + "\r\n" +
                                "   2) Set Control box to " + Test.Description + " mode" + "\r\n" +
                                "       GPCtrl0 : " + Test.Gpctrl0_Vmode0 + "\r\n" +
                                "       GPCtrl1 : " + Test.Gpctrl1_Vmode1 + "\r\n" +
                                "       GPCtrl2 : " + Test.Gpctrl2_Vmode2;

                    MessageBox.Show(msgString, Test.TestItem + " Testing", MessageBoxButtons.OK);

                }
                this.Refresh();

                #region BJ_1
                if (Program.Location == LocationList.BJ_1)
                {
                    intDelay = Set_CW_Condition(Test);
                    _SRC_3G.SetOutput(Output.ON);

                    _SRC_3G.SetFrequency(Test.FreqIn);
                    _SRC_3G.SetPower(Test.Pin + Test.LossIn);

                    _MSR_3G.Config__CW_Power(Test.FreqOut, 10, 30, 368, 0.7, 10);
                    _MSR_3G.SetAttenuattor(10);
                    _MSR_3G.SetFrequency(Test.FreqOut);

                    util.Wait(Math.Max(intDelay_MXA, intDelay_SigGen));

                    dblTestResult = _MSR_3G.Get_CW_PowerResult();
                    dblReportResult = Math.Round((dblTestResult + Test.LossOut), 3);
                    this.UpdateGrid(Test.TestItem, dblReportResult);
                    this.UpdateProductionTestResult(Test.TestItem, dblReportResult);
                }
                #endregion BJ_1

                else
                {
                    throw new Exception("Bad Location");
                }
            }
            #endregion -- RX
        }