/// <summary> /// This method is called when the test is completed /// </summary> /// <param name="_uutData"></param> /// <param name="_commonData"></param> public void UserCleanup(ref UUTData _uutData, ref CommonData _commonData) { try { // Disconnect 5V supply and TTL signal from the Sensor Board InstrumentIO.DisconnectTempBoardMeasRoute(mySw, TestPort); InstrumentIO.CloseAllTestValve(mySw); if (myLD != null) { // at the end of the test, vent the Leak Detector //Trace.WriteLine("Vent the Leak Detector"); //myLD.Vent(); Trace.WriteLine("Disconnecting Serial Port Communication...."); myLD.Close(); myLD = null; Trace.WriteLine(" ... disconnected"); } // Destruct the Test Classes myInitStationTest = null; myCalLeakTest = null; mySystemCalTest = null; myButtonUpTest = null; // Check FinalTest outcome, Pass/Fail flag P,F,A,E and the test is in Production Mode if (_commonData.TestOutcome.ToUpper() == "P" && _commonData.isProdMode) { Trace.WriteLine("Submitting Cal-Leak data summary to database..."); string sqlConStr = CalLeakConfigs.Default.SqlConString; myCalLeakData.IsPass = true; // Pass using (SqlConnection conn = new SqlConnection(sqlConStr)) { conn.Open(); var retVal = SqlHelper.SubmitFinalCalLeakData(conn, ref myCalLeakData); Trace.WriteLine("CalLeak Data transfered to database."); // Create certificate history for the unit int id = Convert.ToInt32(retVal); string eqIds = SqlHelper.GetCsvStringEquipmentUsed(conn, 2, 1); // save UUT certificate details SqlHelper.SaveCertDetails(conn, id, eqIds); } Trace.WriteLine("Generating new Serial Number..."); // Autogenerate Serial Number string modelNumber = _uutData.Model; string serialNumber = string.Empty; DateTime todayDate = DateTime.Now; int workWeek = DateTimeHelper.GetIso8601WeekOfYear(todayDate); SernumInfo mySerialNumInfo = new SernumInfo(); mySerialNumInfo.Model = modelNumber; using (SqlConnection conn = new SqlConnection(sqlConStr)) { Trace.WriteLine("Connecting to SQL Database for serial number retrieval"); conn.Open(); Trace.WriteLine("Connection succeeded"); var newSernum = SqlHelper.GetNextRunningNumber(conn, ref mySerialNumInfo); //serialNumber = string.Format("MY{0}{1}{2}", todayDate.ToString("yy"), todayDate.ToString("MM"), newSernum); // commented out due to serial number generation must use YYWW serialNumber = string.Format("MY{0}{1}{2}", todayDate.ToString("yy"), workWeek.ToString("00"), newSernum); Trace.WriteLine("New Serial Number is = " + serialNumber); } Trace.WriteLine("Submitting new serial number to database.."); DateTime date = DateTime.Now; mySerialNumInfo.DummySernum = _uutData.SerNum; mySerialNumInfo.Model = _uutData.Model; mySerialNumInfo.IsPassTest = true; mySerialNumInfo.Sernum = serialNumber; mySerialNumInfo.LogDate = date; mySerialNumInfo.RunningNumber = mySerialNumInfo.RunningNumber;// +1; string conStr = CalLeakConfigs.Default.SqlConString; using (SqlConnection conn = new SqlConnection(conStr)) { conn.Open(); var retVal = SqlHelper.SubmitAutoGeneratedSernum(conn, ref mySerialNumInfo); Trace.WriteLine(retVal.ToString()); } Trace.WriteLine("Done"); } else if (_commonData.isProdMode) { Trace.WriteLine("Submitting Cal-Leak data summary to database..."); string sqlConStr = CalLeakConfigs.Default.SqlConString; myCalLeakData.IsPass = false; // Failed using (SqlConnection conn = new SqlConnection(sqlConStr)) { conn.Open(); var retVal = SqlHelper.SubmitFinalCalLeakData(conn, ref myCalLeakData); Trace.WriteLine("CalLeak Data transfered to database."); } } } catch (Exception) { } finally { _uutData = null; //_commonData = null; // todo: play sound for test completion or tower light } }
/// <summary> /// This method is called at the beginning of each test cases /// </summary> /// <param name="_uutData"></param> /// <param name="_commonData"></param> public void TestSetup(ref TestInfo myTestInfo, ref UUTData _uutData, ref CommonData _commonData) { try { if (_commonData.IsFailureExist) { return; } switch (myTestInfo.GroupLabel) { case "InitStation": { if (myInitStationTest == null) { myInitStationTest = new InitStation(); myInitStationTest.mySw = this.mySw; myInitStationTest.myScope = this.myScope; myInitStationTest.myNistData = this.myNistData; myInitStationTest.myLD = this.myLD; } } break; case "SystemCalibration1": case "SystemCalibration2": case "SystemCalibration3": { if (mySystemCalTest == null) { mySystemCalTest = new SystemCal(); mySystemCalTest.mySw = this.mySw; mySystemCalTest.myScope = this.myScope; mySystemCalTest.myNistData = this.myNistData; mySystemCalTest.myLD = this.myLD; } } break; case "CalLeakTest1": case "CalLeakTest2": case "CalLeakTest3": { if (myCalLeakTest == null) { myCalLeakTest = new DUTTest(); myCalLeakTest.mySw = this.mySw; myCalLeakTest.myScope = this.myScope; myCalLeakTest.myNistData = this.myNistData; myCalLeakTest.myLD = this.myLD; } } break; case "ButtonUp": { if (myButtonUpTest == null) { myButtonUpTest = new ButtonUp(); } } break; case "SystemMaintenance": { if (mySysMaintenance == null) { mySysMaintenance = new SysMaintenance(); mySystemCalTest.mySw = this.mySw; mySystemCalTest.myScope = this.myScope; mySystemCalTest.myNistData = this.myNistData; mySystemCalTest.myLD = this.myLD; } } break; default: break; } } catch (Exception) { throw; } }