From ebcc1d53f14112363bbf539bcaf0202aadcdc9d7 Mon Sep 17 00:00:00 2001
From: C3032 <1057644574@qq.com>
Date: 星期一, 13 四月 2026 12:58:58 +0800
Subject: [PATCH] 2D取图计数功能完成
---
LB_SmartVision/Forms/Pages/ProcessPage/ProcessControl.cs | 90 +++++++++++++++++++++++++++-----------------
1 files changed, 55 insertions(+), 35 deletions(-)
diff --git a/LB_SmartVision/Forms/Pages/ProcessPage/ProcessControl.cs b/LB_SmartVision/Forms/Pages/ProcessPage/ProcessControl.cs
index a3e21fd..56910c0 100644
--- a/LB_SmartVision/Forms/Pages/ProcessPage/ProcessControl.cs
+++ b/LB_SmartVision/Forms/Pages/ProcessPage/ProcessControl.cs
@@ -10,6 +10,35 @@
{
UserHSmartWindowControl UserHSmartWindowControl = new UserHSmartWindowControl();
+ public event ProcessRunBllRun OnProcessRunBllRun;
+
+ private void onProcessRunBllRun()
+ {
+ if (OnProcessRunBllRun != null)
+ {
+ OnProcessRunBllRun();
+ }
+ }
+
+ public string Title = string.Empty;
+
+ public event Control_MouseDown event_MouseDown;
+ public event Control_MouseDoubleClick event_MouseDoubleClick;
+ private void event_mouseDown(object sender, MouseEventArgs e)
+ {
+ if (event_MouseDown != null)
+ {
+ event_MouseDown(sender, e);
+ }
+ }
+ private void event_mouseDoubleClick(object sender, MouseEventArgs e)
+ {
+ if (event_MouseDoubleClick != null)
+ {
+ event_MouseDoubleClick(this, e);
+ }
+ }
+
ProcessRunBll ProcessRunBll
{
get
@@ -38,11 +67,17 @@
{
this.panel1.Controls.Add(this.UserHSmartWindowControl);
this.UserHSmartWindowControl.Dock = DockStyle.Fill;
-
+ this.UserHSmartWindowControl.event_MouseDoubleClick += event_mouseDoubleClick;
+ this.UserHSmartWindowControl.event_MouseDown += event_mouseDown;
SetTitle(_Layout.ProcessName);
-
+ Title = _Layout.Title;
if (ProcessRunBll != null)
this.label1.Text = $"鎬绘暟锛歿ProcessRunBll.total}";
+ this.isClosed = false;
+ var TaskPhotoContinue = Task.Factory.StartNew(() =>
+ {
+ ThreadCircleRun();
+ });
}
public void SetTitle(string title)
@@ -72,9 +107,7 @@
}));
}
else
- {
UserHSmartWindowControl.ClearObj();
- }
}
/// <summary>
@@ -93,9 +126,7 @@
}));
}
else
- {
this.label1.Text = $"鎬绘暟锛歿ProcessRunBll.total}";
- }
}
public bool Run(out string msg)
@@ -107,12 +138,10 @@
}
if (isCircleRuning || ProcessRunBll.bRuning)
- {
ProcessRunBll.LogInfo($"{ProcessRunBll.Name}姝e湪杩愯", LogInfoType.ERROR);
- }
- ProcessRunBll.Run();
-
+ //ProcessRunBll.Run();
+ onProcessRunBllRun();
msg = ProcessRunBll.Msg;
return ProcessRunBll.Result;
}
@@ -126,9 +155,7 @@
try
{
if (ProcessRunBll == null)
- {
return;
- }
ProcessRunBll.LogInfo(string.Format("娴佺▼[{0}]寮�濮嬭繍琛�", this.ProcessRunBll.Name), LogInfoType.INFO);
@@ -136,9 +163,7 @@
result = Run(out msg);
if (ProcessRunBll.GetImage(_Layout, out _, out HObject RecordImage))
- {
ShowHoImage(RecordImage);
- }
}
catch { msg = "杩愯鍑虹幇浜嗗紓甯�"; }
@@ -159,37 +184,36 @@
if (isCircleRuning)
{
- threadCircleRun = new Thread(ThreadCircleRun);
- threadCircleRun.IsBackground = true;
- threadCircleRun.Start();
+ this.mAutoResetEvent.Set();
}
else
{
isCircleRuning = false;
- //threadCircleRun.Abort();
}
+ if (!isCircleRuning)
+ {
+ ProcessRunBll.LogInfo($"{ProcessRunBll.Name}鍏抽棴杩炵画杩愯", LogInfoType.PASS);
+ return;
+ }
+
+ ProcessRunBll.LogInfo($"{ProcessRunBll.Name}寮�鍚繛缁繍琛�", LogInfoType.WARN);
}
catch { }
}
-
- Thread threadCircleRun = null;
+ private AutoResetEvent mAutoResetEvent = new AutoResetEvent(false);
+ bool isClosed = false;
void ThreadCircleRun()
{
- if (!isCircleRuning)
+ while (!isClosed)
{
- ProcessRunBll.LogInfo($"{ProcessRunBll.Name}鍏抽棴杩炵画杩愯", LogInfoType.PASS);
- return;
- }
-
- ProcessRunBll.LogInfo($"{ProcessRunBll.Name}寮�鍚繛缁繍琛�", LogInfoType.WARN);
-
- while (isCircleRuning)
- {
- //this.BeginInvoke(new Action(() =>
- //{
try
{
+ if (isCircleRuning == false)
+ {
+ this.mAutoResetEvent.WaitOne();
+ }
+
ProcessRunBll.LogInfo($"{ProcessRunBll.Name}寮�濮嬭繍琛�", LogInfoType.WARN);
ClearObj();
bool result = ProcessRunBll.Run();
@@ -199,13 +223,9 @@
, result ? LogInfoType.PASS : LogInfoType.ERROR);
if (ProcessRunBll.GetImage(_Layout, out _, out HObject RecordImage))
- {
ShowHoImage(RecordImage);
- }
}
catch { }
- //}));
-
Thread.Sleep(33);
}
}
--
Gitblit v1.9.3