| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 | using Aitex.Core.RT.Routine;using VirgoRT.Devices;namespace VirgoRT.Modules.PMs{    class PMAllMfcVerificationRoutine : PMRoutineBase    {        enum RoutineStep        {            MFC1,            MFC2,            MFC3,            MFC4        }        private PumpDownRoutine _pumpdownRoutine;        private string[] _normalMfc;        private bool[] _isCheckMfcs;        private float _normalMfcFlow;        private PMMfcVerificationRoutine mfc1;        private PMMfcVerificationRoutine mfc2;        private PMMfcVerificationRoutine mfc3;        private PMMfcVerificationRoutine mfc4;        public PMAllMfcVerificationRoutine(JetPM chamber, PumpDownRoutine pumpDownRoutine) : base(chamber)        {            Name = "All MFC Verification";            bUINotify = true;            _pumpdownRoutine = pumpDownRoutine;        }        internal void Init(string[] normalMfc, bool[] IsCheckMfc)        {            _normalMfc = normalMfc;            _normalMfcFlow = 200;            _isCheckMfcs = IsCheckMfc;        }        public Result Start(params object[] objs)        {            Reset();            mfc1 = null;            mfc2 = null;            mfc3 = null;            mfc4 = null;            if (_isCheckMfcs[0])            {                mfc1 = new PMMfcVerificationRoutine(_chamber, _pumpdownRoutine);                mfc1.Init(_normalMfc[0], _normalMfcFlow, 10);            }            if (_isCheckMfcs[1])            {                mfc2 = new PMMfcVerificationRoutine(_chamber, _pumpdownRoutine);                mfc2.Init(_normalMfc[1], _normalMfcFlow, 10);            }            if (_isCheckMfcs[2])            {                mfc3 = new PMMfcVerificationRoutine(_chamber, _pumpdownRoutine);                mfc3.Init(_normalMfc[2], _normalMfcFlow, 10);            }            if (_isCheckMfcs[3])            {                mfc4 = new PMMfcVerificationRoutine(_chamber, _pumpdownRoutine);                mfc4.Init(_normalMfc[3], _normalMfcFlow, 10);            }            return Result.RUN;        }        public Result Monitor()        {            try            {                if (mfc1 != null)                    ExecuteRoutine((int)RoutineStep.MFC1, mfc1);                if (mfc2 != null)                    ExecuteRoutine((int)RoutineStep.MFC2, mfc2);                if (mfc3 != null)                    ExecuteRoutine((int)RoutineStep.MFC3, mfc3);                if (mfc4 != null)                    ExecuteRoutine((int)RoutineStep.MFC4, mfc4);            }            catch (RoutineBreakException)            {                return Result.RUN;            }            catch (RoutineFaildException)            {                _chamber.StopAllGases();                _chamber.SetValveOnOff(ValveType.PROCESS, false);                return Result.FAIL;            }            return Result.DONE;        }        public new void Abort()        {            _chamber.StopAllGases();            _chamber.SetValveOnOff(ValveType.PROCESS, false);        }    }}
 |