EfemInterface.cs 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  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. WaferStatus[] WaferInfo { get; set; }
  41. bool JobDone { get; set; }
  42. Stopwatch TimerNotifyJobDone { get; set; }
  43. void Home();
  44. void NoteJobStart();
  45. void NoteJobComplete();
  46. void Map();
  47. void SetOnline(bool on);
  48. }
  49. interface IMessageHandler
  50. {
  51. bool IsCompleted { get; }
  52. event EventHandler<EfemActionArgs> CommandUpdated;
  53. event EventHandler<EfemEventArgs> EventUpdated;
  54. event EventHandler<EfemErrorArgs> ErrorOccurred;
  55. void Send(IEfemMessage msg);
  56. //void Send(string str);
  57. void ReceiveMessage(string str);
  58. }
  59. class EfemActionArgs : EventArgs
  60. {
  61. public ushort ID { get; set; }
  62. public ModuleName Module { get; set; }
  63. public EfemOperation CommandType { get; set; }
  64. public ActionStatus Status { get; set; }
  65. public string Data { get; set; }
  66. }
  67. class EfemEventArgs : EventArgs
  68. {
  69. public string EvtStr { get; set; }
  70. public ModuleName Module { get; set; }
  71. public EfemOperation CommandType { get; set; }
  72. public IList<string> DataList { get; set; }
  73. }
  74. class EfemErrorArgs : EventArgs
  75. {
  76. public string Factor { get; set; }
  77. public string Description { get; set; }
  78. public ModuleName Module { get; set; }
  79. public string Message { get; set; }
  80. }
  81. }