123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- using MECF.Framework.Common.Equipment;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace VirgoRT.Scheduler
- {
- public enum StepID
- {
- Source,
- LoadlockIn,
- ProcessA,
- ProcessB,
- ProcessC,
- LoadlockOut,
- Target,
- }
- public class Step
- {
- public bool Need;
- public ModuleName Chamber;
- public int Slot;
- public string Recipe;
- public Step(bool need, ModuleName chamber, int slot, string recipe)
- {
- Need = need;
- Chamber = chamber;
- Slot = slot;
- Recipe = recipe;
- }
- }
- public class Sequence
- {
- public Step[] Steps
- {
- get { return _steps; }
- }
- private StepID _curStep = StepID.Source;
- private Step[] _steps = new Step[]
- {
- new Step(true, ModuleName.LP1, 0, string.Empty),
- new Step(true, ModuleName.LLA, 0, string.Empty),
- new Step(true, ModuleName.PM1, 0, string.Empty),
- new Step(true, ModuleName.PM2, 0, string.Empty),
- new Step(true, ModuleName.PM3, 0, string.Empty),
- new Step(true, ModuleName.LLA, 0, string.Empty),
- new Step(true, ModuleName.LP1, 0, string.Empty),
- };
- public Sequence()
- {
- }
- public Step NextStep(bool move = true)
- {
- for (StepID _step = _curStep; _curStep < StepID.Target; _step++)
- {
- if (_steps[(int)_step].Need)
- {
- if(move)
- _curStep = _step;
- return _steps[(int)_step];
- }
- }
- return null;
- }
- }
- }
|