PMEntity.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Threading;
  4. using System.Diagnostics;
  5. using System.Linq;
  6. using Aitex.Core.Common;
  7. using Aitex.Core.RT.DataCenter;
  8. using Aitex.Core.RT.Device;
  9. using Aitex.Core.RT.Event;
  10. using Aitex.Core.RT.Fsm;
  11. using Aitex.Core.RT.OperationCenter;
  12. using Aitex.Core.RT.Routine;
  13. using Aitex.Core.RT.SCCore;
  14. using Aitex.Core.Util;
  15. using Aitex.Sorter.Common;
  16. using MECF.Framework.Common.DataCenter;
  17. using MECF.Framework.Common.Equipment;
  18. using MECF.Framework.Common.Schedulers;
  19. using MECF.Framework.Common.SubstrateTrackings;
  20. using Venus_Core;
  21. using Venus_RT.Devices;
  22. using Venus_RT.Modules;
  23. using Venus_RT.Modules.PMs;
  24. namespace Venus_RT.Modules.PMs
  25. {
  26. public class PMEntity : Entity, IModuleEntity
  27. {
  28. public ModuleName Module { get; }
  29. public Action<bool, bool> TransferPrepared;
  30. public bool IsIdle
  31. {
  32. get;
  33. }
  34. public bool IsError
  35. {
  36. get;
  37. }
  38. public bool IsInit
  39. {
  40. get;// { return fsm.State == (int)PMState.Init; }
  41. }
  42. public bool IsBusy
  43. {
  44. get { return !IsInit && !IsError && !IsIdle; }
  45. }
  46. public bool Check(int msg, out string reason, object[] objs)
  47. {
  48. reason = "";
  49. return true;
  50. }
  51. public int Invoke(string function, params object[] args)
  52. {
  53. //switch (function)
  54. //{
  55. // //case "Home":
  56. // // CheckToPostMessage((int)MSG.Home);
  57. // // return (int)MSG.Home;
  58. //}
  59. return (int)FSM_MSG.NONE;
  60. }
  61. public bool CheckAcked(int msg)
  62. {
  63. return fsm.CheckExecuted(msg);
  64. }
  65. public PMEntity(ModuleName module)
  66. {
  67. fsm = new StateMachine<PMEntity>(Module.ToString(), (int)PMState.Init, 100);
  68. }
  69. }
  70. }