예제 #1
0
        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);
        }
예제 #2
0
        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;
            }
        }
예제 #3
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();
        }