/// <summary> /// 开启脉冲计数模式 /// </summary> /// <param name="e">事件入口</param> /// <param name="timers">采样周期(秒)</param> public void StartCntMode(DAQNaviHelper.DelegateCntEvent e, double timers = 1) { try { EventCnt = e; timerCnt.Interval = (timers > 0.1 ? timers : 0.1) * 1000; eventCounterCtrlUsb4704.Enabled = true; timerCnt.Enabled = true; MarkTimeHelper.MarkTime(MarkTimeStatus.Start, "计数定时器"); } catch (Exception error) { ActiveEventError("开启脉冲计数失败:" + error.Message); } }
/// <summary> /// 脉冲计数定时器 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void TimerCnt_TimerEvent(object sender, ElapsedEventArgs e) { ErrorCode err = eventCounterCtrlUsb4704.Read(out int cntData); eventCounterCtrlUsb4704.Enabled = false; TimeSpan timeSpan = MarkTimeHelper.MarkTime(MarkTimeStatus.End, err + "计数定时器", cntData.ToString()); eventCounterCtrlUsb4704.Enabled = true; MarkTimeHelper.MarkTime(MarkTimeStatus.Start, "计数定时器"); if (err != ErrorCode.Success) { ActiveEventError("采集脉冲数失败:" + err.ToString()); return; } if ((timeSpan.TotalSeconds * 1000) < (timerCnt.Interval + 50)) { ActiveEventCnt(0, Convert.ToInt32(cntData / timeSpan.TotalSeconds)); } }