Example #1
0
        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);
        }
Example #2
0
        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);
        }
Example #3
0
        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);
        }