| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 | using Aitex.Core.RT.Routine;using MECF.Framework.Common.Equipment;using System;using Aitex.Core.RT.SCCore;using FurnaceRT.Equipments.PMs.Routines;using System.Collections.Generic;namespace FurnaceRT.Equipments.PMs.RecipeExecutions{    public class PreProcess : PMBaseRoutine, IRoutine    {        public enum Routine        {            ToReadyProcessState,            Pump,            PinDown,        }        private string _recipeName;        private int _liftTimeout;        private bool _isProcessRecipe;        public PreProcess(ModuleName module, PMModule pm) : base(module, pm)        {            Module = module.ToString();            Name = "PreProcess";        }        public void Init(string recipeName, bool isProcessRecipe = true)        {            _recipeName = recipeName;            _isProcessRecipe = isProcessRecipe;        }        public override Result Start(params object[] objs)        {            RecipeHead recipeHead;            List<RecipeStep> recipeSteps;            Dictionary<int, List<RecipeStep>> abortRecipe;            Dictionary<int, string> abortRecipeName;            Dictionary<int, List<RecipeStep>> subRecipe;            Dictionary<int, string> subRecipeName;            string reason = string.Empty;            if (_isProcessRecipe)            {                if (!RecipeParser.Parse(_recipeName, Module, out recipeHead, out recipeSteps, out reason, "Process"))                {                    PMModule.PreprocessStartFailedWarning.Set($"Load process recipe {_recipeName} failed, {reason}");                    return Result.FAIL;                }                PMModule.RecipeRunningInfo.MainRecipeName = _recipeName;                PMModule.RecipeRunningInfo.Head = recipeHead;                PMModule.RecipeRunningInfo.RecipeStepList = recipeSteps;            }            Reset();            Notify($"Start");            return Result.RUN;        }        public override Result Monitor()        {            try            {                //ToReadyProcessState((int)Routine.ToReadyProcessState, PMModule, _liftTimeout);                //ExecuteRoutine((int)Routine.Pump, _pumpRoutine);                //MovePinDown((int)Routine.PinDown, PMModule, _liftTimeout);            }            catch (RoutineBreakException)            {                return Result.RUN;            }            catch (RoutineFaildException)            {                return Result.FAIL;            }            return Result.DONE;        }        public override void Abort()        {        }    }}
 |