public void InitDevice(MyAcquisitionParams acqParams = null)
        {
            _acqParams = acqParams;

            if (acqParams == null)
            {
                string[] args = new string[0];
                if (!ExampleUtils.GetOptions(args, acqParams))
                {
                    Console.WriteLine("\nPress any key to terminate\n");
                    Console.ReadKey(true);
                    return;
                }
            }



            _loc = new SapLocation(acqParams.ServerName, acqParams.ResourceIndex);
            if (SapManager.GetResourceCount(acqParams.ServerName, SapManager.ResourceType.AcqDevice) > 0)
            {
                _acqDevice = new SapAcqDevice(_loc, acqParams.ConfigFileName);
                _buffers   = new SapBufferWithTrash(2, _acqDevice, SapBuffer.MemoryType.ScatterGather);
                _transfer  = new SapAcqDeviceToBuf(_acqDevice, _buffers);

                // Create acquisition object
                if (!_acqDevice.Create())
                {
                    Console.WriteLine("Error during SapAcqDevice creation!\n");
                    DestroysObjects(null, _acqDevice, _buffers, _transfer, _view);
                    return;
                }
            }

            _transfer.Pairs[0].EventType = SapXferPair.XferEventType.EndOfFrame;
            _transfer.XferNotify        += new SapXferNotifyHandler(xfer_XferNotify);
            _transfer.XferNotifyContext  = _buffers;

            // Create buffer object
            if (!_buffers.Create())
            {
                Console.WriteLine("Error during SapBuffer creation!\n");
                DestroysObjects(null, _acqDevice, _buffers, _transfer, _view);
                return;
            }

            // Create buffer object
            if (!_transfer.Create())
            {
                Console.WriteLine("Error during SapTransfer creation!\n");
                DestroysObjects(null, _acqDevice, _buffers, _transfer, _view);
                return;
            }

            _transfer.Grab();
        }
 private void CAM_StartGrab()//抓取图像
 {
     Xfer.Grab();
     //m_camera.StartCapture();//待修改
     m_grabImages = true;          //相机正在抓取图像的标志
     m_grabThread = new BackgroundWorker();
     m_grabThread.ProgressChanged      += new ProgressChangedEventHandler(UpdateUI);
     m_grabThread.DoWork               += new DoWorkEventHandler(GrabLoop);
     m_grabThread.WorkerReportsProgress = true;
     m_grabThread.RunWorkerAsync();
 }
Beispiel #3
0
        public bool  SaperaInterface_GrabContinue()
        {
            string Str = string.Empty;

            if (m_Xfer != null && m_Xfer.Initialized)
            {
                SeparaInterface_ResetFrameNum(); //重置缓存和帧计数
                if (m_Xfer.Grabbing)
                {
                    Logger.PopError(" SaperaCenter_Error_Grabing");
                    return(false);
                }
                if (!m_Xfer.Grab())
                {
                    Logger.PopError("SaperaCenter_Error_GrabFailed ,相机采图失败");
                }
                return(true);
            }
            return(false);
        }