EfemInterface.cs 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Diagnostics;
  4. using Aitex.Core.Common;
  5. using Aitex.Sorter.Common;
  6. using MECF.Framework.Common.Equipment;
  7. using VirgoCommon;
  8. namespace VirgoRT.Device
  9. {
  10. interface IEfemMessage : IHardwareMessage
  11. {
  12. EfemOperation Operation { get; set; }
  13. }
  14. interface IEfem
  15. {
  16. bool HomeAll();
  17. bool Home(ModuleName mod, string param);
  18. bool ClearError();
  19. bool Pick(MoveParam mp);
  20. bool Place(MoveParam mp);
  21. bool Extend(ExtendParam ep);
  22. bool Retract(ExtendParam ep);
  23. bool Map(ModuleName mod);
  24. bool SetPinUp(ModuleName mod);
  25. bool Align(ModuleName mod, float delayTime, WaferSize size);
  26. bool SetLamp(LightType light, LightStatus status);
  27. }
  28. interface IAlign
  29. {
  30. void Lift();
  31. void Align(WaferSize size);
  32. }
  33. interface ILoadport
  34. {
  35. ModuleName Module { get; set; }
  36. //DoorState DoorStatus { get; set; }
  37. DeviceState Status { get; set; }
  38. bool HasCassette { get; set; }
  39. bool IsMapped { get; set; }
  40. bool HasPlacementError { get; set; }
  41. bool IsLoaded { get; set; }
  42. bool IsClamped { get; set; }
  43. string CarrierId { get; set; }
  44. bool IsThicknessValid { get; }
  45. string SmartTag { get; set; }
  46. WaferStatus[] WaferInfo { get; set; }
  47. bool JobDone { get; set; }
  48. Stopwatch TimerNotifyJobDone { get; set; }
  49. void Home();
  50. void NoteJobStart();
  51. void NoteJobComplete();
  52. void Map();
  53. void SetOnline(bool on);
  54. void OnCarrierIDRead(string data);
  55. void OnCarrierIDReadFailed(string data);
  56. void OnLoadFailed(string data);
  57. void OnHomed();
  58. void OnLoaded();
  59. void OnUnloaded();
  60. void OnUnloadFailed(string data);
  61. void OnClamped(bool isUnloadClamp);
  62. void OnClampFailed(string data);
  63. void OnUnclamped();
  64. void OnUnclampFailed(string data);
  65. void OnCarrierIDWrite(string data);
  66. void OnCarrierIDWriteFailed(string data);
  67. void OnTagDataRead(string data);
  68. void OnTagDataReadFailed(string data);
  69. void OnTagDataWrite(string data);
  70. void OnTagDataWriteFailed(string data);
  71. }
  72. interface IMessageHandler
  73. {
  74. bool IsCompleted { get; }
  75. event EventHandler<EfemActionArgs> CommandUpdated;
  76. event EventHandler<EfemEventArgs> EventUpdated;
  77. event EventHandler<EfemErrorArgs> ErrorOccurred;
  78. void Send(IEfemMessage msg);
  79. //void Send(string str);
  80. void ReceiveMessage(string str);
  81. }
  82. class EfemActionArgs : EventArgs
  83. {
  84. public ushort ID { get; set; }
  85. public ModuleName Module { get; set; }
  86. public EfemOperation CommandType { get; set; }
  87. public ActionStatus Status { get; set; }
  88. public string Data { get; set; }
  89. }
  90. class EfemEventArgs : EventArgs
  91. {
  92. public string EvtStr { get; set; }
  93. public ModuleName Module { get; set; }
  94. public EfemOperation CommandType { get; set; }
  95. public IList<string> DataList { get; set; }
  96. }
  97. class EfemErrorArgs : EventArgs
  98. {
  99. public string Factor { get; set; }
  100. public string Description { get; set; }
  101. public ModuleName Module { get; set; }
  102. public string Message { get; set; }
  103. public EfemOperation CommandType { get; set; }
  104. public ActionStatus Status { get; set; }
  105. public string Data { get; set; }
  106. public ushort ID { get; set; }
  107. }
  108. }