增加自定义拍照事件

master
lhiven 1 year ago
parent 2009340fb4
commit 2ee75f0aa4

@ -57,6 +57,10 @@ namespace Rs.MotionPlat
double matchResultScore = 0.0; double matchResultScore = 0.0;
string LightName = ""; string LightName = "";
bool bGrab = false; bool bGrab = false;
/// <summary>
/// 自定义拍照事件
/// </summary>
public event Action CustomDefineGrabEvent;
public CameraTemplate() public CameraTemplate()
{ {
InitializeComponent(); InitializeComponent();
@ -265,40 +269,50 @@ namespace Rs.MotionPlat
private void btnGrab_Click(object sender, EventArgs e) private void btnGrab_Click(object sender, EventArgs e)
{ {
LightName = SysConfigParam.GetValue<string>(cameraName + "LightName"); ImageProcess.ClearManualTrigger();
if(!string.IsNullOrEmpty(LightName)) HikCamera.Instance.SetTrigger(cameraName, ETriggerMode.Manual);
bGrabContinue = false;
if (CustomDefineGrabEvent!=null)
{ {
if (!string.IsNullOrEmpty(cameraName)) CustomDefineGrabEvent?.Invoke();
LoadImage();
}
else
{
LightName = SysConfigParam.GetValue<string>(cameraName + "LightName");
if (!string.IsNullOrEmpty(LightName))
{ {
ImageProcess.ClearManualTrigger(); if (!string.IsNullOrEmpty(cameraName))
bGrabContinue = false;
bGrab = true;
HikCamera.Instance.SetTrigger(cameraName, ETriggerMode.Manual);
if(ManualGrab==null)
{ {
IoManager.Instance.WriteOut(LightName, 0); bGrab = true;
Thread.Sleep(50);
IoManager.Instance.WriteOut(LightName, 1); if (ManualGrab == null)
Thread.Sleep(100); {
HikCamera.Instance.Grab(cameraName); 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 else
{ {
ManualGrab?.Invoke(); Msg.ShowError("请先先择相机");
} }
//Thread.Sleep(50);
LoadImage();
} }
else else
{ {
Msg.ShowError("请先先择相机"); Msg.ShowError("未设置相机对应的光源,请到变量中配置!");
} }
} }
else
{
Msg.ShowError("未设置相机对应的光源,请到变量中配置!");
}
} }
bool bGrabContinue = false; bool bGrabContinue = false;
@ -308,27 +322,57 @@ namespace Rs.MotionPlat
} }
private void btnGrabContinue_Click(object sender, EventArgs e) private void btnGrabContinue_Click(object sender, EventArgs e)
{ {
LightName = SysConfigParam.GetValue<string>(cameraName + "LightName"); bGrabContinue = !bGrabContinue;
if (!string.IsNullOrEmpty(cameraName)) if (bGrabContinue)
{
btnGrabContinue.Text = "停止取图";
}
else
{
btnGrabContinue.Text = "连续取图";
}
if (CustomDefineGrabEvent!=null)
{ {
HikCamera.Instance.SetTrigger(cameraName, ETriggerMode.Manual);
bGrabContinue = !bGrabContinue;
Task.Run(() => { Task.Run(() => {
while (bGrabContinue) while (bGrabContinue)
{ {
bGrab = true; bGrab = true;
ImageProcess.ClearManualTrigger(); ImageProcess.ClearManualTrigger();
IoManager.Instance.WriteOut(LightName,0); CustomDefineGrabEvent?.Invoke();
Thread.Sleep(50);
IoManager.Instance.WriteOut(LightName, 1);
Thread.Sleep(50);
HikCamera.Instance.Grab(cameraName);
LoadImage(); LoadImage();
Thread.Sleep(300); Thread.Sleep(300);
} }
}); });
} }
else
{
LightName = SysConfigParam.GetValue<string>(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() private void LoadImage()

@ -95,7 +95,7 @@
this.lblStatus.Name = "lblStatus"; this.lblStatus.Name = "lblStatus";
this.lblStatus.Size = new System.Drawing.Size(137, 36); this.lblStatus.Size = new System.Drawing.Size(137, 36);
this.lblStatus.TabIndex = 2; this.lblStatus.TabIndex = 2;
this.lblStatus.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; this.lblStatus.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
// //
// label1 // label1
// //
@ -107,7 +107,7 @@
this.label1.Name = "label1"; this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(137, 36); this.label1.Size = new System.Drawing.Size(137, 36);
this.label1.TabIndex = 1; this.label1.TabIndex = 1;
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
// //
// contextMenuStrip1 // contextMenuStrip1
// //

Loading…
Cancel
Save