void Communication_OnResultComplete() { Double VoltageRef = Properties.Settings.Default.VoltageReference; int TestedPin = Communication.PinID1 + Communication.PinID2; Double Voltage = Math.Round((Communication.PinValue * VoltageRef) / 1023.0, 3); int BelongsToSocketId = GCItoDeviceIndex[TestedPin]; int DUTPin = GCItoDUTMap[TestedPin]; //LimitEntity LimitsForPin = DUTPintoLimit[DUTPin]; bool PinResult = false; ProductionTest.AddResult(BelongsToSocketId, DUTPin, Voltage); int NextPin = ProductionTest.GetNextPin(); if (NextPin != 0) { UpdateCurrentIteration(true); Communication.TestPin(NextPin); } else { foreach (int Socket in ProductionTest.TestResults.Keys) { int ProductionTestID = GCIDB.GetNextProductionTestID(); foreach (int TestedDUTPin in ProductionTest.TestResults[Socket].Keys) { LimitEntity LimitsForPin = DUTPintoLimit[TestedDUTPin]; double AverageVoltage = ProductionTest.TestResults[Socket][TestedDUTPin].GetVoltageAverage(); double StdDev = ProductionTest.TestResults[Socket][TestedDUTPin].GetStandardDeviation(); if (AverageVoltage < LimitsForPin.LCL || AverageVoltage > LimitsForPin.UCL) { PinResult = false; listProductionInfo1.SetResult(Socket, false); AddLog("Socket " + Socket + " DUT Pin [" + TestedDUTPin + "] Average Voltage: " + AverageVoltage + " FAILED"); } else { PinResult = true; AddLog("Socket " + Socket + " DUT Pin [" + TestedDUTPin + "] Average Voltage: " + AverageVoltage + " PASSED"); } for (int j = 0; j < ProductionTest.TestResults[Socket][TestedDUTPin].VoltageReadings.Count; j++) { double MeasuredVoltage = ProductionTest.TestResults[Socket][TestedDUTPin].VoltageReadings[j]; Dispatcher.BeginInvoke(new Action(delegate() { GCIDB.AddProductionTestData(textBatchName.Text, ProductionTestID, LoadedPartID, LoadedProductionLimitID, TestedDUTPin, (j - 1), MeasuredVoltage, AverageVoltage, StdDev, PinResult, DateTime.Now); })); } } } SetDisplayStates(true); UpdateCurrentIteration(false); listProductionInfo1.DisplaAll(true); // MessageBox.Show("Test Complete", "Part Finished", MessageBoxButton.OK, MessageBox.Information); } }
public void AddLimit(LimitEntity Limit) { if (CurrentList.Count == 0) { gridList.Children.Clear(); } Limits LimitToAdd = new Limits(); LimitToAdd.DutPinID = Limit.PinID; LimitToAdd.LCL = Limit.LCL; LimitToAdd.UCL = Limit.UCL; LimitToAdd.AverageValue = Limit.AverageVoltage; LimitToAdd.StandardDeviation = Limit.StdDevVoltage; // if (Limit.AverageVoltage > 0) // LimitToAdd.DisplayStats = true; // else // LimitToAdd.DisplayStats = false; // LimitToAdd.Top = (TotalLimits * 46) + 5; // this.AutoScrollMinSize = new Size(360, TotalLimits * 51); LimitToAdd.LimitsEdited += new EventHandler(Limits_Edited); CurrentList.Add(LimitToAdd); gridList.Rows = TotalLimits; gridList.Children.Add(LimitToAdd); }