From 66d995d55f9c122328b4eceb99bc20aca3a42c10 Mon Sep 17 00:00:00 2001 From: wells <123> Date: 星期日, 12 七月 2020 21:04:16 +0800 Subject: [PATCH] debug --- src/Bro.M071.Process/UI/M071_MainForm.cs | 13 ++---- src/Bro.M071.Process/M071Process.cs | 39 +++++++++++++++---- src/Bro.M071.Process/M071Process_MotionCard.cs | 14 +++++- src/Bro.UI.Config/MenuForms/FrmOperation.resx | 4 +- src/Bro.Common.Device/DeviceBase/HDevEngineTool.cs | 11 +++++ src/Bro.M071.Process/UI/KeyIndicator.cs | 10 +++-- 6 files changed, 64 insertions(+), 27 deletions(-) diff --git a/src/Bro.Common.Device/DeviceBase/HDevEngineTool.cs b/src/Bro.Common.Device/DeviceBase/HDevEngineTool.cs index c235581..80164bd 100644 --- a/src/Bro.Common.Device/DeviceBase/HDevEngineTool.cs +++ b/src/Bro.Common.Device/DeviceBase/HDevEngineTool.cs @@ -255,5 +255,16 @@ return list; } + + public static HImage ConvertHObjectToHImage(this HObject obj) + { + HTuple pointer, type, width, heght; + HOperatorSet.GetImagePointer1(obj, out pointer, out type, out width, out heght); + + HImage img = new HImage(); + img.GenImage1(type, width, heght, pointer); + + return img; + } } } diff --git a/src/Bro.M071.Process/M071Process.cs b/src/Bro.M071.Process/M071Process.cs index 300a146..a0e47ae 100644 --- a/src/Bro.M071.Process/M071Process.cs +++ b/src/Bro.M071.Process/M071Process.cs @@ -647,8 +647,16 @@ int i = 0; u.KeyImages?.ForEach(image => { - string fileName = Path.Combine(dir, $"{measureName}_{u.Key}{(i == 0 ? "" : $"-{i}")}_{DateTime.Now.ToString("HHmmss")}.tiff"); - image.WriteImage("tiff", 0, fileName); + string fileName = ""; + try + { + fileName = Path.Combine(dir, $"{measureName}_{u.Key}{(i == 0 ? "" : $"-{i}")}_{DateTime.Now.ToString("HHmmss")}.tiff"); + image.WriteImage("tiff", 0, fileName); + } + catch (Exception) + { + LogAsync(DateTime.Now, "鍒囧浘淇濆瓨澶辫触", fileName); + } i++; }); @@ -668,6 +676,7 @@ string toolKey = (opConfig as CameraOprerationConfigBase).AlgorithemPath; HObject images = imgSet.HImage; LaserScanParam scanParam = JsonConvert.DeserializeObject<LaserScanParam>(imgSet.ImageData); + LogAsync(DateTime.Now, $"鎵弿鍙傛暟:{imgSet.ImageData}", ""); if (!string.IsNullOrWhiteSpace(toolKey)) { @@ -691,6 +700,7 @@ } HOperatorSet.CountObj(images, out HTuple count); + LogAsync(DateTime.Now, $"{snapshotName}鍒囧浘{count.I}寮�", ""); if (count == 0) { @@ -699,7 +709,7 @@ return; } - var excludeKeys = keys.Where(u => u.ImageSeq > count).ToList(); + var excludeKeys = keys.Where(u => u.ImageSeq > count.I).ToList(); if (excludeKeys.Count > 0) { LogAsync(DateTime.Now, $"{string.Join(" ", excludeKeys.Select(u => u.AliasName))}鏈湪鍥剧墖鑾峰彇搴忓垪涓�", ""); @@ -709,9 +719,19 @@ }); } - Parallel.For(1, count.I, (i) => + string dir = Path.Combine(Config.ImageSaveFolder, "Clips", $"{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"); + image.ConvertHObjectToHImage().WriteImage("tiff", 0, fileName); keys.Where(u => u.ImageSeq == i).ToList().ForEach(k => { @@ -727,8 +747,8 @@ else { _halconToolDict[keyToolKey].InputImageDic["INPUT_Image"] = image; - _halconToolDict[keyToolKey].InputTupleDic["INPUT_Resolution_X"] = scanParam.Resolution_X; - //_halconToolDict[keyToolKey].InputTupleDic["INPUT_Resolution_Z"] = scanParam.Resolution_Z; + _halconToolDict[keyToolKey].InputTupleDic["INPUT_Resolution_X"] = scanParam.Resolution_X / 1000000.0; + _halconToolDict[keyToolKey].InputTupleDic["INPUT_Resolution_Z"] = scanParam.Resolution_Z / 1000000.0; if (!_halconToolDict[keyToolKey].RunProcedure(out string error)) { LogAsync(DateTime.Now, $"{k.AliasName}妫�娴嬬畻娉曞紓甯革紝{error}", ""); @@ -753,13 +773,14 @@ keyBindList.ForEach(kb => { - kb.KeyImages.Add(image.Clone() as HImage); + kb.KeyImages.Add(image.ConvertHObjectToHImage()); kb.FillKeyValues(resultDict); }); }); - image.Dispose(); - }); + //image.Dispose(); + } + ); //if (count.I != 1) //{ diff --git a/src/Bro.M071.Process/M071Process_MotionCard.cs b/src/Bro.M071.Process/M071Process_MotionCard.cs index 7a91ce4..2821708 100644 --- a/src/Bro.M071.Process/M071Process_MotionCard.cs +++ b/src/Bro.M071.Process/M071Process_MotionCard.cs @@ -358,9 +358,17 @@ throw new ProcessException("鏈幏鍙栨澘鍗¤澶�"); bool? isToPause = null; //true 鏆傚仠 false 缁х画 - if (opConfig.InputPara != null && opConfig.InputPara.Count > 0) + //if (opConfig.InputPara != null && opConfig.InputPara.Count > 0) + //{ + // isToPause = opConfig.InputPara[0] == 1; + //} + if (opConfig.InputPara[0] == 10) { - isToPause = opConfig.InputPara[0] == 1; + isToPause = false; + } + else if (opConfig.InputPara[0] == 11) + { + isToPause = true; } if (isToPause == null) @@ -665,7 +673,7 @@ [ProcessMethod("", "SafetyBeamSignal", "瀹夊叏鍏夊箷淇″彿鐩戞帶锛屾甯窸N锛孫FF鏃舵姤璀�", InvokeType.TestInvoke)] public ProcessResponse SafetyBeamSignal(IOperationConfig opConfig, IDevice invokeDevice, IDevice sourceDevice) { - if (MachineState != MachineState.Running || MachineState != MachineState.Alarm) + if (MachineState != MachineState.Running && MachineState != MachineState.Alarm) return new ProcessResponse(true); if (opConfig.InputPara == null || opConfig.InputPara.Count == 0) diff --git a/src/Bro.M071.Process/UI/KeyIndicator.cs b/src/Bro.M071.Process/UI/KeyIndicator.cs index 2565ee3..24967a5 100644 --- a/src/Bro.M071.Process/UI/KeyIndicator.cs +++ b/src/Bro.M071.Process/UI/KeyIndicator.cs @@ -63,7 +63,10 @@ public override void Draw(Graphics g) { - g.DrawRectangle(Pen, DisplayRect); + if (ResultState == null) + { + g.DrawRectangle(Pen, DisplayRect); + } RectangleF rectFill = new RectangleF(DisplayRect.X + 1, DisplayRect.Y + 1, DisplayRect.Width - 2, DisplayRect.Height - 2); if (ResultState != null) { @@ -74,12 +77,11 @@ if (!ResultState.Value) { backColor = Color.Red; - foreColor = Color.White; + //foreColor = Color.White; } g.FillRectangle(new SolidBrush(Color.FromArgb(85, backColor)), rectFill); - g.DrawString(Text, Font, new SolidBrush(foreColor), (float)(DisplayRect.X + DisplayRect.Width / 2.0 - txtSize.Width / 2.0), (float)(DisplayRect.Y + DisplayRect.Height / 2.0 - txtSize.Height / 2.0)); - + g.DrawString(Text, Font, new SolidBrush(foreColor), (float)(DisplayRect.X + DisplayRect.Width / 2.0 - txtSize.Width / 2.0), (float)(DisplayRect.Y + DisplayRect.Height)); } } diff --git a/src/Bro.M071.Process/UI/M071_MainForm.cs b/src/Bro.M071.Process/UI/M071_MainForm.cs index e875fd6..6aa59b8 100644 --- a/src/Bro.M071.Process/UI/M071_MainForm.cs +++ b/src/Bro.M071.Process/UI/M071_MainForm.cs @@ -303,7 +303,6 @@ btnStartMeasure.Text = "寮�濮嬫祴閲�"; btnStartMeasure.Enabled = false; - btnStartMeasure.BackColor = Color.Red; break; case MachineState.Pause: btnStartMeasure.BackColor = lblMachineState.BackColor = Color.Yellow; @@ -312,25 +311,22 @@ btnStartMeasure.Text = "缁х画娴嬮噺"; btnStartMeasure.Enabled = true; - btnStartMeasure.BackColor = Color.Lime; break; case MachineState.Ready: btnStartMeasure.BackColor = lblMachineState.BackColor = Color.Lime; - btnStartMeasure.ForeColor = lblMachineState.ForeColor = Color.White; + btnStartMeasure.ForeColor = lblMachineState.ForeColor = Color.Black; lblMachineState.Text = "灏辩华"; btnStartMeasure.Text = "寮�濮嬫祴閲�"; btnStartMeasure.Enabled = true; - btnStartMeasure.BackColor = Color.Lime; break; case MachineState.Running: - btnStartMeasure.BackColor = lblMachineState.BackColor = Color.Lime; + btnStartMeasure.BackColor = lblMachineState.BackColor = Color.Transparent; btnStartMeasure.ForeColor = lblMachineState.ForeColor = Color.DarkGreen; lblMachineState.Text = "杩愯"; btnStartMeasure.Text = "鏆傚仠娴嬮噺"; btnStartMeasure.Enabled = true; - btnStartMeasure.BackColor = Color.Lime; break; case MachineState.Unknown: btnStartMeasure.BackColor = lblMachineState.BackColor = SystemColors.Control; @@ -338,7 +334,6 @@ lblMachineState.Text = "鏈煡"; btnStartMeasure.Enabled = false; - btnStartMeasure.BackColor = Color.Red; break; } })); @@ -424,11 +419,11 @@ } else if (btnStartMeasure.Text == "缁х画娴嬮噺") { - Process_M071.SwitchJobStatus(new OperationConfigBase() { InputPara = new List<int>() { 0 } }, null, null); + Process_M071.SwitchJobStatus(new OperationConfigBase() { InputPara = new List<int>() { 10 } }, null, null); } else { - Process_M071.SwitchJobStatus(new OperationConfigBase() { InputPara = new List<int>() { 1 } }, null, null); + Process_M071.SwitchJobStatus(new OperationConfigBase() { InputPara = new List<int>() { 11 } }, null, null); } } diff --git a/src/Bro.UI.Config/MenuForms/FrmOperation.resx b/src/Bro.UI.Config/MenuForms/FrmOperation.resx index 1420a0e..d3a1d92 100644 --- a/src/Bro.UI.Config/MenuForms/FrmOperation.resx +++ b/src/Bro.UI.Config/MenuForms/FrmOperation.resx @@ -125,7 +125,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAADm - CgAAAk1TRnQBSQFMAgEBAgEAAfABAAHwAQABGAEAARgBAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo + CgAAAk1TRnQBSQFMAgEBAgEAAfgBAAH4AQABGAEAARgBAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo AwABYAMAARgDAAEBAQABCAYAAQkYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA @@ -182,7 +182,7 @@ AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAuMC4w LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD4 - CAAAAk1TRnQBSQFMAwEBAAHwAQAB8AEAARgBAAEYAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA + CAAAAk1TRnQBSQFMAwEBAAH4AQAB+AEAARgBAAEYAQAE/wEJAQAI/wFCAU0BNgEEBgABNgEEAgABKAMA AWADAAEYAwABAQEAAQgGAAEJGAABgAIAAYADAAKAAQABgAMAAYABAAGAAQACgAIAA8ABAAHAAdwBwAEA AfABygGmAQABMwUAATMBAAEzAQABMwEAAjMCAAMWAQADHAEAAyIBAAMpAQADVQEAA00BAANCAQADOQEA AYABfAH/AQACUAH/AQABkwEAAdYBAAH/AewBzAEAAcYB1gHvAQAB1gLnAQABkAGpAa0CAAH/ATMDAAFm -- Gitblit v1.8.0