RecipeFACallback.cs 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using Aitex.Core.RT.Event;
  7. using Aitex.Core.Util;
  8. using MECF.Framework.Common.Equipment;
  9. using FurnaceRT.FAs;
  10. namespace FurnaceRT.Equipments.PMs
  11. {
  12. public class RecipeFACallback : IRecipeFACallback
  13. {
  14. private const string PM1RecipeStart = "PM1RecipeStart";
  15. private const string PM1RecipeComplete = "PM1RecipeComplete";
  16. private const string PM1RecipeStepStart = "PM1RecipeStepStart";
  17. private const string PM1RecipeStepEnd = "PM1RecipeStepEnd";
  18. private const string PM1RecipeFailed = "PM1RecipeFailed";
  19. private const string PM2RecipeStart = "PM2RecipeStart";
  20. private const string PM2RecipeComplete = "PM2RecipeComplete";
  21. private const string PM2RecipeStepStart = "PM2RecipeStepStart";
  22. private const string PM2RecipeStepEnd = "PM2RecipeStepEnd";
  23. private const string PM2RecipeFailed = "PM2RecipeFailed";
  24. private Dictionary<ModuleName, string> PMRecipeStart = new Dictionary<ModuleName, string>()
  25. {
  26. {ModuleName.PM1, PM1RecipeStart},
  27. {ModuleName.PM2, PM2RecipeStart},
  28. };
  29. private Dictionary<ModuleName, string> PMRecipeComplete = new Dictionary<ModuleName, string>()
  30. {
  31. {ModuleName.PM1, PM1RecipeComplete},
  32. {ModuleName.PM2, PM2RecipeComplete},
  33. };
  34. private Dictionary<ModuleName, string> PMRecipeStepStart = new Dictionary<ModuleName, string>()
  35. {
  36. {ModuleName.PM1, PM1RecipeStepStart},
  37. {ModuleName.PM2, PM2RecipeStepStart},
  38. };
  39. private Dictionary<ModuleName, string> PMRecipeStepEnd = new Dictionary<ModuleName, string>()
  40. {
  41. {ModuleName.PM1, PM1RecipeStepEnd},
  42. {ModuleName.PM2, PM2RecipeStepEnd},
  43. };
  44. private Dictionary<ModuleName, string> PMRecipeFailed = new Dictionary<ModuleName, string>()
  45. {
  46. {ModuleName.PM1, PM1RecipeFailed},
  47. {ModuleName.PM2, PM2RecipeFailed},
  48. };
  49. public RecipeFACallback()
  50. {
  51. EV.Subscribe(new EventItem("Event", PM1RecipeStart, PM1RecipeStart));
  52. EV.Subscribe(new EventItem("Event", PM1RecipeComplete, PM1RecipeComplete));
  53. EV.Subscribe(new EventItem("Event", PM1RecipeStepStart, PM1RecipeStepStart));
  54. EV.Subscribe(new EventItem("Event", PM1RecipeStepEnd, PM1RecipeStepEnd));
  55. EV.Subscribe(new EventItem("Event", PM1RecipeFailed, PM1RecipeFailed));
  56. EV.Subscribe(new EventItem("Event", PM2RecipeStart, PM2RecipeStart));
  57. EV.Subscribe(new EventItem("Event", PM2RecipeComplete, PM2RecipeComplete));
  58. EV.Subscribe(new EventItem("Event", PM2RecipeStepStart, PM2RecipeStepStart));
  59. EV.Subscribe(new EventItem("Event", PM2RecipeStepEnd, PM2RecipeStepEnd));
  60. EV.Subscribe(new EventItem("Event", PM2RecipeFailed, PM2RecipeFailed));
  61. }
  62. public void RecipeComplete(string module, string recipeName)
  63. {
  64. ModuleName moduleName = ModuleHelper.Converter(module);
  65. EV.Notify(PMRecipeComplete[moduleName], new SerializableDictionary<string, string>()
  66. {
  67. {DVIDName.RecipeID, recipeName},
  68. {DVIDName.StationName, module},
  69. });
  70. }
  71. public void RecipeFailed(string module, string recipeName)
  72. {
  73. ModuleName moduleName = ModuleHelper.Converter(module);
  74. EV.Notify(PMRecipeFailed[moduleName], new SerializableDictionary<string, string>()
  75. {
  76. {DVIDName.RecipeID, recipeName},
  77. {DVIDName.StationName, module},
  78. });
  79. }
  80. public void RecipeStart(string module, string recipeName)
  81. {
  82. ModuleName moduleName = ModuleHelper.Converter(module);
  83. EV.Notify(PMRecipeStart[moduleName], new SerializableDictionary<string, string>()
  84. {
  85. {DVIDName.RecipeID, recipeName},
  86. {DVIDName.StationName, module},
  87. });
  88. }
  89. public void RecipeStepEnd(string module, string recipeName, int stepNumber)
  90. {
  91. ModuleName moduleName = ModuleHelper.Converter(module);
  92. EV.Notify(PMRecipeStepEnd[moduleName], new SerializableDictionary<string, string>()
  93. {
  94. {DVIDName.RecipeID, recipeName},
  95. {DVIDName.StationName, module},
  96. {DVIDName.RecipeStepNumber, (stepNumber+1).ToString()},
  97. });
  98. }
  99. public void RecipeStepStart(string module, string recipeName, int stepNumber)
  100. {
  101. ModuleName moduleName = ModuleHelper.Converter(module);
  102. EV.Notify(PMRecipeStepStart[moduleName], new SerializableDictionary<string, string>()
  103. {
  104. {DVIDName.RecipeID, recipeName},
  105. {DVIDName.StationName, module},
  106. {DVIDName.RecipeStepNumber, (stepNumber+1).ToString()},
  107. });
  108. }
  109. }
  110. }