领胜LDS 键盘AOI检测项目
xcd
2020-07-08 452d868c534280ec82aada44d96b47042e694e9e
src/Bro.M071.Process/M071Process.cs
@@ -47,14 +47,19 @@
            base.Open();
            SwitchBeep(false);
            SwitchLightGreen(false);
            SwitchLightRed(false);
            SwitchLightYellow(false);
            Reset(null, null, null);
            FullReset(null);
        }
        private void InitialSetting()
        {
            //数据库迁移检查
            DatabaseInitialize.Initialize();
            ////数据库迁移检查
            //DatabaseInitialize.Initialize();
            MotionCardSettingCheck();
@@ -73,21 +78,21 @@
                var snapshotPoint = Config.SnapshotPointCollection.FirstOrDefault(s => s.Id == u.SnapshotPointId && s.IsEnabled);
                if (snapshotPoint == null)
                    throw new ProcessException($"{u.AlignName}未设置可用拍照点位");
                    throw new ProcessException($"{u.AliasName}未设置可用拍照点位");
                if (u.ImageSeq < 1)
                    throw new ProcessException($"{u.AlignName}图片序号小于1");
                    throw new ProcessException($"{u.AliasName}图片序号小于1");
                var algo = Config.KeyAlgorithemCollection.FirstOrDefault(a => a.Id == u.KeyAlgorithemId);
                if (algo == null)
                    throw new ProcessException($"{u.AlignName}未设置检测算法");
                    throw new ProcessException($"{u.AliasName}未设置检测算法");
                u.KeyAlgorithemPath = algo.AlgorithemPath;
                LoadHalconTool(u.KeyAlgorithemPath, u.AlignName);
                LoadHalconTool(u.KeyAlgorithemPath, u.AliasName);
                var resultSet = Config.KeyResultCollection.FirstOrDefault(r => r.Id == u.KeyResultId);
                if (resultSet == null)
                    throw new ProcessException($"{u.AlignName}未设置检测结果配置");
                    throw new ProcessException($"{u.AliasName}未设置检测结果配置");
                u.KeyResultList = new List<string>(resultSet.Results);
            });
@@ -506,7 +511,7 @@
                 var excludeKeys = keys.Where(u => u.ImageSeq > count).ToList();
                 if (excludeKeys.Count > 0)
                 {
                     LogAsync(DateTime.Now, $"{string.Join(" ", excludeKeys.Select(u => u.AlignName))}未在图片获取序列中", "");
                     LogAsync(DateTime.Now, $"{string.Join(" ", excludeKeys.Select(u => u.AliasName))}未在图片获取序列中", "");
                     keyBindCollection.Where(k => excludeKeys.Any(u => u.Key == k.Key)).ToList().ForEach(k =>
                          {
                              k.FillKeyValues(null);
@@ -523,24 +528,24 @@
                             var keyBindList = keyBindCollection.Where(u => u.Key == k.Key).ToList();
                             string keyToolKey = k.AlignName + "|" + k.KeyAlgorithemPath;
                             string keyToolKey = k.AliasName + "|" + k.KeyAlgorithemPath;
                             if (!_halconToolDict.ContainsKey(keyToolKey))
                             {
                                 LogAsync(DateTime.Now, $"{k.AlignName}检测算法未初始化", "");
                                 LogAsync(DateTime.Now, $"{k.AliasName}检测算法未初始化", "");
                             }
                             else
                             {
                                 _halconToolDict[keyToolKey].InputImageDic["INPUT_Image"] = image;
                                 if (!_halconToolDict[keyToolKey].RunProcedure(out string error))
                                 {
                                     LogAsync(DateTime.Now, $"{k.AlignName}检测算法异常,{error}", "");
                                     LogAsync(DateTime.Now, $"{k.AliasName}检测算法异常,{error}", "");
                                 }
                                 else
                                 {
                                     var results = _halconToolDict[keyToolKey].GetResultTuple("OUTPUT_Results").HTupleToDouble();
                                     if (results.Count == 0 || results.Any(u => u < 0))
                                     {
                                         LogAsync(DateTime.Now, $"{k.AlignName}检测结果异常", "");
                                         LogAsync(DateTime.Now, $"{k.AliasName}检测结果异常", "");
                                     }
                                     else
                                     {