| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 | using MECF.Framework.Common.Equipment;using VirgoRT.Modules.Schedulers;using VirgoRT.Scheduler;using Aitex.Core.RT.Routine;using System.Collections.Generic;namespace VirgoRT.Modules{    public class TransferModule    {        protected SchedulerEfemRobot _efemRobot = new SchedulerEfemRobot();        protected SchedulerLoadPort _lp1 = new SchedulerLoadPort(ModuleName.LP1);        protected SchedulerLoadPort _lp2 = new SchedulerLoadPort(ModuleName.LP2);        protected SchedulerAligner _aligner1 = new SchedulerAligner(ModuleName.Aligner1);        protected SchedulerAligner _aligner2 = new SchedulerAligner(ModuleName.Aligner2);        protected SchedulerAligner _cooling1 = new SchedulerAligner(ModuleName.Cooling1);        protected SchedulerAligner _cooling2 = new SchedulerAligner(ModuleName.Cooling2);        protected SchedulerPM _pma = new SchedulerPM(ModuleName.PMA);        protected SchedulerPM _pmb = new SchedulerPM(ModuleName.PMB);        protected SchedulerBuffer _buffer = new SchedulerBuffer(ModuleName.Buffer);        protected SchedulerFlipper _flipper = new SchedulerFlipper(ModuleName.Flipper);        public TransferModule()        {        }        protected SchedulerModule GetModule(string name)        {            switch (ModuleHelper.Converter(name))            {                case ModuleName.LP1:                    return _lp1;                case ModuleName.LP2:                    return _lp2;                case ModuleName.Aligner1:                    return _aligner1;                case ModuleName.Aligner2:                    return _aligner2;                case ModuleName.Cooling1:                    return _cooling1;                case ModuleName.Cooling2:                    return _cooling2;                case ModuleName.EfemRobot:                    return _efemRobot;                case ModuleName.PMA:                    return _pma;                case ModuleName.PMB:                    return _pmb;                case ModuleName.Flipper:                    return _flipper;                case ModuleName.Buffer:                    return _buffer;            }            return null;        }    }    public interface IAutoTransfer    {        bool HasJobRunning        {            get;        }        bool IsEfemRobotAvavilable        {            get;        }        Result Monitor();        bool CheckAllJobDone();        bool CheckJobJustDone(out string sJobName);        Result Start(params object[] objs);        void Map(string moduleName);        bool CheckRecipeUsedInJob(string pathName);        bool CheckSequenceUsedInJob(string pathName);        void CreateJob(Dictionary<string, object> param);        void AbortJob(string jobName);        void StopJob(string jobName);        void ResumeJob(string jobName);        void PauseJob(string jobName);        void StartJob(string jobName);        void ResetIdlePurgeTime(string module);        void ResetIdleCleanTime(string module);        void Clear();    }}
 |