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 PufVacuum _pufVacuum; #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"); _pufVacuum = DEVICE.GetDevice($"{ModuleName.PUF1}.Vacuum"); _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 (_pufVacuum != null) { _pufVacuum.OnTimer(); } return true; } } }