| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 | using Aitex.Core.RT.Device;using Aitex.Core.Util;using CyberX8_RT.Devices.AXIS;using MECF.Framework.Common.Equipment;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace CyberX8_RT.Devices.SRD{    public class SRDDeviceTimer : BaseDevice, IDevice    {        #region 常量        private const string SRD = "Srd";        #endregion        #region 内部变量        private PeriodicJob _periodicJob;        private JetAxisBase _srd1ArmAxis;        private JetAxisBase _srd1RotationAxis;        private JetAxisBase _srd2ArmAxis;        private JetAxisBase _srd2RotationAxis;        private SrdCommonDevice _srd1CommonDevice;        private SrdCommonDevice _srd2CommonDevice;        #endregion        /// <summary>        /// 构造函数        /// </summary>        public SRDDeviceTimer():base(SRD,SRD,SRD,SRD)        {            _periodicJob = new PeriodicJob(20, OnTimer, $"{SRD}.OnTimer", false);        }        /// <summary>        /// 初始化        /// </summary>        /// <returns></returns>        public bool Initialize()        {            _srd1ArmAxis=DEVICE.GetDevice<JetAxisBase>($"{ModuleName.SRD1}.Arm");            _srd1RotationAxis = DEVICE.GetDevice<JetAxisBase>($"{ModuleName.SRD1}.Rotation");            _srd2ArmAxis = DEVICE.GetDevice<JetAxisBase>($"{ModuleName.SRD2}.Arm");            _srd2RotationAxis = DEVICE.GetDevice<JetAxisBase>($"{ModuleName.SRD2}.Rotation");            _srd1CommonDevice = DEVICE.GetDevice<SrdCommonDevice>($"{ModuleName.SRD1}.Common");            _srd2CommonDevice = DEVICE.GetDevice<SrdCommonDevice>($"{ModuleName.SRD2}.Common");            _periodicJob.Start();            return true;        }        public void Monitor()        {        }        public void Reset()        {        }        public void Terminate()        {            _periodicJob.Stop();        }        /// <summary>        /// 定时器执行        /// </summary>        /// <returns></returns>        private bool OnTimer()        {            if (_srd1ArmAxis != null)            {                _srd1ArmAxis.OnTimer();            }            if(_srd1RotationAxis!=null)            {                _srd1RotationAxis.OnTimer();            }            if (_srd2ArmAxis != null)            {                _srd2ArmAxis.OnTimer();            }            if (_srd2RotationAxis != null)            {                _srd2RotationAxis.OnTimer();            }            if(_srd1CommonDevice != null)            {                _srd1CommonDevice.OnTimer();            }            if (_srd2CommonDevice!=null)            {                _srd2CommonDevice.OnTimer();            }            return true;        }    }}
 |