增加自定义拍照事件

master
lhiven 1 year ago
parent 2009340fb4
commit 2ee75f0aa4

@ -57,6 +57,10 @@ namespace Rs.MotionPlat
double matchResultScore = 0.0;
string LightName = "";
bool bGrab = false;
/// <summary>
/// 自定义拍照事件
/// </summary>
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<string>(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<string>(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<string>(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<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()

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

Loading…
Cancel
Save