using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using OpenSEMI.ClientBase.ServiceProvider; using MECF.Framework.Common.OperationCenter; using MECF.Framework.Common.Equipment; using Aitex.Core.Common; namespace VirgoUI.Client.Models.Platform.EFEM { public class EFEMProvider : IProvider { private static EFEMProvider _Instance = null; public static EFEMProvider Instance { get { if (_Instance == null) _Instance = new EFEMProvider(); return _Instance; } } public void Create() { } #region EFEM public void Home(string moduleID) { InvokeClient.Instance.Service.DoOperation($"{moduleID}.Home"); } public void Reset(string moduleID) { InvokeClient.Instance.Service.DoOperation($"{moduleID}.Reset"); } public void Abort(string moduleID) { InvokeClient.Instance.Service.DoOperation($"{moduleID}.Abort"); } public void EFEM_Hold() { //InvokeClient.Instance.Service.DoOperation("System.StartAutoRun"); } public void EFEM_Abort() { //InvokeClient.Instance.Service.DoOperation("System.StartAutoRun"); } public void EFEM_Resume() { //InvokeClient.Instance.Service.DoOperation("System.StartAutoRun"); } #endregion #region EFEM Robot public void EFEM_Robot_Initialize() { //InvokeClient.Instance.Service.DoOperation("System.StartAutoRun"); } public void EFEM_Robot_Home() { InvokeClient.Instance.Service.DoOperation("EfemRobot.Home"); } public void EFEM_Robot_Pick(string module, int slot) { InvokeClient.Instance.Service.DoOperation("EfemRobot.Pick", module, slot); } public void EFEM_Robot_Place(string module, int slot) { InvokeClient.Instance.Service.DoOperation("EfemRobot.Place", module, slot); } public void EFEM_Robot_Goto(string module) { //InvokeClient.Instance.Service.DoOperation("EfemRobot.Goto", module); InvokeClient.Instance.Service.DoOperation($"{ModuleName.Aligner1}", (int)WaferSize.WS4); } public void EFEM_Robot_Swap() { //InvokeClient.Instance.Service.DoOperation("System.StartAutoRun"); } #endregion #region Alinger public void Aligner_Reset() { InvokeClient.Instance.Service.DoOperation("Aligner.Reset"); } public void Aligner_Home() { InvokeClient.Instance.Service.DoOperation("Aligner.Home"); } public void Aligner_Abort() { InvokeClient.Instance.Service.DoOperation("Aligner.Abort"); } public void Aligner_Align(double angle) { InvokeClient.Instance.Service.DoOperation("Aligner.Align", angle); } #endregion } }