diff --git a/Rs.Controls/CameraTemplate.cs b/Rs.Controls/CameraTemplate.cs
index bf3da8e..103f99e 100644
--- a/Rs.Controls/CameraTemplate.cs
+++ b/Rs.Controls/CameraTemplate.cs
@@ -57,6 +57,10 @@ namespace Rs.MotionPlat
double matchResultScore = 0.0;
string LightName = "";
bool bGrab = false;
+ ///
+ /// 自定义拍照事件
+ ///
+ public event Action CustomDefineGrabEvent;
public CameraTemplate()
{
InitializeComponent();
@@ -265,40 +269,50 @@ namespace Rs.MotionPlat
private void btnGrab_Click(object sender, EventArgs e)
{
- LightName = SysConfigParam.GetValue(cameraName + "LightName");
- if(!string.IsNullOrEmpty(LightName))
+ ImageProcess.ClearManualTrigger();
+ HikCamera.Instance.SetTrigger(cameraName, ETriggerMode.Manual);
+ bGrabContinue = false;
+ if (CustomDefineGrabEvent!=null)
{
- if (!string.IsNullOrEmpty(cameraName))
+ CustomDefineGrabEvent?.Invoke();
+ LoadImage();
+ }
+ else
+ {
+ LightName = SysConfigParam.GetValue(cameraName + "LightName");
+ if (!string.IsNullOrEmpty(LightName))
{
- ImageProcess.ClearManualTrigger();
- bGrabContinue = false;
- bGrab = true;
- HikCamera.Instance.SetTrigger(cameraName, ETriggerMode.Manual);
- if(ManualGrab==null)
+ if (!string.IsNullOrEmpty(cameraName))
{
- IoManager.Instance.WriteOut(LightName, 0);
- Thread.Sleep(50);
- IoManager.Instance.WriteOut(LightName, 1);
- Thread.Sleep(100);
- HikCamera.Instance.Grab(cameraName);
+ bGrab = true;
+
+ if (ManualGrab == null)
+ {
+ IoManager.Instance.WriteOut(LightName, 0);
+ Thread.Sleep(50);
+ IoManager.Instance.WriteOut(LightName, 1);
+ Thread.Sleep(100);
+ HikCamera.Instance.Grab(cameraName);
+ }
+ else
+ {
+ ManualGrab?.Invoke();
+ }
+ //Thread.Sleep(50);
+
+ LoadImage();
}
else
{
- ManualGrab?.Invoke();
+ Msg.ShowError("请先先择相机");
}
- //Thread.Sleep(50);
-
- LoadImage();
}
else
{
- Msg.ShowError("请先先择相机");
+ Msg.ShowError("未设置相机对应的光源,请到变量中配置!");
}
}
- else
- {
- Msg.ShowError("未设置相机对应的光源,请到变量中配置!");
- }
+
}
bool bGrabContinue = false;
@@ -308,27 +322,57 @@ namespace Rs.MotionPlat
}
private void btnGrabContinue_Click(object sender, EventArgs e)
{
- LightName = SysConfigParam.GetValue(cameraName + "LightName");
- if (!string.IsNullOrEmpty(cameraName))
+ bGrabContinue = !bGrabContinue;
+ if (bGrabContinue)
+ {
+ btnGrabContinue.Text = "停止取图";
+ }
+ else
+ {
+ btnGrabContinue.Text = "连续取图";
+ }
+ if (CustomDefineGrabEvent!=null)
{
- HikCamera.Instance.SetTrigger(cameraName, ETriggerMode.Manual);
- bGrabContinue = !bGrabContinue;
-
Task.Run(() => {
while (bGrabContinue)
{
bGrab = true;
ImageProcess.ClearManualTrigger();
- IoManager.Instance.WriteOut(LightName,0);
- Thread.Sleep(50);
- IoManager.Instance.WriteOut(LightName, 1);
- Thread.Sleep(50);
- HikCamera.Instance.Grab(cameraName);
+ CustomDefineGrabEvent?.Invoke();
LoadImage();
Thread.Sleep(300);
}
});
- }
+ }
+ else
+ {
+ LightName = SysConfigParam.GetValue(cameraName + "LightName");
+ if (!string.IsNullOrEmpty(cameraName))
+ {
+ HikCamera.Instance.SetTrigger(cameraName, ETriggerMode.Manual);
+ //bGrabContinue = !bGrabContinue;
+ Task.Run(() => {
+ while (bGrabContinue)
+ {
+ bGrab = true;
+ ImageProcess.ClearManualTrigger();
+ IoManager.Instance.WriteOut(LightName, 0);
+ Thread.Sleep(50);
+ IoManager.Instance.WriteOut(LightName, 1);
+ Thread.Sleep(50);
+ HikCamera.Instance.Grab(cameraName);
+ LoadImage();
+ Thread.Sleep(300);
+ }
+ });
+ }
+ }
+
+ }
+
+ protected override void OnVisibleChanged(EventArgs e)
+ {
+ base.OnVisibleChanged(e);
}
private void LoadImage()
diff --git a/Rs.Controls/RsTray.Designer.cs b/Rs.Controls/RsTray.Designer.cs
index 45b229d..a5b8fbc 100644
--- a/Rs.Controls/RsTray.Designer.cs
+++ b/Rs.Controls/RsTray.Designer.cs
@@ -95,7 +95,7 @@
this.lblStatus.Name = "lblStatus";
this.lblStatus.Size = new System.Drawing.Size(137, 36);
this.lblStatus.TabIndex = 2;
- this.lblStatus.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.lblStatus.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// label1
//
@@ -107,7 +107,7 @@
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(137, 36);
this.label1.TabIndex = 1;
- this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
+ this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// contextMenuStrip1
//