using Aitex.Core.RT.DataCenter;
using Aitex.Core.RT.Device;
using Aitex.Core.RT.Log;
using CyberX8_Core;
using CyberX8_RT.Devices.AXIS;
using CyberX8_RT.Devices.AXIS.Yaskawa;
using MECF.Framework.Common.Utilities;
using MECF.Framework.Common.WaferHolder;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace CyberX8_RT.Devices.TransPorter
{
    public class LoaderTransPorterElevatorAxisInterLock : IAxisInterLock
    {
        #region 内部变量
        private JetAxisBase _axis;
        #endregion
        #region 属性
        /// 
        /// 模块名称
        /// 
        public string Module { get { return _axis.Module; } }
        /// 
        /// 子模块名称
        /// 
        public string Name { get { return _axis.Name; } }
        #endregion
        /// 
        /// 栣函数
        /// 
        /// 
        /// 
        public LoaderTransPorterElevatorAxisInterLock(JetAxisBase axis)
        {
            _axis = axis;
        }
        /// 
        /// GotoPosition条件检验
        /// 
        /// 
        /// 
        /// 
        public bool CheckGotoPosition(string station)
        {
            if (!AxisManager.Instance.CheckModuleAxisSwitchOn(Module, Name))
            {
                return false;
            }
            JetAxisBase gantryAxis = DEVICE.GetDevice($"{Module}.Gantry");
            if (gantryAxis != null)
            {
                if (gantryAxis.IsRun)
                {
                    LOG.WriteLog(eEvent.ERR_AXIS, Module, "Gantry Axis is Run");
                    return false;
                }
            }
            return true;
        }
    }
}