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