public void Setup(ParameterEditorSetupData data) { m_parameter = data.Parameter as IBooleanParameter; if (!data.Parameter.Corrupted) { Checked = m_parameter.Value; } }
/// <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); } }); } }