ModuleManager.cs 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. using System;
  2. using System.Collections.Generic;
  3. using MECF.Framework.Common.DataCenter;
  4. using OpenSEMI.ClientBase;
  5. using CyberX8_Themes.Unity;
  6. namespace CyberX8_MainPages.Unity
  7. {
  8. public static class ModuleManager
  9. {
  10. public static event Action<FlashWaferInformation> FlashWaferEvent;
  11. public static void OnFlashWafer(FlashWaferInformation para)
  12. {
  13. FlashWaferEvent?.Invoke(para);
  14. }
  15. /// <summary>
  16. /// all module need init
  17. /// </summary>
  18. public static readonly List<string> ModulesID = new List<string>()
  19. {
  20. "LP1","LP2","LP3","EfemRobot","Aligner1","SRD1","SRD2","PUF1","PUF2","Dummy1","Dummy2","Loader1"
  21. };
  22. public static Dictionary<string, ModuleInfo> ModuleInfos { get; private set; } = new Dictionary<string, ModuleInfo>();
  23. static ModuleManager()
  24. {
  25. string installModules = (string)QueryDataClient.Instance.Service.GetConfig("System.InstalledModules");
  26. FlashWaferEvent += ModuleManager_FlashWaferEvent;
  27. }
  28. private static void ModuleManager_FlashWaferEvent(FlashWaferInformation obj)
  29. {
  30. }
  31. public static void Initialize()
  32. {
  33. ModuleInfos.Clear();
  34. foreach (string moduleID in ModulesID)
  35. {
  36. ModuleInfo modInfo = CreateModule(moduleID, true);
  37. ModuleInfos.Add(moduleID, modInfo);
  38. }
  39. }
  40. public static WaferStatusHandler CreateWaferStatusManager()
  41. {
  42. WaferStatusHandler WaferStatusManager;
  43. WaferStatusImp waferStatusImp = new WaferStatusImp(QueryDataClient.Instance.Service);
  44. WaferStatusManager = new WaferStatusHandler(waferStatusImp.GetWaferStatus, ModuleManager.ModulesID);
  45. WaferStatusManager.Handle();
  46. return WaferStatusManager;
  47. }
  48. private static ModuleInfo CreateModule(string p_modid, bool p_install)
  49. {
  50. ModuleInfo m_data;
  51. if (p_install)
  52. m_data = new ModuleInfo(p_modid, p_install, CreateWaferStatusManager().WaferStatusDic[p_modid], false);
  53. else
  54. m_data = new ModuleInfo(p_modid, p_install, null, false);
  55. return m_data;
  56. }
  57. }
  58. public class FlashWaferInformation
  59. {
  60. public string ModuleName { get; set; }
  61. public int SoltId { get; set; }
  62. }
  63. }