12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- using System.Collections.Generic;
- using Aitex.Core.RT.Fsm;
- using Aitex.Core.RT.Routine;
- using Aitex.Core.RT.SCCore;
- using Aitex.Core.Util;
- using MECF.Framework.Common.Equipment;
- namespace VirgoRT.Modules
- {
- public class HomeAll
- {
- private List<List<IModuleEntity>> _lstModules = new List<List<IModuleEntity>>();
- private Dictionary<IModuleEntity, int> _homeToken = new Dictionary<IModuleEntity, int>();
- public HomeAll()
- {
- }
- public Result Start(params object[] objs)
- {
- var pms = new List<IModuleEntity>();
- if (ModuleHelper.IsInstalled(ModuleName.PMA))
- pms.Add(Singleton<RouteManager>.Instance.PMA);
- if (ModuleHelper.IsInstalled(ModuleName.PMB))
- pms.Add(Singleton<RouteManager>.Instance.PMB);
- _lstModules.Clear();
- _lstModules.Add(pms);
- _lstModules.Add(new List<IModuleEntity>() { Singleton<RouteManager>.Instance.EFEM });
- return Result.RUN;
- }
- public Result Monitor(params object[] objs)
- {
- if (_homeToken.Count == 0 && _lstModules.Count == 0)
- return Result.DONE;
- if (_homeToken.Count > 0)
- {
- foreach (var moduleToken in _homeToken)
- {
- IModuleEntity module = moduleToken.Key;
- if (module.IsError)
- return Result.FAIL;
- if (!module.CheckAcked(moduleToken.Value) || module.IsBusy || module.IsInit)
- return Result.RUN;
- }
- _homeToken.Clear();
- if (_lstModules.Count == 0)
- return Result.DONE;
- }
- if (_homeToken.Count == 0)
- {
- foreach (var moduleEntity in _lstModules[0])
- {
- _homeToken[moduleEntity] = moduleEntity.Invoke("Home");
- }
- _lstModules.RemoveAt(0);
- }
- return Result.RUN;
- }
- public void Clear()
- {
- _lstModules.Clear();
- _homeToken.Clear();
- }
- }
- }
|