1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- using MECF.Framework.Common.DataCenter;
- using MECF.Framework.Common.Equipment;
- using OpenSEMI.ClientBase;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using ACC = Aitex.Core.Common;
- namespace CyberX8_MainPages.Unity
- {
- public class WaferStatusImp
- {
- public WaferStatusImp(IQueryDataService dataService)
- {
- DataService = dataService;
- }
- public List<WaferInfo> GetWaferStatus(string moduleID)
- {
- List<WaferInfo> result = new List<WaferInfo>();
- string param = moduleID + ".ModuleWaferList";
- ACC.WaferInfo[] wafers = QueryDataClient.Instance.Service.GetData(param) as ACC.WaferInfo[];
- if (wafers != null)
- {
- for (int i = 0; i < wafers.Length; i++)
- {
- result.Add(WaferInfoConverter(wafers[i], moduleID, i));
- }
- }
- return result;
- }
- private WaferInfo WaferInfoConverter(ACC.WaferInfo awafer, string modid, int slotid)
- {
- WaferInfo wafer = new WaferInfo();
- wafer.ModuleID = modid;
- wafer.SlotID = slotid;
- wafer.SlotIndex = slotid + 1;
- wafer.WaferID = awafer.WaferID;
- wafer.SourceName = awafer.WaferOrigin;
- wafer.WaferStatus = WaferStatusConverter(awafer);
- if (!string.IsNullOrEmpty(awafer.SequenceName))
- {
- wafer.SequenceName = awafer.SequenceName;
- }
- return wafer;
- }
- //0: trans?
- //1:goden
- //2:blue
- //3:cyan
- //4:green
- //5:error
- private int WaferStatusConverter(ACC.WaferInfo awafer)
- {
- if (awafer.Status == ACC.WaferStatus.Empty)
- return 0;
- if (awafer.Status == ACC.WaferStatus.Normal)
- {
- if (awafer.WaferType == ACC.WaferType.Assit)
- {
- return 6;
- }
- else
- {
- switch (awafer.ProcessState)
- {
- case ACC.EnumWaferProcessStatus.InProcess: return 3;
- case ACC.EnumWaferProcessStatus.Completed: return 4;
- case ACC.EnumWaferProcessStatus.Failed: return 5;
- case ACC.EnumWaferProcessStatus.Idle:
- return awafer.ProcessJob == null ? 1 : 2;
- case ACC.EnumWaferProcessStatus.Canceled:
- return 7;
- case ACC.EnumWaferProcessStatus.MisProcessed:
- return 8;
- case ACC.EnumWaferProcessStatus.MisSrdProcess:
- return 9;
- }
- }
- }
- if (awafer.Status == ACC.WaferStatus.Dummy)
- {
- return 6;
- }
- return 1;
- }
- private IQueryDataService DataService;
- }
- }
|