12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- using Aitex.Core.RT.Device;
- using Aitex.Core.RT.Routine;
- using Aitex.Core.Util;
- using MECF.Framework.Common.Equipment;
- using System.Collections.Generic;
- namespace FurnaceRT.Equipments.Systems
- {
- public class HomeAll : IRoutine
- {
- List<List<IModuleDevice>> _lstModules = new List<List<IModuleDevice>>();
- List<IModuleDevice> _homingModules = new List<IModuleDevice>();
- public HomeAll()
- {
- }
- public Result Start(params object[] objs)
- {
- _lstModules.Clear();
- _lstModules.Add(new List<IModuleDevice>()
- {
- Singleton<EquipmentManager>.Instance.Modules[ModuleName.CarrierRobot] as IModuleDevice,
- Singleton<EquipmentManager>.Instance.Modules[ModuleName.WaferRobot] as IModuleDevice,
- //Singleton<EquipmentManager>.Instance.Modules[ModuleName.LP1] as IModuleDevice,
- //Singleton<EquipmentManager>.Instance.Modules[ModuleName.LP2] as IModuleDevice,
- });
- var lstModules = new List<IModuleDevice>();
- foreach (var device in Singleton<EquipmentManager>.Instance.Modules.Values)
- {
- if (device.Module == ModuleName.WaferRobot.ToString() || device.Module == ModuleName.CarrierRobot.ToString())
- continue;
- lstModules.Add(device as IModuleDevice);
- }
- _lstModules.Add(lstModules);
- _homingModules.Clear();
- return Result.RUN;
- }
- public Result Monitor()
- {
- if (_homingModules.Count == 0 && _lstModules.Count == 0)
- return Result.DONE;
- if (_homingModules.Count > 0)
- {
- foreach (var module in _homingModules)
- {
- if (module.IsError)
- return Result.FAIL;
- if (!module.IsReady)
- return Result.RUN;
- }
- _homingModules.Clear();
- if (_lstModules.Count == 0)
- return Result.DONE;
- }
- if (_homingModules.Count == 0)
- {
- foreach (var moduleEntity in _lstModules[0])
- {
- if (!moduleEntity.Home(out string reason))
- return Result.FAIL;
- _homingModules.Add(moduleEntity);
- }
- _lstModules.RemoveAt(0);
- }
- return Result.RUN;
- }
- public void Abort()
- {
- Clear();
- }
- public void Clear()
- {
- _lstModules.Clear();
- _homingModules.Clear();
- }
- }
- }
|