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"); } } } }
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]); } }