public static eWipeStencilReason JudgeWipeByPriorityStrategy(InspectedPanel currentPanel, List <Box> boxes) { eWipeStencilReason ret = eWipeStencilReason.NoNeedToWipe; var wipeRoutines = PrinterManager.getInstance().JudgeWipeRoutines; foreach (var wipe in wipeRoutines) { ret = wipe.Judge(currentPanel, boxes); if (ret != eWipeStencilReason.NoNeedToWipe) { break; } } return(ret); }
public eWipeStencilReason Judge(InspectedPanel panel, List <Box> Candidates) { eWipeStencilReason ret = eWipeStencilReason.NoNeedToWipe; foreach (var box in Candidates) { if (box.Bridge_Status != eIndividualStatus.SOL_OK) { ret = eWipeStencilReason.PrintingResultsAreTooBad; break; } } return(ret); }
public eWipeStencilReason Judge(InspectedPanel panel, List <Box> Candidates) { eWipeStencilReason ret = eWipeStencilReason.NoNeedToWipe; foreach (var box in Candidates) { var value = box.Volume_p; //原: box.inspectResult.volume.dPercent; //Maximum/Minimum peak of single pad volume: 正常為55%~140% , 若超出異常) if (value < PeakOfSinglePadUnderLimit || value > PeakOfSinglePadOverLimit) { ret = eWipeStencilReason.PrintingResultsAreTooBad; break; } } return(ret); }
public eWipeStencilReason Judge(InspectedPanel panel, List <Box> Candidates) { eWipeStencilReason ret = eWipeStencilReason.NoNeedToWipe; foreach (var box in panel.FailList()) { if (box.Status == eOverallStatus.SOL_BY_RPASS) { continue; } if (box.ContinueFailCnt >= CntFailTimes) { ret = eWipeStencilReason.PrintingResultsAreTooBad; break; } } return(ret); }
public eWipeStencilReason Judge(InspectedPanel panel, List <Box> Candidates) { eWipeStencilReason ret = eWipeStencilReason.NoNeedToWipe; double avgVolPercent = 0; foreach (var box in Candidates) { avgVolPercent += box.Volume_p;//box.inspectResult.volume.dPercent; } avgVolPercent /= Candidates.Count(); //Overall average volume: 正常為92%~105% , 若外擴+-5%, 所以預設87%~110%為異常) if (avgVolPercent < AvgVolUnderLimit || avgVolPercent > AvgVolOverLimit) { ret = eWipeStencilReason.PrintingResultsAreTooBad; } return(ret); }