Exemplo n.º 1
0
        private bool OpenCamera(ref IHalAcqOpenInfo openInfo)
        {
            HTuple hv_HalconError;

            try
            {
                HOperatorSet.OpenFramegrabber(openInfo.Name, openInfo.HorizontalResolution, openInfo.VerticalResolution,
                                              openInfo.ImageWitdth, openInfo.ImageHeight, openInfo.StartRow, openInfo.StartColumn, openInfo.Field,
                                              openInfo.BitsPerChannel, openInfo.ColorSpace, openInfo.Generic, openInfo.ExternalTrigger, openInfo.CameraType,
                                              openInfo.Device, openInfo.Port, openInfo.LineIn, out __halAcqHandle);
                acqState.AcqHandle = __halAcqHandle;

                if (CameraInitialComplete != null)
                {
                    CameraInitialComplete(openInfo.Device.S);
                }
                return(true);
            }
            catch (HalconException ex)
            {
                hv_HalconError = ex.GetErrorCode();
                Console.WriteLine("OpenCamera Error:" + ex.ToString());
                acqState.AcqHandle = __halAcqHandle;
                return(false);
            }
        }
Exemplo n.º 2
0
 public HalAcqFifoTool(HTuple deviceName, string colorspace) : base()
 {
     acqState       = new HalAcqState();
     cameraOpenInfo = new HalAcqOpenInfo(deviceName, colorspace);
     //打开相机
     if (OpenCamera(ref cameraOpenInfo))
     {
         //初始化Operator
         _operator     = new HalAcqOperator(ref __halAcqHandle);
         halGigEAccess = new CHalGigEAccess(ref __halAcqHandle);
     }
 }
Exemplo n.º 3
0
 /// <summary>
 /// 反序列化构造
 /// </summary>
 /// <param name="info"></param>
 /// <param name="context"></param>
 private HalAcqFifoTool(SerializationInfo info, StreamingContext context)
 {
     //反序列化对象
     _operator      = (IHalAcqOperator)info.GetValue("operator", typeof(IHalAcqOperator));
     cameraOpenInfo = (IHalAcqOpenInfo)info.GetValue("cameraOpenInfo", typeof(IHalAcqOpenInfo));
     asyncGrab      = info.GetBoolean("asyncGrabImage");
     m_outputImage  = (IHalImage)info.GetValue("outputImage", typeof(IHalImage));
     acqState       = new HalAcqState();
     //判断被序列化的相机是否在相机列表中,如果在尝试打开相机
     if (SystemExistCamera(cameraOpenInfo.Device.S))
     {
         //打开相机
         if (OpenCamera(ref cameraOpenInfo))
         {
             //对Operator传入新的相机句柄
             _operator.CameraHandle = __halAcqHandle;
             halGigEAccess          = new CHalGigEAccess(ref __halAcqHandle);
         }
     }
 }