| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179 | using Aitex.Core.RT.SCCore;using MECF.Framework.Common.Equipment;using System.Collections.Generic;using System.Linq;namespace FurnaceRT.Equipments.Schedulers{    public class SchedulerModuleFactory    {        protected static SchedulerCarrierRobot _carrierRobot = new SchedulerCarrierRobot();        protected static SchedulerWaferRobot _waferRobot = new SchedulerWaferRobot();        protected static SchedulerFIMS _fims1 = new SchedulerFIMS(ModuleName.FIMS1);        protected static SchedulerFIMS _fims2 = new SchedulerFIMS(ModuleName.FIMS2);        protected static SchedulerPM _pm1 = new SchedulerPM(ModuleName.PM1);        protected static List<SchedulerPM> _lstPms;        protected static SchedulerLoadPort _lp1 = new SchedulerLoadPort(ModuleName.LP1);        protected static SchedulerLoadPort _lp2 = new SchedulerLoadPort(ModuleName.LP2);        protected static SchedulerLoadPort _lp3 = new SchedulerLoadPort(ModuleName.LP3);        protected static SchedulerLoadPort _lp4 = new SchedulerLoadPort(ModuleName.LP4);        protected List<SchedulerLoadPort> _lstLPs;        protected static List<SchedulerFIMS> _lstFIMSs;        //protected List<SchedulerStocker> _lstBatchAStocker;        //protected List<SchedulerStocker> _lstBatchBStocker;        protected List<SchedulerStocker> _lstExtraDummyStocker;        protected List<SchedulerStocker> _lstSideDummyStocker;        //protected List<SchedulerStocker> _lstMonitor1Stocker;        //protected List<SchedulerStocker> _lstMonitor2Stocker;        protected List<SchedulerStocker> _lstCurrentBatchStocker = new List<SchedulerStocker>();        protected List<SchedulerStocker> _lstCurrentMonitorStocker = new List<SchedulerStocker>();        protected List<SchedulerStocker> _lstTotlaStockers;        protected List<SchedulerStocker> _lstPlaceExtraDummyStockers;        protected List<SchedulerStocker> _lstPlaceSideDummyStocker;        protected List<SchedulerStocker> _lstPlaceMonitor1Stocker;        protected List<SchedulerStocker> _lstPlaceMonitor2Stocker;        protected List<SchedulerStocker> _lstPlaceCurrentBatchStocker;        protected List<SchedulerStocker> _lstPlaceXDStocker;        protected List<SchedulerStocker> _lstPlaceTStocker;        protected void InitModule()        {            _lstPms = new List<SchedulerPM>() { _pm1 };            _lstFIMSs = new List<SchedulerFIMS>();            if (SC.GetValue<bool>($"System.SetUp.IsFIMS1Installed"))            {                _lstFIMSs.Add(_fims1);            }            if (SC.GetValue<bool>($"System.SetUp.IsFIMS2Installed"))            {                _lstFIMSs.Add(_fims2);            }            _lstLPs = new List<SchedulerLoadPort>();            if (SC.GetValue<bool>($"System.SetUp.IsLP1Installed"))            {                _lstLPs.Add(_lp1);            }            if (SC.GetValue<bool>($"System.SetUp.IsLP2Installed"))            {                _lstLPs.Add(_lp2);            }            if (SC.GetValue<bool>($"System.SetUp.IsLP3Installed"))            {                _lstLPs.Add(_lp3);            }            if (SC.GetValue<bool>($"System.SetUp.IsLP4Installed"))            {                _lstLPs.Add(_lp4);            }            //_lstBatchAStocker = new List<SchedulerStocker>();            //_lstBatchBStocker = new List<SchedulerStocker>();            _lstExtraDummyStocker = new List<SchedulerStocker>();            _lstSideDummyStocker = new List<SchedulerStocker>();            //_lstMonitor1Stocker = new List<SchedulerStocker>();            //_lstMonitor2Stocker = new List<SchedulerStocker>();            _lstPlaceExtraDummyStockers = new List<SchedulerStocker>();            _lstPlaceSideDummyStocker = new List<SchedulerStocker>();            _lstPlaceMonitor1Stocker = new List<SchedulerStocker>();            _lstPlaceMonitor2Stocker = new List<SchedulerStocker>();            _lstPlaceCurrentBatchStocker = new List<SchedulerStocker>();            _lstPlaceXDStocker = new List<SchedulerStocker>();            _lstPlaceTStocker = new List<SchedulerStocker>();            _lstTotlaStockers = new List<SchedulerStocker>();            for(int i = 1; i < 30; i++)            {                if (!SC.ContainsItem($"System.SetUp.IsStocker{i}Installed"))                    continue;                if (SC.GetValue<bool>($"System.SetUp.IsStocker{i}Installed"))                {                    _lstTotlaStockers.Add(new SchedulerStocker(ModuleHelper.Converter($"Stocker{i}")));                }            }            foreach (var stokcer in _lstTotlaStockers)            {                var type = SC.GetStringValue($"System.Stocker.{stokcer.Module}WaferType");                switch (type)                {                    case "P1":                        //_lstBatchAStocker.Add(stokcer);                        break;                    case "P2":                        //_lstBatchBStocker.Add(stokcer);                        break;                    case "M1":                        //_lstMonitor1Stocker.Add(stokcer);                        break;                    case "M2":                        //_lstMonitor2Stocker.Add(stokcer);                        break;                    case "ED":                        _lstExtraDummyStocker.Add(stokcer);                        break;                    case "SD":                        _lstSideDummyStocker.Add(stokcer);                        break;                    case "None":                        _lstSideDummyStocker.Add(stokcer);                        _lstExtraDummyStocker.Add(stokcer);                        break;                }            }        }        protected SchedulerModule GetModule(string name)        {            switch (ModuleHelper.Converter(name))            {                case ModuleName.PM1:                    return _pm1;                case ModuleName.CarrierRobot:                    return _carrierRobot;                case ModuleName.WaferRobot:                    return _waferRobot;                case ModuleName.Stocker1:                case ModuleName.Stocker2:                case ModuleName.Stocker3:                case ModuleName.Stocker4:                case ModuleName.Stocker5:                case ModuleName.Stocker6:                case ModuleName.Stocker7:                case ModuleName.Stocker8:                case ModuleName.Stocker9:                case ModuleName.Stocker10:                case ModuleName.Stocker11:                case ModuleName.Stocker12:                case ModuleName.Stocker13:                case ModuleName.Stocker14:                case ModuleName.Stocker15:                case ModuleName.Stocker16:                case ModuleName.Stocker17:                case ModuleName.Stocker18:                case ModuleName.Stocker19:                case ModuleName.Stocker20:                case ModuleName.Stocker21:                    return _lstTotlaStockers.FirstOrDefault(x => x.Module == ModuleHelper.Converter(name));                case ModuleName.FIMS1:                    return _fims1;                case ModuleName.FIMS2:                    return _fims2;                case ModuleName.LP1:                    return _lp1;                case ModuleName.LP2:                    return _lp2;                case ModuleName.LP3:                    return _lp3;                case ModuleName.LP4:                    return _lp4;            }            return null;        }    }}
 |