WaferStatusImp.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. using MECF.Framework.Common.DataCenter;
  2. using OpenSEMI.ClientBase;
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Linq;
  6. using System.Text;
  7. using System.Threading.Tasks;
  8. using ACC = Aitex.Core.Common;
  9. namespace Venus_MainPages.Unity
  10. {
  11. public class WaferStatusImp
  12. {
  13. public WaferStatusImp(IQueryDataService dataService)
  14. {
  15. DataService = dataService;
  16. }
  17. public List<WaferInfo> GetWaferStatus(string moduleID)
  18. {
  19. List<WaferInfo> result = new List<WaferInfo>();
  20. string param = moduleID + ".ModuleWaferList";
  21. ACC.WaferInfo[] wafers = QueryDataClient.Instance.Service.GetData(param) as ACC.WaferInfo[];
  22. if (wafers != null)
  23. {
  24. for (int i = 0; i < wafers.Length; i++)
  25. {
  26. result.Add(WaferInfoConverter(wafers[i], moduleID, i));
  27. }
  28. }
  29. return result;
  30. }
  31. private WaferInfo WaferInfoConverter(ACC.WaferInfo awafer, string modid, int slotid)
  32. {
  33. WaferInfo wafer = new WaferInfo();
  34. wafer.ModuleID = modid;
  35. wafer.SlotID = slotid;
  36. wafer.SlotIndex = slotid + 1;
  37. wafer.WaferID = awafer.WaferID;
  38. wafer.SourceName = awafer.WaferOrigin;
  39. wafer.WaferStatus = WaferStatusConverter(awafer);
  40. return wafer;
  41. }
  42. //0: trans?
  43. //1:goden
  44. //2:blue
  45. //3:cyan
  46. //4:green
  47. //5:error
  48. private int WaferStatusConverter(ACC.WaferInfo awafer)
  49. {
  50. if (awafer.Status == ACC.WaferStatus.Empty)
  51. return 0;
  52. if (awafer.Status == ACC.WaferStatus.Normal)
  53. {
  54. switch (awafer.ProcessState)
  55. {
  56. case ACC.EnumWaferProcessStatus.InProcess: return 3;
  57. case ACC.EnumWaferProcessStatus.Completed: return 4;
  58. case ACC.EnumWaferProcessStatus.Failed: return 5;
  59. case ACC.EnumWaferProcessStatus.Idle: return awafer.ProcessJob == null ? 1 : 2;
  60. }
  61. }
  62. if (awafer.Status == ACC.WaferStatus.Dummy)
  63. {
  64. return 1;
  65. }
  66. return 5;
  67. }
  68. private IQueryDataService DataService;
  69. }
  70. }