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