From 1491846b4736bc2e79604086acfd8544aa3ba384 Mon Sep 17 00:00:00 2001 From: wells.liu <wells.liu@broconcentric.com> Date: 星期一, 07 九月 2020 12:09:46 +0800 Subject: [PATCH] Merge branch 'master' of http://gitblit.broconcentric.com:8088/r/M071 --- src/Bro.M071.Process/M071Process.cs | 142 +++++++++++++++++++++++++++++----------------- 1 files changed, 89 insertions(+), 53 deletions(-) diff --git a/src/Bro.M071.Process/M071Process.cs b/src/Bro.M071.Process/M071Process.cs index 325cccc..a3a23dc 100644 --- a/src/Bro.M071.Process/M071Process.cs +++ b/src/Bro.M071.Process/M071Process.cs @@ -48,6 +48,9 @@ public event Action OnFullResetDone; #endregion + string _precision = "f3"; + + public override void Open() { InitialSetting(); @@ -63,6 +66,11 @@ Reset(null, null, null); FullReset(null); + + if (Config.Precision > 0) + { + _precision = "f" + Config.Precision; + } } private void InitialMotionCardBaseAxisAlarm() @@ -367,25 +375,36 @@ } else { - var array = m.KeyUnitCollection.SelectMany(u => u.MeasureValueDict.Values.ToList().ConvertAll(v => v ?? -999)).ToArray(); - _halconToolDict[toolKey].InputTupleDic["INPUT_Params"] = new HTuple(array); - if (!_halconToolDict[toolKey].RunProcedure(out string error)) + //var array = m.KeyUnitCollection.SelectMany(u => u.MeasureValueDict.Values.ToList().ConvertAll(v => v ?? -999)).ToArray(); + var array = m.KeyUnitCollection.SelectMany(u => u.MeasureValueDict.Values.Select(v => v ?? -999)).ToArray(); + + if (array == null || array.Length == 0) { - LogAsync(DateTime.Now, $"{m.GetDisplayText()}{m.Spec.Code}绠楁硶寮傚父,{error}", ""); + LogAsync(DateTime.Now, $"{m.GetDisplayText()}{m.Spec.Code}鏈兘鑾峰彇瀵瑰簲妫�娴嬪��", ""); m.Spec.ActualValue = -999; } else { - m.Spec.ActualValue = double.Parse(_halconToolDict[toolKey].GetResultTuple("OUTPUT_Result").D.ToString("f2")); - LogAsync(DateTime.Now, $"{m.GetDisplayText()}鏁版嵁{m.Spec.ActualValue}锛岀粨鏋渰(m.Spec.MeasureResult == null ? "TBD" : (m.Spec.MeasureResult == true ? "OK" : "NG"))}", ""); + + _halconToolDict[toolKey].InputTupleDic["INPUT_Params"] = new HTuple(array); + if (!_halconToolDict[toolKey].RunProcedure(out string error)) + { + LogAsync(DateTime.Now, $"{m.GetDisplayText()}{m.Spec.Code}绠楁硶寮傚父,{error}", ""); + m.Spec.ActualValue = -999; + } + else + { + m.Spec.ActualValue = double.Parse(_halconToolDict[toolKey].GetResultTuple("OUTPUT_Result").D.ToString(_precision)); + //LogAsync(DateTime.Now, $"{m.GetDisplayText()}鏁版嵁{m.Spec.ActualValue}锛岀粨鏋渰(m.Spec.MeasureResult == null ? "TBD" : (m.Spec.MeasureResult == true ? "OK" : "NG"))}", ""); + } } } } - LogAsync(DateTime.Now, $"{m.GetDisplayText()}妫�娴嬬粨鏋�", $"{((m.Spec.MeasureResult ?? false) ? "OK" : "NG")}"); + //LogAsync(DateTime.Now, $"{m.GetDisplayText()}妫�娴嬬粨鏋�", $"{((m.Spec.MeasureResult ?? false) ? "OK" : "NG")}"); KeyIndicator indicator = new KeyIndicator(m.Id, m.DisplayLocation); - indicator.Text = (m.Spec.ActualValue == null || m.Spec.ActualValue == -999) ? "NA" : m.Spec.ActualValue.Value.ToString("f2"); + indicator.Text = (m.Spec.ActualValue == null || m.Spec.ActualValue == -999) ? "NA" : m.Spec.ActualValue.Value.ToString(_precision); indicator.ResultState = m.Spec.MeasureResult; pMeasure.ElementList.Add(indicator); //杈撳嚭鍥惧舰鍩哄厓鍒扮晫闈� @@ -517,7 +536,7 @@ measurementUnitResult.Keys = measurementUnit.KeyUnitCollection[0].KeyResultId + "~" + measurementUnit.KeyUnitCollection[measurementUnit.KeyUnitCollection.Count() - 1].KeyResultId; } measurementUnitResult.MeasurementType = measurementUnit.MeasureType; - measurementUnitResult.MeasurementValue = measurementUnit.Spec.ActualValue == null ? "NA" : measurementUnit.Spec.ActualValue.Value.ToString("f2"); + measurementUnitResult.MeasurementValue = measurementUnit.Spec.ActualValue == null ? "NA" : measurementUnit.Spec.ActualValue.Value.ToString(_precision); measurementUnitResult.MeasurementResult = measurementUnit.Spec.MeasureResult.Value ? "OK" : "NG"; measurementUnitResults.Add(measurementUnitResult); @@ -533,7 +552,7 @@ keyUnitData.ProductionBarcode = productionMeasurementRecords.ProductionBarcode; keyUnitData.Key = keyUnit.Key; keyUnitData.MeasurementItem = keyValue.Key; - keyUnitData.ItemValue = keyValue.Value == null ? "NA" : keyValue.Value.Value.ToString("f2"); + keyUnitData.ItemValue = keyValue.Value == null ? "NA" : keyValue.Value.Value.ToString(_precision); keyUnitDatas.Add(keyUnitData); MeasurementAndKeyDataRelation measurementAndKeyDataRelation = new MeasurementAndKeyDataRelation(); @@ -758,8 +777,12 @@ { int slantStartCol = slantSheet.Dimension.Columns; - var barcodeCell = slantSheet.Cells[1, slantStartCol + 1, 1, slantStartCol + 2]; - barcodeCell.Merge = true; + //var barcodeCell = slantSheet.Cells[1, slantStartCol + 1, 1, slantStartCol + 2]; + //barcodeCell.Merge = true; + //barcodeCell.Value = exportData.ProductionMeasurementRecord.ProductionBarcode; + //SetTitleCell(barcodeCell); + + var barcodeCell = slantSheet.Cells[1, slantStartCol + 1]; barcodeCell.Value = exportData.ProductionMeasurementRecord.ProductionBarcode; SetTitleCell(barcodeCell); @@ -767,9 +790,9 @@ valueCell.Value = "Value"; SetTitleCell(valueCell); - var resultCell = slantSheet.Cells[2, slantStartCol + 2]; - resultCell.Value = "Result"; - SetTitleCell(resultCell); + //var resultCell = slantSheet.Cells[2, slantStartCol + 2]; + //resultCell.Value = "Result"; + //SetTitleCell(resultCell); slantMeasures.ForEach(m => { @@ -781,15 +804,15 @@ } var cellValue = slantSheet.Cells[rowIndex + 1 + 2, slantStartCol + 1]; - var cellResult = slantSheet.Cells[rowIndex + 1 + 2, slantStartCol + 2]; + //var cellResult = slantSheet.Cells[rowIndex + 1 + 2, slantStartCol + 2]; cellValue.Value = m.MeasurementValue; - cellResult.Value = m.MeasurementResult; + //cellResult.Value = m.MeasurementResult; if (m.MeasurementResult != "OK") { SetNGCell(cellValue); - SetNGCell(cellResult); + //SetNGCell(cellResult); } }); } @@ -804,7 +827,7 @@ int allRowNums = alignmentSheet.Dimension.Rows; int aligneStartCol = alignmentSheet.Dimension.Columns; - for (int i = 3; i <= allRowNums; i++) + for (int i = 3; i <= alignmentSheet.Dimension.End.Row; i++) { string keys = alignmentSheet.Cells[i, 1].Value.ToString(); string position = alignmentSheet.Cells[i, 2].Value.ToString(); @@ -812,8 +835,12 @@ keysList.Add($"{keys}_{position}"); } - var barcodeCell = alignmentSheet.Cells[1, aligneStartCol + 1, 1, aligneStartCol + 2]; - barcodeCell.Merge = true; + //var barcodeCell = alignmentSheet.Cells[1, aligneStartCol + 1, 1, aligneStartCol + 2]; + //barcodeCell.Merge = true; + //barcodeCell.Value = exportData.ProductionMeasurementRecord.ProductionBarcode; + //SetTitleCell(barcodeCell); + + var barcodeCell = alignmentSheet.Cells[1, aligneStartCol + 1]; barcodeCell.Value = exportData.ProductionMeasurementRecord.ProductionBarcode; SetTitleCell(barcodeCell); @@ -821,9 +848,9 @@ valueCell.Value = "Value"; SetTitleCell(valueCell); - var resultCell = alignmentSheet.Cells[2, aligneStartCol + 2]; - resultCell.Value = "Result"; - SetTitleCell(resultCell); + //var resultCell = alignmentSheet.Cells[2, aligneStartCol + 2]; + //resultCell.Value = "Result"; + //SetTitleCell(resultCell); alignmentMeasures.ForEach(a => { @@ -835,15 +862,15 @@ } var cellValue = alignmentSheet.Cells[rowIndex + 1 + 2, aligneStartCol + 1]; - var cellResult = alignmentSheet.Cells[rowIndex + 1 + 2, aligneStartCol + 2]; + //var cellResult = alignmentSheet.Cells[rowIndex + 1 + 2, aligneStartCol + 2]; cellValue.Value = a.MeasurementValue; - cellResult.Value = a.MeasurementResult; + //cellResult.Value = a.MeasurementResult; if (a.MeasurementResult != "OK") { SetNGCell(cellValue); - SetNGCell(cellResult); + //SetNGCell(cellResult); } }); } @@ -867,8 +894,12 @@ keysList.Add($"{keys}_{position}"); } - var barcodeCell = rowAlignmentSheet.Cells[1, aligneStartCol + 1, 1, aligneStartCol + 2]; - barcodeCell.Merge = true; + //var barcodeCell = rowAlignmentSheet.Cells[1, aligneStartCol + 1, 1, aligneStartCol + 2]; + //barcodeCell.Merge = true; + //barcodeCell.Value = exportData.ProductionMeasurementRecord.ProductionBarcode; + //SetTitleCell(barcodeCell); + + var barcodeCell = rowAlignmentSheet.Cells[1, aligneStartCol + 1]; barcodeCell.Value = exportData.ProductionMeasurementRecord.ProductionBarcode; SetTitleCell(barcodeCell); @@ -876,9 +907,9 @@ valueCell.Value = "Value"; SetTitleCell(valueCell); - var resultCell = rowAlignmentSheet.Cells[2, aligneStartCol + 2]; - resultCell.Value = "Result"; - SetTitleCell(resultCell); + //var resultCell = rowAlignmentSheet.Cells[2, aligneStartCol + 2]; + //resultCell.Value = "Result"; + //SetTitleCell(resultCell); rowAlignmentMeasures.ForEach(a => { @@ -890,15 +921,15 @@ } var cellValue = rowAlignmentSheet.Cells[rowIndex + 1 + 2, aligneStartCol + 1]; - var cellResult = rowAlignmentSheet.Cells[rowIndex + 1 + 2, aligneStartCol + 2]; + //var cellResult = rowAlignmentSheet.Cells[rowIndex + 1 + 2, aligneStartCol + 2]; cellValue.Value = a.MeasurementValue; - cellResult.Value = a.MeasurementResult; + //cellResult.Value = a.MeasurementResult; if (a.MeasurementResult != "OK") { SetNGCell(cellValue); - SetNGCell(cellResult); + //SetNGCell(cellResult); } }); } @@ -913,10 +944,10 @@ private void SetNGCell(ExcelRange cell) { - cell.Style.Font.Color.SetColor(Color.White); + cell.Style.Font.Color.SetColor(Color.Red); cell.Style.Font.Bold = true; - cell.Style.Fill.PatternType = ExcelFillStyle.Solid; - cell.Style.Fill.BackgroundColor.SetColor(Color.Red); + //cell.Style.Fill.PatternType = ExcelFillStyle.Solid; + //cell.Style.Fill.BackgroundColor.SetColor(Color.Red); } private void SetTitleCell(ExcelRange cell, bool isCenterAlign = true) @@ -1035,7 +1066,9 @@ var keyBindCollection = measureList.SelectMany(u => u.KeyUnitCollection).Where(u => keys.Any(k => k.Key == u.Key)).ToList(); string toolKey = (opConfig as CameraOprerationConfigBase).AlgorithemPath; - HObject images = imgSet.HImage; + //HObject images = imgSet.HImage; + + HObject images = new HObject(); LaserScanParam scanParam = JsonConvert.DeserializeObject<LaserScanParam>(imgSet.ImageData); LogAsync(DateTime.Now, $"鎵弿鍙傛暟:{imgSet.ImageData}", ""); @@ -1049,8 +1082,8 @@ return; } - string fileName = Path.Combine(Config.ImageSaveFolder, "BeforeRun", $"{DateTime.Now.ToString("yyyyMMddHHmmssfff")}.tif"); - imgSet.HImage.WriteImage("tiff", 0, fileName); + //string fileName = Path.Combine(Config.ImageSaveFolder, "BeforeRun", $"{DateTime.Now.ToString("yyyyMMddHHmmssfff")}.tif"); + //imgSet.HImage.WriteImage("tiff", 0, fileName); _halconToolDict[toolKey].InputImageDic["INPUT_Image"] = imgSet.HImage; if (!_halconToolDict[toolKey].RunProcedure(out string error)) @@ -1083,22 +1116,22 @@ }); } - string dir = Path.Combine(Config.ImageSaveFolder, "Clips", $"{DateTime.Now.ToString("yyyyMMdd")}", $"{snapshotName}_{DateTime.Now.ToString("HHmmss")}"); - if (!Directory.Exists(dir)) - { - Directory.CreateDirectory(dir); - } + //string dir = Path.Combine(Config.ImageSaveFolder, "Clips", $"{DateTime.Now.ToString("yyyyMMdd")}", $"{snapshotName}_{DateTime.Now.ToString("HHmmss")}"); + //if (!Directory.Exists(dir)) + //{ + // Directory.CreateDirectory(dir); + //} //Parallel.For(1, count.I + 1, (i) => for (int i = 1; i <= count.I; i++) { HOperatorSet.SelectObj(images, out HObject image, i); - string fileName = Path.Combine(dir, $"{i}.tif"); - using (HImage temp = image.ConvertHObjectToHImage()) - { - temp.WriteImage("tiff", 0, fileName); - } + //string fileName = Path.Combine(dir, $"{i}.tif"); + //using (HImage temp = image.ConvertHObjectToHImage()) + //{ + // temp.WriteImage("tiff", 0, fileName); + //} keys.Where(u => u.ImageSeq == i).ToList().ForEach(k => { @@ -1115,6 +1148,7 @@ { _halconToolDict[keyToolKey].InputImageDic["INPUT_Image"] = image; _halconToolDict[keyToolKey].InputTupleDic["INPUT_Resolution_X"] = scanParam.Resolution_X / 1000000.0; + _halconToolDict[keyToolKey].InputTupleDic["INPUT_Resolution_Y"] = scanParam.Resolution_Y / 1000000.0; _halconToolDict[keyToolKey].InputTupleDic["INPUT_Resolution_Z"] = scanParam.Resolution_Z / 1000000.0; _halconToolDict[keyToolKey].InputTupleDic["INPUT_ImageId"] = $"{k.AliasName}_{DateTime.Now.ToString("HHmmssfff")}.tif"; if (!_halconToolDict[keyToolKey].RunProcedure(out string error)) @@ -1130,8 +1164,9 @@ } else { - //results = results.Select(u => double.Parse(u.ToString("f2"))).ToList(); - LogAsync(DateTime.Now, $"{k.AliasName}鍘熷鏁版嵁", $"{string.Join(" ", results)}"); + //LogAsync(DateTime.Now, $"{k.AliasName}鍘熷鏁版嵁", $"{string.Join(" ", results)}"); + + results = results.Select(u => u - Config.PlanCompensation).ToList(); resultDict = k.KeyResultList.ToDictionary(u => u, u => { int index = k.KeyResultList.IndexOf(u); @@ -1152,6 +1187,7 @@ } //); + images.Dispose(); //if (count.I != 1) //{ // hImage?.Dispose(); -- Gitblit v1.8.0