Example #1
0
 public void Setup(ParameterEditorSetupData data)
 {
     m_parameter = data.Parameter as IBooleanParameter;
     if (!data.Parameter.Corrupted)
     {
         Checked = m_parameter.Value;
     }
 }
Example #2
0
        /// <summary>
        /// 输出相机开关量
        /// </summary>
        /// <param name="millSeconds">高电平持续毫秒数</param>
        /// <param name="num">单号</param>
        public void IoOutput(int millSeconds, string num)
        {
            // 保证每次只允许一个信号输出
            if (Interlocked.CompareExchange(ref _bIoOutFlag, 1, 0) == 0)
            {
                // 异步输出脉冲信号
                new TaskFactory().StartNew(() =>
                {
                    try
                    {
                        if (_Camera != null)
                        {
                            //选择输出信号
                            using (IEnumParameter ep = _Camera.ParameterCollection[ParametrizeNameSet.IOLineSelector])
                            {
                                ep.SetValue("Line0");
                            }

                            // 选择用户输出
                            using (IEnumParameter ep = _Camera.ParameterCollection[ParametrizeNameSet.IOUserOutputSelector])
                            {
                                ep.SetValue("UserOutPut0");
                            }

                            // 输出信号脉冲
                            using (IBooleanParameter bp = _Camera.ParameterCollection[ParametrizeNameSet.IOUserOutputValue])
                            {
                                bp.SetValue(false);
                            }

                            Thread.Sleep(millSeconds);

                            // 停止输出脉冲
                            using (IBooleanParameter bp = _Camera.ParameterCollection[ParametrizeNameSet.IOUserOutputValue])
                            {
                                bp.SetValue(true);
                            }

                            // 允许输出
                            Interlocked.CompareExchange(ref _bIoOutFlag, 0, 1);
                        }
                    }
                    catch (Exception e)
                    {
                        MvBarCodeGlobalVar.Log.Error(e);
                    }
                });
            }
        }