예제 #1
0
 /// <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);
     }
 }
예제 #2
0
        /// <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));
            }
        }