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.PUF { public class PufDeviceTimer : BaseDevice, IDevice { #region 内部变量 private PeriodicJob _periodicJob; private JetAxisBase _puf1FlipAxis; private JetAxisBase _puf1RotationAxis; private JetAxisBase _puf1VerticalAxis; private JetAxisBase _puf2FlipAxis; private JetAxisBase _puf2RotationAxis; private JetAxisBase _puf2VerticalAxis; #endregion /// /// 构造函数 /// public PufDeviceTimer():base("DualPuf", "DualPuf", "DualPuf", "DualPuf") { _periodicJob = new PeriodicJob(20, OnTimer, "DualPuf.OnTimer", false); } /// /// 初始化 /// /// public bool Initialize() { _puf1FlipAxis = DEVICE.GetDevice($"{ModuleName.PUF1}.Flip"); _puf1RotationAxis = DEVICE.GetDevice($"{ModuleName.PUF1}.Rotation"); _puf1VerticalAxis = DEVICE.GetDevice($"{ModuleName.PUF1}.Vertical"); _puf2FlipAxis = DEVICE.GetDevice($"{ModuleName.PUF2}.Flip"); _puf2RotationAxis = DEVICE.GetDevice($"{ModuleName.PUF2}.Rotation"); _puf2VerticalAxis = DEVICE.GetDevice($"{ModuleName.PUF2}.Vertical"); _periodicJob.Start(); return true; } public void Monitor() { } public void Reset() { } /// /// 停止 /// public void Terminate() { _periodicJob.Stop(); } /// /// 定时器执行 /// /// private bool OnTimer() { if (_puf1FlipAxis != null) { _puf1FlipAxis.OnTimer(); } if (_puf1RotationAxis != null) { _puf1RotationAxis.OnTimer(); } if (_puf1VerticalAxis != null) { _puf1VerticalAxis.OnTimer(); } if (_puf2FlipAxis != null) { _puf2FlipAxis.OnTimer(); } if (_puf2RotationAxis != null) { _puf2RotationAxis.OnTimer(); } if (_puf2VerticalAxis != null) { _puf2VerticalAxis.OnTimer(); } return true; } } }