kingno
5 天以前 caf4dd3c752f5982adcd3708d2e8f976f81ff49f
Merge branch 'master' of http://gitblit.broconcentric.com:8088/r/M200
2个文件已修改
67 ■■■■■ 已修改文件
src/Bro.M141.Process/M141Config.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/Bro.M141.Process/M141Process_ImageCheck.cs 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/Bro.M141.Process/M141Config.cs
@@ -967,6 +967,20 @@
        [Description("true:启动离线测试 false:停止离线测试")]
        [DisplayName("测试开关")]
        public bool IsStart { get; set; } = true;
        [Category("检测功能")]
        [Description("图片在批量测试过程中最终图片结果会存储较慢需要设置延时确保图片不被资源自动释放")]
        [DisplayName("图片存图延时")]
        public int SaveImageTime { get; set; } = 0;
        [Category("检测功能")]
        [Description("true:启动OK测试 false:启动NG测试")]
        [DisplayName("是否测试OK图片")]
        public bool IsOK { get; set; } = true;
    }
    public class RealTimeAdjustDataDetail : IComplexDisplay
src/Bro.M141.Process/M141Process_ImageCheck.cs
@@ -520,14 +520,14 @@
                else
                {
                    _isDemoStarted = true;
                    OfflineDemoAsync(opConfig.ImageFolder);
                    OfflineDemoAsync(opConfig.ImageFolder, opConfig.IsOK, opConfig.SaveImageTime);
                }
            }
            return new ResponseMessage();
        }
        private async void OfflineDemoAsync(string imageFolder)
        private async void OfflineDemoAsync(string imageFolder,bool isok,int saveimagetime)
        {
            await Task.Run(() =>
            {
@@ -539,13 +539,19 @@
                    {
                        return;
                    }
                    var imageFile = Path.GetFileNameWithoutExtension(imageFileNames[i]);
                    if (imageFile.EndsWith("Fit"))
                    {
                        continue;
                    }
                    if (imageFile.EndsWith("OK")& isok == false)
                    {
                        continue;
                    }
                    if (imageFile.EndsWith("NG") & isok == true)
                    {
                        continue;
                    }
                    var nameDatas = imageFile.Split(new char[] { '_'}, StringSplitOptions.RemoveEmptyEntries).ToList();
                    if (nameDatas.Count != 5)
                    {
@@ -554,9 +560,9 @@
                    }
                    var sn = nameDatas[0];
                    var imageSeq = nameDatas[1];
                    var imageSeq = nameDatas[2][^1].ToString();
                    var measureBind = M141Config.MeasureBindCollection.FirstOrDefault(u => u.ImageSaveSeq == imageSeq);
                    if (measureBind == null || !measureBind.IsFixed)
                    {
                        LogAsync(DateTime.Now, EnumHelper.LogLevel.Assist, $"离线测试,工位{(measureBind == null ? "未匹配" : $"{measureBind.WorkPosition}未开启")}");
@@ -565,46 +571,15 @@
                    LogAsync(DateTime.Now, EnumHelper.LogLevel.Action, $"离线测试,产品{sn}开始工位{measureBind.WorkPosition}离线检测");
                    MLImageSet imgSet = new MLImageSet();
                    imgSet.HImage = new HalconDotNet.HImage(imageFileNames[i]);
                    imgSet.PID = sn;
                    var detectResults = ML.RunMLDetectionSync(imgSet, null, measureBind.DetectionId);
                    Thread.Sleep(saveimagetime);
                    imgSet.HImage?.Dispose();
                    imgSet.HImage = null;
                    //var defectFields = M141Config.DefectLocationSettings.FirstOrDefault(u => u.PositionCode == measureBind.WorkPosition);
                    //var list = detectResults.SelectMany(u => u.NetResults.SelectMany(m => m.DetectDetails)).ToList();
                    ////if (list.Count > 0)
                    ////{
                    ////    //list.ForEach(d =>
                    ////    //{
                    ////    //    //if (defectFields == null)
                    ////    //    //{
                    ////    //    //    d.Tag = "";
                    ////    //    //}
                    ////    //    //else
                    ////    //    //{
                    ////    //    //    RectangleF rect = new RectangleF(d.Rect.Point_LU.X, d.Rect.Point_LU.Y, d.Rect.Width, d.Rect.Height);
                    ////    //    //    //var rectList = defectFields.Display.RectDict.Where(u => rect.IntersectsWith(u.Value)).ToList();
                    ////    //    //    //if (rectList.Count > 0)
                    ////    //    //    //{
                    ////    //    //    //    d.Tag = string.Join(" ", rectList.Select(u => u.Key).OrderBy(u => u));
                    ////    //    //    //}
                    ////    //    //    //else
                    ////    //    //    //{
                    ////    //    //    //    d.Tag = "";
                    ////    //    //    //}
                    ////    //    //}
                    ////    //});
                    ////}
                    //Bitmap originImage = new Bitmap(imageFileNames[i]);
                    //DetectResultSaveExcelAsync(detectResults, sn, originImage, DateTime.Now);
                }
            });
        }