/// <summary>
        /// 方法:设置触发边沿信号模式
        /// </summary>
        /// <param name="edgemode">边缘模式</param>
        /// <returns></returns>
        public bool SetTriggerActivation(ProCommon.Communal.TriggerLogic edgemode)
        {
            bool rt = false;

            if (ICamDriverable != null)
            {
                rt = ICamDriverable.SetTriggerActivation(edgemode);
            }
            return(rt);
        }
Esempio n. 2
0
        /// <summary>
        /// 方法:设置触发信号边缘
        /// </summary>
        /// <param name="degemode"></param>
        /// <returns></returns>
        public override bool DoSetTriggerActivation(ProCommon.Communal.TriggerLogic edge)
        {
            bool rt = false;

            try
            {
                if (!AcqHandle.TupleEqual(new HalconDotNet.HTuple()))
                {
                    rt = true;
                }
            }
#pragma warning disable CS0168 // The variable 'hex' is declared but never used
            catch (HalconDotNet.HalconException hex)
#pragma warning restore CS0168 // The variable 'hex' is declared but never used
            {
            }
            finally
            {
            }
            return(rt);
        }
        /// <summary>
        /// 方法:设置相机输出信号
        /// </summary>
        /// <param name="triglogic">触发信号逻辑</param>
        /// <param name="delaytime">边沿信号时的延时,单位毫秒</param>
        /// <returns></returns>
        public bool SetOutPut(ProCommon.Communal.TriggerLogic triglogic, int delaytime)
        {
            bool rt = false;

            if (ICamDriverable != null)
            {
                switch (triglogic)
                {
                case ProCommon.Communal.TriggerLogic.FallEdge:
                    rt = ICamDriverable.SetOutPut(true);
                    if (rt)
                    {
                        System.Threading.Thread.Sleep(delaytime);
                        rt = ICamDriverable.SetOutPut(false);
                    }
                    break;

                case ProCommon.Communal.TriggerLogic.LogicFalse:
                    rt = ICamDriverable.SetOutPut(false);
                    break;

                case ProCommon.Communal.TriggerLogic.LogicTrue:
                    rt = ICamDriverable.SetOutPut(true);
                    break;

                case ProCommon.Communal.TriggerLogic.RaiseEdge:
                    rt = ICamDriverable.SetOutPut(false);
                    if (rt)
                    {
                        System.Threading.Thread.Sleep(delaytime);
                        rt = ICamDriverable.SetOutPut(true);
                    }
                    break;

                default: break;
                }
            }
            return(rt);
        }
Esempio n. 4
0
 /// <summary>
 /// 方法:设置触发信号边缘
 /// [注:用于触发源为硬触发]
 /// </summary>
 /// <param name="dege">边缘信号</param>
 /// <returns></returns>
 public override bool DoSetTriggerActivation(ProCommon.Communal.TriggerLogic edge)
 {
     try
     {
         if (m_objIGXDevice == null)
         {
             ////ErrorMessage.Append("还没有打开设备。");
             return(false);
         }
         IGXFeatureControl fc = m_objIGXDevice.GetRemoteFeatureControl();
         if (fc == null)
         {
             ////ErrorMessage.Append("设置设备异常。");
             return(false);
         }
         string strVal = null;
         if (edge == ProCommon.Communal.TriggerLogic.FallEdge)
         {
             strVal = "FallingEdge";
         }
         else if (edge == ProCommon.Communal.TriggerLogic.RaiseEdge)
         {
             strVal = "RisingEdge";
         }
         else
         {
             ////ErrorMessage.Append("不支持该出发方式。");
             return(false);
         }
         fc.GetEnumFeature("TriggerActivation").SetValue(strVal);
         return(true);
     }
     catch (Exception ex)
     {
         return(false);
     }
 }
Esempio n. 5
0
        /// <summary>
        /// 方法:设置触发信号边缘
        /// [注:用于触发源为硬触发]
        /// </summary>
        /// <param name="dege">边缘信号</param>
        /// <returns></returns>
        public override bool DoSetTriggerActivation(ProCommon.Communal.TriggerLogic edge)
        {
            bool rt = false;

            MVSDK.CameraSdkStatus status = MVSDK.CameraSdkStatus.CAMERA_STATUS_FAILED;
            try
            {
                if (_deviceRef > 0)
                {
                    switch (edge)
                    {
                    case ProCommon.Communal.TriggerLogic.FallEdge:
                    {
                        status = MVSDK.MvApi.CameraSetExtTrigSignalType(_deviceRef, 1);        //MVSDK.emExtTrigSignal.EXT_TRIG_TRAILING_EDGE=1
                    }
                    break;

                    case ProCommon.Communal.TriggerLogic.RaiseEdge:
                    {
                        status = MVSDK.MvApi.CameraSetExtTrigSignalType(_deviceRef, 0);          //MVSDK.emExtTrigSignal.EXT_TRIG_LEADING_EDGE=0
                    }
                    break;

                    //case ProCommon.Communal.Edge.StateHigh:
                    //    {
                    //        status = MVSDK.MvApi.CameraSetExtTrigSignalType(_deviceRef, 2); //MVSDK.emExtTrigSignal.EXT_TRIG_HIGH_LEVEL=2
                    //    }
                    //    break;
                    //case ProCommon.Communal.Edge.StateLow:
                    //    {
                    //        status = MVSDK.MvApi.CameraSetExtTrigSignalType(_deviceRef, 3); //MVSDK.emExtTrigSignal.EXT_TRIG_LOW_LEVEL=3
                    //    }
                    //    break;
                    case ProCommon.Communal.TriggerLogic.NONE:
                    default:
                        break;
                    }

                    rt = (MVSDK.CameraSdkStatus.CAMERA_STATUS_SUCCESS == status) ? true : false;
                    if (!rt)
                    {
                        if (DriverExceptionDel != null)
                        {
                            DriverExceptionDel(string.Format("错误:迈德威视相机设置触发信号边沿失败!\n错误代码:{0:X8}", System.Convert.ToInt32(status)));
                        }
                    }
                }
                else
                {
                    if (DriverExceptionDel != null)
                    {
                        DriverExceptionDel(string.Format("错误:迈德威视相机设置设备采集信号边沿失败!\n错误描述:{0}", "设备未连接"));
                    }
                }
            }
            catch
            {
            }
            finally
            {
            }

            return(rt);
        }
Esempio n. 6
0
 public abstract bool DoSetTriggerActivation(ProCommon.Communal.TriggerLogic edge);
Esempio n. 7
0
 public bool SetTriggerActivation(ProCommon.Communal.TriggerLogic edge)
 {
     return(DoSetTriggerActivation(edge));
 }