| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611 | using System;using System.Collections.Generic;using System.Linq;using System.Runtime.Serialization;using System.Text;using System.Threading.Tasks;namespace MECF.Framework.Common.Equipment{    /// <summary>    /// 在框架中,Module指具备放置Wafer的单元    /// </summary>    [DataContract]    [Serializable]    public enum ModuleName    {               [EnumMember]        System = 0,        [EnumMember]        LP1,        [EnumMember]        LP2,        [EnumMember]        LP3,        [EnumMember]        LP4,        [EnumMember]        LP5,        [EnumMember]        LP6,        [EnumMember]        LP7,        [EnumMember]        LP8,        [EnumMember]        LP9,        [EnumMember]        LP10,        //robot modules        //[EnumMember]        //Robot,        [EnumMember]        VaccumRobot,        [EnumMember]        LoadRobot,        [EnumMember]        EfemRobot,        [EnumMember]        TMRobot,        //upenders        //[EnumMember]        //Upender,        //efem        [EnumMember]        EFEM,        //aligners        [EnumMember]        Aligner,        //load locks        [EnumMember]        LL1,        [EnumMember]        LL2,        [EnumMember]        LL3,        [EnumMember]        LL4,        //load locks        //[EnumMember]        //LLA,        //[EnumMember]        //LLB,        //[EnumMember]        //LLC,        //[EnumMember]        //LLD,        //[EnumMember]        //LLE,        //[EnumMember]        //LLF,        //[EnumMember]        //LLG,        //[EnumMember]        //LLH,        //[EnumMember]        //VCE1,        //[EnumMember]        //VCE2,        //[EnumMember]        //VCEA,        //transfer modules        [EnumMember]        TM,        [EnumMember]        Cooling1,        [EnumMember]        Cooling2,        //buffers        [EnumMember]        Buffer,        [EnumMember]        Buffer1,        [EnumMember]        Buffer2,        [EnumMember]        Buffer3,        [EnumMember]        Buffer4,        [EnumMember]        Buffer5,        [EnumMember]        Buffer6,                //PMs        [EnumMember]        PM,        [EnumMember]        PM1,        [EnumMember]        PM2,        [EnumMember]        PM3,        [EnumMember]        PM4,        [EnumMember]        PM5,        [EnumMember]        PM6,        [EnumMember]        PM7,        [EnumMember]        PM8,        [EnumMember]        PMA,        [EnumMember]        PMB,        [EnumMember]        PMC,        [EnumMember]        PMD,        [EnumMember]        Robot,        [EnumMember]        Handler,        [EnumMember]        WIDReader1,        [EnumMember]        WIDReader2,        [EnumMember]        TurnOverStation,        [EnumMember]        Host,        [EnumMember]        Cooling,        [EnumMember]        Cassette,        [EnumMember]        CassetteA,        [EnumMember]        CassetteB,        [EnumMember]        LoadLock,        [EnumMember]        SMIFLeft,        [EnumMember]        SMIFRight,        [EnumMember]        SMIFA,        [EnumMember]        SMIFB,               [EnumMember]        CassetteRobot,        [EnumMember]        SignalTower,        [EnumMember]        TurnStation,        [EnumMember]        Stocker1,        [EnumMember]        Stocker2,        [EnumMember]        Stocker3,        [EnumMember]        Stocker4,        [EnumMember]        Stocker5,        [EnumMember]        Stocker6,        [EnumMember]        Stocker7,        [EnumMember]        Stocker8,        [EnumMember]        Stocker9,        [EnumMember]        Stocker10,        [EnumMember]        Stocker11,        [EnumMember]        Stocker12,        [EnumMember]        Stocker13,        [EnumMember]        Stocker14,        [EnumMember]        Stocker15,        [EnumMember]        Stocker16,        [EnumMember]        Stocker17,        [EnumMember]        Stocker18,        [EnumMember]        Stocker19,        [EnumMember]        Stocker20,        [EnumMember]        Stocker21,        [EnumMember]        StageA,        [EnumMember]        StageB,        [EnumMember]        WaferRobot,        [EnumMember]        Boat,        [EnumMember]        CMB,        [EnumMember]        Cassette1,        [EnumMember]        Cassette2,        [EnumMember]        Cassette3,        [EnumMember]        Cassette4,        [EnumMember]        Cassette5,        [EnumMember]        CarrierRobot,        [EnumMember]        FIMS1,        [EnumMember]        FIMS2,        [EnumMember]        Minics = 0,    }    public static class ModuleHelper    {        public static bool IsTurnOverStation(ModuleName unit)        {            return unit == ModuleName.TurnOverStation;        }        public static bool IsLoadPort(ModuleName unit)        {            return unit == ModuleName.LP1                   || unit == ModuleName.LP2                   || unit == ModuleName.LP3                   || unit == ModuleName.LP4                   || unit == ModuleName.LP5                   || unit == ModuleName.LP6                   || unit == ModuleName.LP7                   || unit == ModuleName.LP8                   || unit == ModuleName.LP9                   || unit == ModuleName.LP10;        }        public static bool IsCassette(ModuleName unit)        {            return unit == ModuleName.Cassette1                   || unit == ModuleName.Cassette2                   || unit == ModuleName.Cassette3                   || unit == ModuleName.Cassette4                   || unit == ModuleName.Cassette5                   || unit == ModuleName.Cassette;        }        public static bool IsCOT(string unit)        {            return unit.ToString().Contains( "2_1")                   || unit.ToString().Contains("2_2");        }        public static bool IsBuffer(ModuleName unit)        {            return unit == ModuleName.Buffer                   || unit == ModuleName.Buffer1                   || unit == ModuleName.Buffer2                   || unit == ModuleName.Buffer3                   || unit == ModuleName.Buffer4                   || unit == ModuleName.Buffer5                   || unit == ModuleName.Buffer6;        }        public static bool IsBufferStocker(ModuleName unit)        {            return unit == ModuleName.Stocker1                   || unit == ModuleName.Stocker2                   || unit == ModuleName.Stocker3                   || unit == ModuleName.Stocker4                   || unit == ModuleName.Stocker5                   || unit == ModuleName.Stocker6                   || unit == ModuleName.Stocker7                   || unit == ModuleName.Stocker8                   || unit == ModuleName.Stocker9                   || unit == ModuleName.Stocker10                   || unit == ModuleName.Stocker11                   || unit == ModuleName.Stocker12                   || unit == ModuleName.Stocker13                   || unit == ModuleName.Stocker14                   || unit == ModuleName.Stocker15                   || unit == ModuleName.Stocker16;        }        public static bool IsFIMS(ModuleName unit)        {            return unit == ModuleName.FIMS1 || unit == ModuleName.FIMS2;        }        public static bool IsPm(string unit)        {            return IsPm(ModuleHelper.Converter(unit));        }        public static bool IsPm(ModuleName unit)        {            return unit == ModuleName.PM1                   || unit == ModuleName.PM2                   || unit == ModuleName.PM3                   || unit == ModuleName.PM4                   || unit == ModuleName.PM5                   || unit == ModuleName.PM6                   || unit == ModuleName.PM7                   || unit == ModuleName.PM8                   || unit == ModuleName.PM                   || unit == ModuleName.PMA                   || unit == ModuleName.PMB                   || unit == ModuleName.PMC                   || unit == ModuleName.PMD                    ;        }         public static bool IsLoadLock(string unit)        {            return IsLoadLock(ModuleHelper.Converter(unit));        }        public static bool IsLoadLock(ModuleName unit)        {            return unit == ModuleName.LoadLock;        }        public static bool IsStocker(ModuleName unit)        {            return unit == ModuleName.Stocker1                   || unit == ModuleName.Stocker2                   || unit == ModuleName.Stocker3                   || unit == ModuleName.Stocker4                   || unit == ModuleName.Stocker5                   || unit == ModuleName.Stocker6                   || unit == ModuleName.Stocker7                   || unit == ModuleName.Stocker8                   || unit == ModuleName.Stocker9                   || unit == ModuleName.Stocker10                   || unit == ModuleName.Stocker11                   || unit == ModuleName.Stocker12                   || unit == ModuleName.Stocker13                   || unit == ModuleName.Stocker14                   || unit == ModuleName.Stocker15                   || unit == ModuleName.Stocker16                   || unit == ModuleName.Stocker17                   || unit == ModuleName.Stocker18                   || unit == ModuleName.Stocker19                   || unit == ModuleName.Stocker20                   || unit == ModuleName.Stocker21;        }        public static bool IsCooling(string unit)        {            return IsCooling(ModuleHelper.Converter(unit));        }        public static bool IsCooling(ModuleName unit)        {            return unit == ModuleName.Cooling;        }        public static bool IsAligner(string unit)        {            return IsAligner(ModuleHelper.Converter(unit));        }                public static bool IsAligner(ModuleName unit)        {            return unit == ModuleName.Aligner;        }        public static bool IsRobot(string unit)        {            return IsRobot(ModuleHelper.Converter(unit));        }        public static bool IsRobot(ModuleName unit)        {            return unit.ToString().Contains("Robot");        }        public static bool IsEfemRobot(string unit)        {            return IsEfemRobot(ModuleHelper.Converter(unit));        }        public static bool IsEfemRobot(ModuleName unit)        {            return unit == ModuleName.EfemRobot;        }        public static bool IsTMRobot(string unit)        {            return IsTMRobot(ModuleHelper.Converter(unit));        }        public static bool IsTMRobot(ModuleName unit)        {            return unit == ModuleName.TMRobot;        }        public static bool IsTurnStation(ModuleName unit)        {            return unit == ModuleName.TurnStation;        }        public static string GetAbbr(ModuleName module)        {            switch (module)            {                case ModuleName.Aligner: return "PA";                case ModuleName.Robot: return "RB";                default: return module.ToString();            }        }        public static string GetE84LpName(string device)        {            string e84 = string.Empty;            switch(device)            {                case "P1":                case "LP1":                    e84 = "Loadport1E84";                    break;                case "P2":                case "LP2":                    e84 = "Loadport2E84";                    break;                case "P3":                case "LP3":                    e84 = "Loadport3E84";                    break;                case "P4":                case "LP4":                    e84 = "Loadport4E84";                    break;                case "P5":                case "LP5":                    e84 = "Loadport5E84";                    break;                case "P6":                case "LP6":                    e84 = "Loadport6E84";                    break;                case "P7":                case "LP7":                    e84 = "Loadport7E84";                    break;                case "P8":                case "LP8":                    e84 = "Loadport8E84";                    break;                case "P9":                case "LP9":                    e84 = "Loadport9E84";                    break;                case "P10":                case "LP10":                    e84 = "Loadport10E84";                    break;            }            return e84;        }                public static ModuleName Converter(string module)        {            module = module.Replace("-", "_");            if (module.ToLower().Contains("1_1"))                return ModuleName.Cassette1;            if (module.ToLower().Contains("1_2"))                return ModuleName.Cassette2;            if (module.ToLower().Contains("1_3"))                return ModuleName.Cassette3;            if (module.ToLower().Contains("1_4"))                return ModuleName.Cassette4;            if (module.ToLower().Contains("1_5"))                return ModuleName.Cassette5;            return (ModuleName) Enum.Parse(typeof(ModuleName), module);        }        /// <summary>        ///         /// </summary>        /// <param name="index">0 based</param>        /// <returns></returns>        public static ModuleName GetLoadPort(int index)        {            ModuleName[] lps = new ModuleName[]            {                ModuleName.LP1, ModuleName.LP2, ModuleName.LP3, ModuleName.LP4, ModuleName.LP5,                ModuleName.LP6, ModuleName.LP7, ModuleName.LP8, ModuleName.LP9, ModuleName.LP10,            };            return lps[index];        }    }    public class ModuleNameString    {        public const string System = "System";        public const string LDULD = "LDULD";        public const string BufferOut = "BufferOut";        public const string BufferIn = "BufferIn";        public const string Dryer = "Dryer";        public const string QDR = "QDR";        public const string Robot = "Robot";        public const string Handler = "Handler";    }}
 |