| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160 | using System;using System.Runtime.Serialization;using Aitex.Core.Common;using Aitex.Core.Util;using MECF.Framework.Common.CommonData;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,    }    [Serializable]    [DataContract]    public class CarrierInfo:NotifiableItem    {        public bool IsEmpty        {            get { return Status == CarrierStatus.Empty; }        }        private CarrierStatus status;        [DataMember]        public CarrierStatus Status        {            get            {                return status;            }            set            {                status = value;                InvokePropertyChanged(nameof(Status));            }        }        [DataMember]        public Guid InnerId { get; set; }        [DataMember]        public string Name { get; set; }         public object ProcessJob;        [DataMember]        public string CarrierId { 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; }		public T GetProcessJob<T>()        {            return (T)ProcessJob;        }        public bool IsProcessed(string module)        {            return ProcessStatus.ContainsKey(module) && ProcessStatus[module];        }        public bool IsProcessed( )        {            return false;        }        public void Clear()        {            this.Status = CarrierStatus.Empty;            this.InnerId = Guid.Empty;            this.ProcessJob = null;            this.Name = "";            this.IsStart = false;            this.CarrierId = "";            this.Rfid = "";            this.JobSelectedRecipeName = "";            this.LotId = "";            this.ProductCategory = "";            this.ProcessStatus = new SerializableDictionary<string, bool>();            this.Attributes = new SerializableDictionary<string, string>();            this.Priority = 0;        }        public CarrierInfo(int capacity)        {            Wafers = new WaferInfo[capacity];            InnerId = Guid.Empty;            Status = CarrierStatus.Empty;            ProcessStatus = new SerializableDictionary<string, bool>();            Attributes = new SerializableDictionary<string, string>();        }        public void CopyInfo(CarrierInfo source)        {            this.CarrierId = source.CarrierId;            this.InnerId = source.InnerId;            this.Attributes = source.Attributes;            this.CarrierId = source.CarrierId;            this.Rfid = source.Rfid;            this.IsStart = source.IsStart;            this.JobSelectedRecipeName = source.JobSelectedRecipeName;            this.LoadTime = source.LoadTime;            this.LotId = source.LotId;            this.Name = source.Name;            this.ProcessStatus = source.ProcessStatus;            this.Status = source.status;            this.ProductCategory = source.ProductCategory;            this.Wafers = source.Wafers;            this.ProcessJob = source.ProcessJob;            this.Priority = source.Priority;        }    }}
 |