| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 | using Aitex.Core.RT.Device;using Aitex.Core.Util;using CyberX8_RT.Devices.AXIS;using System;using System.Collections.Generic;using System.Linq;using System.Reflection;using System.Text;using System.Threading.Tasks;namespace CyberX8_RT.Devices.Loader{    public class LoaderDeviceTimer : BaseDevice, IDevice    {        #region 内部变量        private PeriodicJob _periodicJob;        private JetAxisBase _shuttleAAxis;        private JetAxisBase _shuttleBAxis;        private JetAxisBase _crsAAxis;        private JetAxisBase _crsBAxis;        private JetAxisBase _tiltAAxis;        private JetAxisBase _tiltBAxis;        private JetAxisBase _rotationAxis;        private LoaderCommonDevice _commonDevice;        private LoaderSideDevice _sideADevice;        private LoaderSideDevice _sideBDevice;        #endregion        /// <summary>        /// 构造函数        /// </summary>        public LoaderDeviceTimer(string module) : base(module,module,module,module)        {            _periodicJob = new PeriodicJob(20, OnTimer, $"{module}.OnTimer", false);        }        /// <summary>        /// 初始化        /// </summary>        /// <returns></returns>        public bool Initialize()        {            _shuttleAAxis = DEVICE.GetDevice<JetAxisBase>($"{Module}.ShuttleA");            _shuttleBAxis = DEVICE.GetDevice<JetAxisBase>($"{Module}.ShuttleB");            _tiltAAxis = DEVICE.GetDevice<JetAxisBase>($"{Module}.TiltA");            _tiltBAxis = DEVICE.GetDevice<JetAxisBase>($"{Module}.TiltB");            _crsAAxis = DEVICE.GetDevice<JetAxisBase>($"{Module}.LSA");            _crsBAxis = DEVICE.GetDevice<JetAxisBase>($"{Module}.LSB");            _rotationAxis = DEVICE.GetDevice<JetAxisBase>($"{Module}.Rotation");            _commonDevice = DEVICE.GetDevice<LoaderCommonDevice>($"{Module}.Common");            _sideADevice = DEVICE.GetDevice<LoaderSideDevice>($"{Module}.SideA");            _sideBDevice = DEVICE.GetDevice<LoaderSideDevice>($"{Module}.SideB");            _periodicJob.Start();            return true;        }        public void Monitor()        {        }        public void Reset()        {        }        public void Terminate()        {            _periodicJob.Stop();        }        /// <summary>        /// 定时器执行        /// </summary>        /// <returns></returns>        private bool OnTimer()        {            _shuttleAAxis.OnTimer();            _shuttleBAxis.OnTimer();            _crsAAxis.OnTimer();            _crsBAxis.OnTimer();            _tiltAAxis.OnTimer();            _tiltBAxis.OnTimer();            _rotationAxis.OnTimer();            _commonDevice.OnTimer();            _sideADevice.OnTimer();            _sideBDevice.OnTimer();            return true;        }    }}
 |