DummyEntity.cs 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. using Aitex.Core.RT.Fsm;
  2. using MECF.Framework.Common.Equipment;
  3. using MECF.Framework.Common.SubstrateTrackings;
  4. using MECF.Framework.Common.ToolLayout;
  5. using CyberX8_Core;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Linq;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. namespace CyberX8_RT.Modules.Dummy
  12. {
  13. public class DummyEntity : Entity, IEntity, IModuleEntity
  14. {
  15. public enum MSG
  16. {
  17. Home
  18. }
  19. #region 内部变量
  20. DummyCassetteItem _dummyItem;
  21. #endregion
  22. #region 属性
  23. public ModuleName Module { get; private set; }
  24. /// <summary>
  25. /// 初始化状态
  26. /// </summary>
  27. public bool IsInit
  28. {
  29. get { return false; }
  30. }
  31. /// <summary>
  32. /// 空闲状态
  33. /// </summary>
  34. public bool IsIdle
  35. {
  36. get
  37. {
  38. return true;
  39. }
  40. }
  41. /// <summary>
  42. /// 是否发生错误
  43. /// </summary>
  44. public bool IsError
  45. {
  46. get { return false; }
  47. }
  48. /// <summary>
  49. /// 是否正在作业
  50. /// </summary>
  51. public bool IsBusy
  52. {
  53. get { return false; }
  54. }
  55. public bool IsAuto { get; } = true;
  56. /// <summary>
  57. /// 是否为工程模式
  58. /// </summary>
  59. public bool IsEngineering { get; } = false;
  60. /// <summary>
  61. /// 是否为产品模式
  62. /// </summary>
  63. public bool IsProduction { get; } = true;
  64. /// <summary>
  65. /// 是否禁用
  66. /// </summary>
  67. public bool IsDisable { get; internal set; } = false;
  68. /// <summary>
  69. /// 最大Slot数量
  70. /// </summary>
  71. public int MaxSlotNumber { get; internal set; }
  72. #endregion
  73. /// <summary>
  74. /// 构造函数
  75. /// </summary>
  76. /// <param name="module"></param>
  77. public DummyEntity(ModuleName module)
  78. {
  79. this.Module = module;
  80. _dummyItem = DummyCasseteItemManager.Instance.GetDummyCassetteItem(module.ToString());
  81. WaferManager.Instance.SubscribeLocation(Module, _dummyItem.MaxNumberOfSlots);
  82. MaxSlotNumber = _dummyItem.MaxNumberOfSlots;
  83. }
  84. public bool Check(int msg, out string reason, params object[] args)
  85. {
  86. reason = "";
  87. return false;
  88. }
  89. public bool CheckAcked(int msg)
  90. {
  91. return false;
  92. }
  93. public int Invoke(string function, params object[] args)
  94. {
  95. switch (function)
  96. {
  97. case "HomeAll":
  98. return (int)MSG.Home;
  99. }
  100. return (int)FSM_MSG.NONE;
  101. }
  102. }
  103. }