From 8bd46da0c9fbfe39a65d75b1d85692d8783f5905 Mon Sep 17 00:00:00 2001 From: patrick.xu <patrick.xu@broconcentric.com> Date: 星期三, 15 九月 2021 10:50:54 +0800 Subject: [PATCH] 现场修改 --- src/Bro.M071.Process/M071Process.cs | 83 ++++++++++++++++++++++++++++++++++++++--- 1 files changed, 77 insertions(+), 6 deletions(-) diff --git a/src/Bro.M071.Process/M071Process.cs b/src/Bro.M071.Process/M071Process.cs index a281648..8d8c7b7 100644 --- a/src/Bro.M071.Process/M071Process.cs +++ b/src/Bro.M071.Process/M071Process.cs @@ -531,6 +531,48 @@ return new ProcessResponse(); } + + [ProcessMethod("KeyUnitGenerate", "GenerateKeyUnitByKeyNames", "鐢熸垚鍗曢敭閰嶇疆", InvokeType.TestInvoke)] + public ProcessResponse GenerateKeyUnitByKeyNames(IOperationConfig opConfig, IDevice invokeDevice, IDevice sourceDevice) + { + if (opConfig is KeyUnitGenerateConfig config) + { + int i = 1; + bool isStart = false; + bool isEnd = false; + foreach (string k in Config.KeyNameCollection) + { + if (k == config.StartKey) + { + isStart = true; + } + else if (k == config.EndKey) + { + isEnd = true; + } + + if (isStart) + { + KeyUnit unit = new KeyUnit(); + unit.Key = unit.AliasName = k; + unit.SnapshotPointId = config.SnapshotPointId; + unit.KeyAlgorithemId = config.KeyAlgorithemId; + unit.KeyResultId = config.KeyResultId; + unit.ImageSeq = i; + + Config.KeyUnitCollection.Add(unit); + i++; + } + + if (isEnd) + { + break; + } + } + } + + return new ProcessResponse(true); + } #endregion #region 绉佹湁鏂规硶 @@ -582,7 +624,6 @@ } else { - _halconToolDict[toolKey].InputTupleDic["INPUT_Params"] = new HTuple(array); if (!_halconToolDict[toolKey].RunProcedure(out string error)) { @@ -595,14 +636,22 @@ double actualValue = double.Parse(_halconToolDict[toolKey].GetResultTuple("OUTPUT_Result").D.ToString(_precision)); m.Spec.ActualValue = actualValue; - //M071瑕佹眰瓒呴檺鏁版嵁鍦ㄥ厑璁歌寖鍥村唴鍘嬬缉鍒板悎鏍艰寖鍥村唴 - if (_allowedShift > 0 && m.Spec.MeasureResult != null && m.Spec.MeasureResult.Value == false) + if (m.MeasureType.ToLower() == "alignment" || m.MeasureType.ToLower() == "slant") { - m.Spec.ActualValue = m.Spec.StandardValue + (actualValue - m.Spec.StandardValue) * (m.Spec.Tolrenance_Positive - m.Spec.StandardValue) / (m.Spec.Tolrenance_Positive - m.Spec.StandardValue + _allowedShift); + //M071瑕佹眰瓒呴檺鏁版嵁鍦ㄥ厑璁歌寖鍥村唴鍘嬬缉鍒板悎鏍艰寖鍥村唴 + if (_allowedShift > 0 && m.Spec.MeasureResult != null && m.Spec.MeasureResult.Value == false) + { + m.Spec.ActualValue = m.Spec.StandardValue + (actualValue - m.Spec.StandardValue) * (m.Spec.Tolrenance_Positive - m.Spec.StandardValue) / (m.Spec.Tolrenance_Positive - m.Spec.StandardValue + _allowedShift); + } } } } } + } + + if (m.Spec?.ActualValue != null) + { + LogAsync(DateTime.Now, $"{m.Name}妫�娴嬬粨鏋渰m.Spec.ActualValue.Value.ToString(_precision)}", ""); } KeyIndicator indicator = new KeyIndicator(m.Id, m.DisplayLocation); @@ -1427,18 +1476,40 @@ var results = _halconToolDict[keyToolKey].GetResultTuple("OUTPUT_Results").DArr.ToList(); if (results.Count == 0 || results.Any(u => u < 0)) { - LogAsync(DateTime.Now, $"{k.AliasName}鍘熷鏁版嵁寮傚父", ""); + LogAsync(DateTime.Now, $"{k.AliasName}鍘熷鏁版嵁{string.Join(",", results)}寮傚父", ""); } else { //LogAsync(DateTime.Now, $"{k.AliasName}鍘熷鏁版嵁", $"{string.Join(" ", results)}"); results = results.Select(u => u - Config.PlanCompensation).ToList(); + + string resultStr = ""; resultDict = k.KeyResultList.ToDictionary(u => u, u => { int index = k.KeyResultList.IndexOf(u); - return results[index]; + + if (index < results.Count && index >= 0) + { + double origin = results[index]; + + var compensation = k.KeyCompensationCollection.FirstOrDefault(c => c.KeyResult == u); + if (compensation != null) + { + origin = origin + compensation.Compensation; + } + + resultStr += $"{u} {origin};"; + + return origin; + } + else + { + return -999.0; + } }); + + LogAsync(DateTime.Now, $"{k.AliasName}缁撴灉锛歿resultStr}", ""); } } } -- Gitblit v1.8.0