SetHandler.cs 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179
  1. using Aitex.Core.RT.Device;
  2. using Aitex.Sorter.Common;
  3. namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.LoadPorts.TDK
  4. {
  5. public class ResetHandler : IMsg
  6. {
  7. public bool background { get; private set; }
  8. public string deviceID { private get; set; }
  9. public ResetHandler()
  10. {
  11. background = true;
  12. }
  13. public string package(params object[] args)
  14. {
  15. return "SET:RESET";
  16. }
  17. public string retry()
  18. {
  19. return "RST:RESET";
  20. }
  21. public bool unpackage(string type, string[] cmds)
  22. {
  23. if (type.Equals("INF"))
  24. return true;
  25. return false;
  26. }
  27. public bool canhandle(string id)
  28. {
  29. return id.Equals("RESET");
  30. }
  31. }
  32. /// <summary>
  33. /// 将LoadPort切换为FOSB模式
  34. /// </summary>
  35. public class FOSBModeHandler : IMsg
  36. {
  37. public bool background { get; private set; }
  38. public string deviceID { private get; set; }
  39. public FOSBModeHandler()
  40. {
  41. background = true;
  42. }
  43. public string package(params object[] args)
  44. {
  45. return "SET:FSBON";
  46. }
  47. public string retry()
  48. {
  49. return "RST:FSBON";
  50. }
  51. public bool unpackage(string type, string[] cmds)
  52. {
  53. if (type.Equals("INF"))
  54. return true;
  55. return false;
  56. }
  57. public bool canhandle(string id)
  58. {
  59. return id.Equals("FSBON");
  60. }
  61. }
  62. /// <summary>
  63. /// 将LoadPort切换为FOUP模式
  64. /// </summary>
  65. public class FOUPModeHandler : IMsg
  66. {
  67. public bool background { get; private set; }
  68. public string deviceID { private get; set; }
  69. public FOUPModeHandler()
  70. {
  71. background = true;
  72. }
  73. public string package(params object[] args)
  74. {
  75. return "SET:FSBOF";
  76. }
  77. public string retry()
  78. {
  79. return "RST:FSBOF";
  80. }
  81. public bool unpackage(string type, string[] cmds)
  82. {
  83. if (type.Equals("INF"))
  84. return true;
  85. return false;
  86. }
  87. public bool canhandle(string id)
  88. {
  89. return id.Equals("FSBOF");
  90. }
  91. }
  92. public class IndicatorHandler : IMsg
  93. {
  94. public bool background { get; private set; }
  95. public string deviceID { private get; set; }
  96. private string[] _opstring = { "LON", "LBL", "LOF" };
  97. private string _cmd =" ";
  98. Indicator light;
  99. IndicatorState func;
  100. public IndicatorHandler()
  101. {
  102. background = true;
  103. }
  104. public string package(params object[] args)
  105. {
  106. light = (Indicator)args[0];
  107. func = (IndicatorState)args[1];
  108. _cmd = indicator(light,func);
  109. return string.Format("SET:{0}", _cmd);
  110. }
  111. public string retry()
  112. {
  113. return string.Format("RST:{0}", _cmd);
  114. }
  115. public bool unpackage(string type, string[] cmds)
  116. {
  117. if (type.Equals("INF"))
  118. {
  119. SetLight(light,func);
  120. TDKLoadPort device = DEVICE.GetDevice<TDKLoadPort>(deviceID);
  121. string reason = string.Empty;
  122. // device.QueryIndicator(out reason);
  123. return true;
  124. }
  125. return false;
  126. }
  127. public bool canhandle(string id)
  128. {
  129. return id.Equals(_cmd);
  130. }
  131. private string indicator(Indicator light, IndicatorState op)
  132. {
  133. return string.Format("{0}{1:D2}", _opstring[(int)op], (int)light);
  134. }
  135. private void SetLight(Indicator light, IndicatorState op)
  136. {
  137. TDKLoadPort device = DEVICE.GetDevice<TDKLoadPort>(deviceID);
  138. switch (light)
  139. {
  140. case Indicator.LOAD:
  141. device.IndicatiorLoad = op;
  142. break;
  143. case Indicator.UNLOAD:
  144. device.IndicatiorUnload = op;
  145. break;
  146. case Indicator.OPACCESS:
  147. device.IndicatiorOpAccess = op;
  148. break;
  149. }
  150. }
  151. }
  152. }