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;
}
}
}