|
|
|
@ -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()
|
|
|
|
|