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 //