| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205 |
- using OldWorldData.CommonData.DeviceData;
- using Aitex.Core.Util;
- using MECF.Framework.Common.Equipment;
- using System.ComponentModel;
- using System.Runtime.Serialization;
- namespace MECF.Framework.Common.SubstrateTrackings
- {
- public enum ProcessJobStateEnum
- {
- pjCREATED = -1,
- pjQUEUED = 0,
- pjSETTING_UP = 1,
- pjWAITING_FOR_START = 2,
- pjPROCESSING = 3,
- pjPROCESS_COMPLETED = 4,
- pjRESERVED5 = 5,
- pjPAUSING = 6,
- pjPAUSED = 7,
- pjSTOPPING = 8,
- pjABORTING = 9,
- pjSTOPPED = 10,
- pjABORTED = 11,
- pjPROCESSJOB_COMPLETED = 12,
- }
- public enum CarrierStatus
- {
- Empty = 0,
- Normal = 1,
- [Description("NOFOUP")]
- NOFOUP = 5,
- [Description("READY")]
- READY = 10,
- [Description("W.CHARG")]
- WCHARG = 20,
- [Description("ON.BOAT")]
- ONBOAT = 30,
- [Description("W.DCHRG")]
- WDCHRG = 40,
- [Description("PRC.END")]
- PRCEND = 50,
- [Description("SERRE_1")]
- SERRE1 = 60,
- [Description("SERRE_2")]
- SERRE2 = 70,
- [Description("SERRE_3")]
- SERRE3 = 80,
- [Description("MOVECST")]
- MOVECST = 90,
- [Description("TRAKCST")]
- TRAKCST = 100,
- [Description("MAPPING")]
- MAPPING = 110,
- }
- [Serializable]
- [DataContract]
- public class CarrierInfo
- {
- public bool IsEmpty
- {
- get { return Status == CarrierStatus.Empty; }
- }
- [DataMember]
- public CarrierStatus Status { get; set; }
- [DataMember]
- public Guid InnerId { get; set; }
- [DataMember]
- public string Name { get; set; }
- public object ProcessJob;
- [DataMember]
- public string CarrierId { get; set; }
- [DataMember]
- public int StockerIndex { get; set; }
- [DataMember]
- public string Rfid { get; set; }
- [DataMember]
- public string LotId { get; set; }
- [DataMember]
- public string ProductCategory { get; set; }
- [DataMember]
- public WaferInfo[] Wafers { get; set; }
- [DataMember]
- public SerializableDictionary<string, bool> ProcessStatus { get; set; }
- [DataMember]
- public SerializableDictionary<string, string> Attributes { get; set; }
- [DataMember]
- public bool IsStart { get; set; }
- [DataMember]
- public DateTime LoadTime { get; set; }
- [DataMember]
- public string JobSelectedRecipeName { get; set; }
- [DataMember]
- public int Priority { get; set; }
- [DataMember]
- public ModuleName InternalModuleName { get; set; } //For Internal carrier only
- [DataMember]
- public WaferSize CarrierWaferSize { get; set; }
- [DataMember]
- public bool IsProcessCompleted { get; set; }
- [DataMember]
- public bool IsVertical { get; set; }
- [DataMember]
- public bool HasWaferIn { get; set; }
- [DataMember]
- public int NextSequenceStep { get; set; }
- [DataMember]
- public string CarrierType { get; set; }
- [DataMember]
- public bool IsMapped { get; set; }
- [DataMember]
- public bool IsMapOK { get; set; }
- [DataMember]
- public int PortID { get; set; }
- public int WaferCount
- {
- get { return Wafers.Where(x => x != null && !x.IsEmpty).ToArray().Length; }
- }
- [DataMember]
- public string UICarrierType { get; set; } = "P1";
- [DataMember]
- public bool UICarrierTypeVisibility { get; set; } = true;
- [DataMember]
- public string UICarrierWaferCount { get; set; } = "(0)";
- [DataMember]
- public bool UICarrierWaferCountVisibility { get; set; } = true;
- [DataMember]
- public string UICarrierStatus { get { return UICarrierStatusEnum.ToString(); } set { } }
- [DataMember]
- public CarrierStatus UICarrierStatusEnum { get; set; }
- [DataMember]
- public bool UICarrierStatusVisibility { get; set; } = true;
- [DataMember]
- public string UICarrierColor { get; set; } = "#ccc";
- [DataMember]
- public bool UICarrierColorVisibility { get; set; } = true;
- [DataMember]
- public bool UIStockerExitFoup { get; set; } = false;
- [DataMember]
- public bool UIExitFoup { get; set; } = false;
- public object Job { get; set; }
- public T GetProcessJob<T>()
- {
- return (T)ProcessJob;
- }
- public bool IsProcessed(string module)
- {
- return ProcessStatus.ContainsKey(module) && ProcessStatus[module];
- }
- /// <summary>
- /// capacity表示foup的slot数量
- /// </summary>
- /// <param name="capacity"></param>
- public CarrierInfo(int capacity)
- {
- List<WaferInfo> waferList = new List<WaferInfo>();
- for (int i = 0; i < capacity; i++)
- {
- waferList.Add(new WaferInfo((i + 1).ToString()));
- }
- Wafers = [.. waferList];
- InnerId = Guid.Empty;
- Status = CarrierStatus.Empty;
- ProcessStatus = [];
- Attributes = [];
- }
- }
- }
|