using Aitex.Core.RT.Fsm; using MECF.Framework.Common.Equipment; using MECF.Framework.Common.SubstrateTrackings; using MECF.Framework.Common.ToolLayout; using CyberX8_Core; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CyberX8_RT.Modules.Dummy { public class DummyEntity : Entity, IEntity, IModuleEntity { public enum MSG { Home } #region 内部变量 DummyCassetteItem _dummyItem; #endregion #region 属性 public ModuleName Module { get; private set; } /// /// 初始化状态 /// public bool IsInit { get { return false; } } /// /// 空闲状态 /// public bool IsIdle { get { return true; } } /// /// 是否发生错误 /// public bool IsError { get { return false; } } /// /// 是否正在作业 /// public bool IsBusy { get { return false; } } public bool IsAuto { get; } = true; /// /// 是否为工程模式 /// public bool IsEngineering { get; } = false; /// /// 是否为产品模式 /// public bool IsProduction { get; } = true; /// /// 是否禁用 /// public bool IsDisable { get; internal set; } = false; /// /// 最大Slot数量 /// public int MaxSlotNumber { get; internal set; } #endregion /// /// 构造函数 /// /// public DummyEntity(ModuleName module) { this.Module = module; _dummyItem = DummyCasseteItemManager.Instance.GetDummyCassetteItem(module.ToString()); WaferManager.Instance.SubscribeLocation(Module, _dummyItem.MaxNumberOfSlots); MaxSlotNumber = _dummyItem.MaxNumberOfSlots; } public bool Check(int msg, out string reason, params object[] args) { reason = ""; return false; } public bool CheckAcked(int msg) { return false; } public int Invoke(string function, params object[] args) { switch (function) { case "HomeAll": return (int)MSG.Home; } return (int)FSM_MSG.NONE; } } }