//****************************************// // Main Test Process // //****************************************// /// <summary> /// The test sequences for trackpad /// </summary> /// <param name="ob"></param>The testwell class private void testProcess(object ob) { TestWell testWell = (TestWell)ob; testWell.Initialize(); if (!testWell.TPTFixtureEnableStatus()) // check if this TPT is enabled or bad********************* { MessageBox.Show("This TPT is not enabled or a bad one, please contact your test engineer", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Error); testWellARunning = false; testWell.PneumaticOff(); return; } //if (!testWell.WellIDCheck(textBoxMPNA.Text)) // check if it is the right fixture********************* //{ // MessageBox.Show("This is not the right fixture to test the board", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Error); // testWellARunning = false; // testWell.PneumaticOff(); // return; //} if (testWell.ReadMicroSwitch()) { Show_Test_Result(testWell, false); //clear test result Thread.Sleep(300); SetListBoxStatus("Well Closed"); testWell.PneumaticOn(); Thread.Sleep(2000); testWell.CheckTrackpadInSlot(); // check if there is trackpad in each of eight slots ******************************* if ((DeviceConfig.Items.trackpad_ShopFloor == DeviceConfig.TPCONFIG.TP_TEST_ONLINE) && testWell.PortEnalbes != 0) { SetListBoxStatus("***********Check Permission*************"); if (TestWell.OperatorID == "") { FormOperatorID formOperatorID = new FormOperatorID(); formOperatorID.ShowDialog(); TestWell.OperatorID = formOperatorID.OperatorID; } if (!testWell.CheckTestPermission()) { Set_StatusBox(textBoxWellAStatus, "Fail to connect SFCS", Color.Red); testWellARunning = false; testWell.PneumaticOff(); return; } Show_Test_Result(testWell, false); } if (testWell.PortEnalbes != 0) { SetListBoxStatus("*************IDD Testing***************"); testWell.IDDTest(false); Show_Test_Result(testWell, false); } if (testWell.PortEnalbes != 0) { SetListBoxStatus("*********Programming Prod Code*********"); testWell.ProgrammingIC(1); Show_Test_Result(testWell, false); } if (testWell.PortEnalbes != 0) { SetListBoxStatus("**********Enter Test Mode************"); testWell.EnterIntoTestMode(); } if (testWell.PortEnalbes != 0) { SetListBoxStatus("**********Fimware Rev Check************"); testWell.I2CFWRevCheck(); Show_Test_Result(testWell, false); } if (testWell.PortEnalbes != 0) { SetListBoxStatus("**********Switch Button Test************"); testWell.I2CSwitchTest(); Show_Test_Result(testWell, false); } if (testWell.PortEnalbes != 0) { SetListBoxStatus("*************IDD Testing***************"); testWell.IDDTest(true); Show_Test_Result(testWell, false); } if (testWell.PortEnalbes != 0) { SetListBoxStatus("**********Row Count Testing**********"); testWell.I2CRowCountTest(); Show_Test_Result(testWell, false); } if (testWell.PortEnalbes != 0) { SetListBoxStatus("*************IDAC Testing**************"); testWell.I2CIDACTest(); Show_Test_Result(testWell, false); } //if (testWell.PortEnalbes != 0) //{ // SetListBoxStatus("*********Programming Prod Code*********"); // testWell.ProgrammingIC(1); // Show_Test_Result(testWell, false); //} if (testWell.PortEnalbes != 0) { SetListBoxStatus("**********Exit Test Mode************"); testWell.ExitTestMode(); } if ((DeviceConfig.Items.trackpad_ShopFloor == DeviceConfig.TPCONFIG.TP_TEST_ONLINE)) { SetListBoxStatus("*********Upload Test Results***********"); if (!testWell.UploadTestRecord()) { Set_StatusBox(textBoxWellAStatus, "Fail to connect SFCS", Color.Red); testWellARunning = false; testWell.PneumaticOff(); return; } } Show_Test_Result(testWell, true); testWell.TestLog(); //cacalute pass/fail count double currentTested = 0; double currentFailed = 0; foreach (DUT dut in testWell.DUTArray) { if (dut.ErrorCode != 0) { currentFailed++; } currentTested++; } totalTestedNumber += currentTested; totalFailedNumber += currentFailed; yieldRate = (totalTestedNumber - totalFailedNumber) / totalTestedNumber; SetManufacturingSummary(); //release fixture lock. testWell.PneumaticOff(); //set status box if (currentFailed != 0) { Set_StatusBox(textBoxWellAStatus, "Total Failed:" + currentFailed.ToString(), Color.Red); } else { Set_StatusBox(textBoxWellAStatus, "PASS", Color.Green); } testWellARunning = false; Set_TextBox(textBoxSNA, ""); //clear serial number of wellA, get focused. } }
//****************************************// // Main Test Process // //****************************************// /// <summary> /// The test sequences for trackpad /// </summary> /// <param name="ob"></param>The testwell class private void testProcess(object ob) { TestWell testWell = (TestWell)ob; testWell.Initialize(); if (true) //testWell.ReadMicroSwitch()) //16 { Show_Test_Result(testWell, false); //clear test result Thread.Sleep(DelayTime.MICRO_SWITCH_ON); SetListBoxStatus("Well Closed"); //testWell.PneumaticOn(); Thread.Sleep(DelayTime.PNEUMATIC_ON); //testWell.CheckTrackpadInSlot(); // check if there is trackpad in each of eight slots ******************************* if (testSite == "CM 1") { SetListBoxStatus("***********Check Permission*************"); if (!testWell.CheckTestPermission(testID)) { Set_StatusBox(textBoxWellAStatus, "Fail to connect SFCS", Color.Red); testWellARunning = false; testWell.PneumaticOff(); return; } Show_Test_Result(testWell, false); } if (testWell.PortEnables != 0 && testWell.PortEnables2 != 0) { SetListBoxStatus("*************IDD Testing***************"); testWell.IDDTest(false); Show_Test_Result(testWell, false); } if (testWell.PortEnables != 0 && testWell.PortEnables2 != 0) { SetListBoxStatus("*********Programming Prod Code*********"); testWell.ProgrammingIC(1); Show_Test_Result(testWell, false); } if (testWell.PortEnables != 0 && testWell.PortEnables2 != 0) { SetListBoxStatus("*************IDD Testing***************"); testWell.IDDTest(true); Show_Test_Result(testWell, false); } if (testWell.PortEnables != 0 && testWell.PortEnables2 != 0) { SetListBoxStatus("**********Enter Test Mode************"); testWell.EnterIntoTestMode(); } if (testWell.PortEnables != 0 && testWell.PortEnables2 != 0 && tpConfig.TPT.ReadFW) { SetListBoxStatus("**********Fimware Rev Check************"); testWell.I2CFWRevCheck(); Show_Test_Result(testWell, false); } if (testWell.PortEnables != 0 && testWell.PortEnables2 != 0 && tpConfig.TPT.ReadRawCount) { SetListBoxStatus("**********Row Count Testing**********"); testWell.I2CRowCountTest(); Show_Test_Result(testWell, false); } if (testWell.PortEnables != 0 && testWell.PortEnables2 != 0 && tpConfig.TPT.ReadIDAC) { SetListBoxStatus("*************IDAC Testing**************"); testWell.I2CIDACTest(); Show_Test_Result(testWell, false); } //if (testWell.PortEnables1 != 0) //{ // SetListBoxStatus("*********Programming Prod Code*********"); // testWell.ProgrammingIC(1); // Show_Test_Result(testWell, false); //} SetListBoxStatus("**********Exit Test Mode************"); testWell.ExitTestMode(); if (testSite == "CM 1") { SetListBoxStatus("*********Upload Test Results***********"); if (!testWell.UploadTestRecord(testID)) { Set_StatusBox(textBoxWellAStatus, "Fail to connect SFCS", Color.Red); testWellARunning = false; testWell.PneumaticOff(); return; } } testWell.TestLog(); Show_Test_Result(testWell, true); //cacalute pass/fail count double currentTested = 0; double currentFailed = 0; foreach (DUT dut in testWell.DUTArray) { if (dut.ErrorCode != 0) { currentFailed++; } currentTested++; } totalTestedNumber += currentTested; totalFailedNumber += currentFailed; yieldRate = (totalTestedNumber - totalFailedNumber) / totalTestedNumber; SetManufacturingSummary(); //release fixture lock. testWell.PneumaticOff(); //set status box if (currentFailed != 0) { Set_StatusBox(textBoxWellAStatus, "Total Failed:" + currentFailed.ToString(), Color.Red); } else { Set_StatusBox(textBoxWellAStatus, "PASS", Color.Green); } testWellARunning = false; Set_TextBox(textBoxSNA, ""); //clear serial number of wellA, get focused. } }