Ejemplo n.º 1
0
        private void MappCtrl_OnSelectedDieChanged(HTMappingControl.DieInfo dieInfo)
        {
            if (dieInfo.DieState == "未检测")
            {
                rchDieInfo.Text = "未检测";
                return;
            }
            else if (dieInfo.DieState == "合格")
            {
                rchDieInfo.Text = "合格";
                return;
            }

            foreach (InspectionData inspData in _lstInspectData)
            {
                if (inspData.RowIndex == dieInfo.RowIndex && inspData.ColumnIndex == dieInfo.ColumnIndex)
                {
                    //将检测结果显示在Die信息栏
                    rchDieInfo.Text = "不合格 NG信息:";
                    for (int i = 0; i < inspData.List_DefectData.Count(); i++)
                    {
                        DefectData dd = inspData.List_DefectData[i];
                        rchDieInfo.AppendText("Err No:" + (i + 1) + /* " Code:" + dd.DefectTypeIndex + */ "Describ:" + InspectNode.DieErrorDescript(dd.DefectTypeIndex) + "Detail:" + dd.ErrorDetail + "\n");
                    }
                }
            }
        }
Ejemplo n.º 2
0
        string _picFolder = null; //由料片开始检测消息带过来

        private void MapDetectCells_OnSelectedDieChanged(HTMappingControl.DieInfo dieInfo)
        {
            if (_currRecipe == null)
            {
                return;
            }
            if (string.IsNullOrEmpty(_picFolder))
            {
                MessageBox.Show("未开始检测/图片文件夹信息未设置");
                return;
            }
            _currICRow = dieInfo.RowIndex;
            _currICCol = dieInfo.ColumnIndex / _currRecipe.FovCount;
            _currFov   = _currRecipe.FovNames()[dieInfo.ColumnIndex % _currRecipe.FovCount];
            //载入图象
            string fovSubFolder = "Row_" + _currICRow + "-" + "Col_" + _currICCol + "-Fov_" + _currFov;
            string fovFolder    = _picFolder + "\\" + fovSubFolder;//存储图片的文件夹

            if (!Directory.Exists(fovFolder))
            {
                MessageBox.Show("Fov图片文件夹:\"" + fovFolder + "\"不存在");
                return;
            }


            string[] filesInFovFolder = Directory.GetFiles(fovFolder);//Fov文件夹中现有的文件
            if (null == filesInFovFolder || filesInFovFolder.Length == 0)
            {
                MessageBox.Show("Fov图片文件夹:\"" + fovFolder + "\"中没有文件");
                return;
            }


            string[] taskNames = _currRecipe.TaskNames(_currFov);
            if (_currTaskImgs != null)
            {
                foreach (HObject ho in _currTaskImgs)
                {
                    ho.Dispose();
                }
                _currTaskImgs = null;
            }
            _currTaskImgs = new List <HObject>();
            foreach (string taskName in taskNames)
            {
                HObject hoImg;
                HOperatorSet.GenEmptyObj(out hoImg);
                string taskImgFile = null;
                foreach (string s in filesInFovFolder)
                {
                    string exn = Path.GetExtension(s);
                    if (string.Compare(exn, ".bmp", true) != 0 &&
                        string.Compare(exn, ".tiff", true) != 0 &&
                        string.Compare(exn, ".tif", true) != 0 &&
                        string.Compare(exn, ".jpg", true) != 0 &&
                        string.Compare(exn, ".jpeg", true) != 0 &&
                        string.Compare(exn, ".png", true) != 0)
                    {
                        continue;                                     //先过滤掉非图像文件
                    }
                    string fnn = Path.GetFileNameWithoutExtension(s); //不带后缀的文件名
                    if (fnn.LastIndexOf(taskName) >= 0 &&
                        fnn.Length == (fnn.LastIndexOf(taskName) + taskName.Length))
                    {
                        taskImgFile = s;
                        break;
                    }
                }
                if (null == taskImgFile)
                {
                    MessageBox.Show("Task = " + taskName + "  图片文件不存在");
                    return;
                }


                HOperatorSet.ReadImage(out hoImg, taskImgFile);
                _currTaskImgs.Add(hoImg);
            }
            ShowFovImageResult();

            //更新错误列表
            int frIndex = (_currICRow * _currRecipe.ColCount + _currICCol) * _currRecipe.FovCount + _FovNameIndex(_currFov);

            if (frIndex < _lstFovResults.Count)
            {
                UpdateErrorDataGrid(_lstFovResults[frIndex]);
            }
        }