EfemInterface.cs 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  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);
  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 IsLoaded { get; set; }
  41. bool IsClamped { get; set; }
  42. string CarrierId { get; set; }
  43. bool IsThicknessValid { get; }
  44. string SmartTag { get; set; }
  45. WaferStatus[] WaferInfo { get; set; }
  46. bool JobDone { get; set; }
  47. Stopwatch TimerNotifyJobDone { get; set; }
  48. void Home();
  49. void NoteJobStart();
  50. void NoteJobComplete();
  51. void Map();
  52. void SetOnline(bool on);
  53. void OnCarrierIDRead(string data);
  54. void OnCarrierIDReadFailed(string data);
  55. void OnLoadFailed(string data);
  56. void OnHomed();
  57. void OnLoaded();
  58. void OnUnloaded();
  59. void OnUnloadFailed(string data);
  60. void OnClamped(bool isUnloadClamp);
  61. void OnClampFailed(string data);
  62. void OnUnclamped();
  63. void OnUnclampFailed(string data);
  64. void OnCarrierIDWrite(string data);
  65. void OnCarrierIDWriteFailed(string data);
  66. void OnTagDataRead(string data);
  67. void OnTagDataReadFailed(string data);
  68. void OnTagDataWrite(string data);
  69. void OnTagDataWriteFailed(string data);
  70. }
  71. interface IMessageHandler
  72. {
  73. bool IsCompleted { get; }
  74. event EventHandler<EfemActionArgs> CommandUpdated;
  75. event EventHandler<EfemEventArgs> EventUpdated;
  76. event EventHandler<EfemErrorArgs> ErrorOccurred;
  77. void Send(IEfemMessage msg);
  78. //void Send(string str);
  79. void ReceiveMessage(string str);
  80. }
  81. class EfemActionArgs : EventArgs
  82. {
  83. public ushort ID { get; set; }
  84. public ModuleName Module { get; set; }
  85. public EfemOperation CommandType { get; set; }
  86. public ActionStatus Status { get; set; }
  87. public string Data { get; set; }
  88. }
  89. class EfemEventArgs : EventArgs
  90. {
  91. public string EvtStr { get; set; }
  92. public ModuleName Module { get; set; }
  93. public EfemOperation CommandType { get; set; }
  94. public IList<string> DataList { get; set; }
  95. }
  96. class EfemErrorArgs : EventArgs
  97. {
  98. public string Factor { get; set; }
  99. public string Description { get; set; }
  100. public ModuleName Module { get; set; }
  101. public string Message { get; set; }
  102. public EfemOperation CommandType { get; set; }
  103. public ActionStatus Status { get; set; }
  104. public string Data { get; set; }
  105. public ushort ID { get; set; }
  106. }
  107. }