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.TransPorter
{
public class TransporterDeviceTimer : BaseDevice, IDevice
{
#region 常量
private const string TRANSPORTER = "Transporter";
#endregion
#region 内部变量
private PeriodicJob _periodicJob;
private JetAxisBase _loaderTransporterGantryAxis;
private JetAxisBase _loaderTransporterElevatorAxis;
private JetAxisBase _processTransporterGantryAxis;
private JetAxisBase _processTransporterElevatorAxis;
private TransporterCommon _loaderTransporterCommon;
private TransporterCommon _processTransporterCommon;
#endregion
///
/// 构造函数
///
public TransporterDeviceTimer() : base(TRANSPORTER, TRANSPORTER, TRANSPORTER, TRANSPORTER)
{
_periodicJob = new PeriodicJob(20, OnTimer, $"{TRANSPORTER}.OnTimer", false);
}
///
/// 初始化
///
///
public bool Initialize()
{
_loaderTransporterGantryAxis = DEVICE.GetDevice($"{ModuleName.Transporter2}.Gantry");
_loaderTransporterElevatorAxis = DEVICE.GetDevice($"{ModuleName.Transporter2}.Elevator");
_loaderTransporterCommon = DEVICE.GetDevice($"{ModuleName.Transporter2}.Common");
_processTransporterGantryAxis = DEVICE.GetDevice($"{ModuleName.Transporter1}.Gantry");
_processTransporterElevatorAxis = DEVICE.GetDevice($"{ModuleName.Transporter1}.Elevator");
_processTransporterCommon = DEVICE.GetDevice($"{ModuleName.Transporter1}.Common");
_periodicJob.Start();
return true;
}
public void Monitor()
{
}
public void Reset()
{
}
///
/// 中止
///
public void Terminate()
{
_periodicJob.Stop();
}
///
/// 定时器执行
///
///
private bool OnTimer()
{
if (_loaderTransporterGantryAxis != null)
{
_loaderTransporterGantryAxis.OnTimer();
}
if (_loaderTransporterElevatorAxis != null)
{
_loaderTransporterElevatorAxis.OnTimer();
}
if (_processTransporterGantryAxis != null)
{
_processTransporterGantryAxis.OnTimer();
}
if (_processTransporterElevatorAxis != null)
{
_processTransporterElevatorAxis.OnTimer();
}
if (_loaderTransporterCommon != null)
{
_loaderTransporterCommon.OnTimer();
}
if(_processTransporterCommon!=null)
{
_processTransporterCommon.OnTimer();
}
return true;
}
}
}