private void Form1_Load(object sender, EventArgs e) { HOperatorSet.OpenFramegrabber("GigEVision", 0, 0, 0, 0, 0, 0, "progressive", -1, "default", -1, "false", "default", "Cam_Up", 0, -1, out hv_AcqHandle); HOperatorSet.SetFramegrabberParam(hv_AcqHandle, "TriggerSelector", "FrameStart"); HOperatorSet.SetFramegrabberParam(hv_AcqHandle, "grab_timeout", 100000); HOperatorSet.SetFramegrabberParam(hv_AcqHandle, "TriggerMode", "On"); HOperatorSet.SetFramegrabberParam(hv_AcqHandle, "AcquisitionMode", "SingleFrame"); HOperatorSet.SetFramegrabberParam(hv_AcqHandle, "TriggerSource", "Line1"); HOperatorSet.SetFramegrabberParam(hv_AcqHandle, "TriggerActivation", "FallingEdge"); HOperatorSet.SetFramegrabberParam(hv_AcqHandle, "ExposureMode", "Timed"); HOperatorSet.GetFramegrabberParam(hv_AcqHandle, "available_callback_types", out HTuple value); foreach (var it in value.SArr) { Console.WriteLine(it); } int myContent = 1; IntPtr ptr1 = GCHandle.Alloc(myContent, GCHandleType.Pinned).AddrOfPinnedObject(); FrameCallback += MyCallback; IntPtr Ptr = Marshal.GetFunctionPointerForDelegate(FrameCallback); HOperatorSet.SetFramegrabberCallback(hv_AcqHandle, "ExposureEnd", Ptr, ptr1); }
private void RealTimeSnap_Click(object sender, EventArgs e) { int lTime = 0; try { if (Int32.Parse(lazyTime.Text) > 0) { lTime = Int32.Parse(lazyTime.Text); } } catch (Exception) { MessageBox.Show("延迟设置错误!请输入正整数:"); return; } if (button2.Text == "开启") { //MvApi.CameraSetExtTrigSignalType(hv_AcqHandle.H.TupleIsValidHandle(), 0); HOperatorSet.OpenFramegrabber("MindVision17_X64", 1, 1, 0, 0, 0, 0, "progressive", 8, "Gray", -1, "false", "auto", "oufang", 0, -1, out hv_AcqHandle); HOperatorSet.SetFramegrabberParam(hv_AcqHandle, "color_space", "BGR24"); //HOperatorSet.GrabImageStart(hv_AcqHandle, -1); HOperatorSet.SetFramegrabberParam(hv_AcqHandle, "trigger_mode", 2);//开启硬触发 HOperatorSet.SetFramegrabberParam(hv_AcqHandle, "grab_timeout", -1); HOperatorSet.SetFramegrabberParam(hv_AcqHandle, "trigger_delay_time", lTime * 1000); delegateCallback = takeCameraOne; IntPtr ptr = Marshal.GetFunctionPointerForDelegate(delegateCallback); //取回调函数的地址 IntPtr ptr1 = GCHandle.Alloc(test, GCHandleType.Pinned).AddrOfPinnedObject(); //取test变量的地址 HOperatorSet.SetFramegrabberCallback(hv_AcqHandle, "transfer_end", ptr, ptr1); //注册回调函数 button2.Text = "关闭"; returnNum(); modelList.Enabled = false; btnAddModel.Enabled = false; lazyTime.Enabled = false; yuZhi.Enabled = false; } else { button2.Text = "开启"; modelList.Enabled = true; btnAddModel.Enabled = true; lazyTime.Enabled = true; yuZhi.Enabled = true; HOperatorSet.CloseFramegrabber(hv_AcqHandle); hv_AcqHandle = null; i = 0; } }
private void Form1_Load(object sender, EventArgs e) { delegateCallback = takeCameraOne; updateList(); /*HOperatorSet.SetFramegrabberParam(hv_AcqHandle, "TriggerSource", "Line1"); * //下面设置连续采集,上升沿触发,曝光模式等 * HOperatorSet.SetFramegrabberParam(hv_AcqHandle, "AcquisitionMode", "Continuous"); * HOperatorSet.SetFramegrabberParam(hv_AcqHandle, "TriggerSelector", "FrameStart"); * HOperatorSet.SetFramegrabberParam(hv_AcqHandle, "TriggerActivation", "RisingEdge"); * HOperatorSet.SetFramegrabberParam(hv_AcqHandle, "ExposureMode", "Timed"); * //设置曝光时间 * HOperatorSet.SetFramegrabberParam(hv_AcqHandle, "ExposureTime", 80000.0); * //下面为设置用不超时 * HOperatorSet.SetFramegrabberParam(hv_AcqHandle, "grab_timeout", -1);*/ // IntPtr ptr = Marshal.GetFunctionPointerForDelegate(delegateCallback);//取回调函数的地址 //IntPtr ptr1 = GCHandle.Alloc(test, GCHandleType.Pinned).AddrOfPinnedObject();//取test变量的地址 // HOperatorSet.SetFramegrabberCallback(hv_AcqHandle, "transfer_end", ptr, ptr1);//注册回调函数 checkCamera(); }