using Aitex.Core.Common; using Aitex.Core.Util; using Aitex.Core.WCF; using MECF.Framework.Common.Equipment; using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Common.WcfService.Efem { public class EfemClient : Singleton { public bool InProcess { get; set; } private IEfemService _service; public IEfemService Service { get { if (_service == null) { if (InProcess) _service = new EfemService(); else _service = new EfemServiceClient(); } return _service; } } } /// /// ServiceClientWrapper是一个将service接口调用的函数 本质上是调用接口实现函数的功能 /// /// public class EfemServiceClient : ServiceClientWrapper, IEfemService { /// /// 注意 前面一个是Client的名字 后面一个是Service的名字 都要和App.Config里的内容一致 /// public EfemServiceClient() : base("Client_IEfemService", "EfemService") { Trace.WriteLine("Client_IEfemService 初始化"); } public string EfemCmd(string module, params object[] args) { string result = null; Invoke(svc => { result = svc.EfemCmd(module, args); });//svc最终调用的是继承类 return result; } public string GetRTstate() { string result = null; Invoke(svc => { result = svc.GetRTstate(); }); return result; } public string SendRTMsg(string RTMsg) { string result = null; Invoke(svc => { result = svc.SendRTMsg(RTMsg); }); return result; } public bool MoveWafer(ModuleName source, int source_slot, ModuleName desitation, int desitation_slot, WaferSize size) { bool result = false; Invoke(svc => { result = svc.MoveWafer(source, source_slot, desitation, desitation_slot, size); }); return result; } public bool CreateWafer(ModuleName module, int slot, WaferSize size) { bool result = false; Invoke(svc => { result = svc.CreateWafer( module, slot, size); }); return result; } public bool CreateLPSingleWafer(ModuleName module, int slot, WaferSize size) { bool result = false; Invoke(svc => { result = svc.CreateLPSingleWafer(module, slot, size); }); return result; } public bool DeleteWafer(ModuleName module, int slot, WaferSize size) { bool result = false; Invoke(svc => { result = svc.DeleteWafer(module, slot, size); }); return result; } public WaferInfo[] GetWafer(ModuleName module) { WaferInfo[] result = null; Invoke(svc => { result = svc.GetWafer(module); }); return result; } public bool LoadPortCmd(string LoadPortID, string LoadMsg) { bool result = false; Invoke(svc => { result = svc.LoadPortCmd(LoadPortID, LoadMsg); }); return result; } public bool ClearLog() { bool result = false; Invoke(svc => { result = svc.ClearLog(); }); return result; } public bool CreateBFSingleWafer(ModuleName module, int slot, WaferSize size) { bool result = false; Invoke(svc => { result = svc.CreateBFSingleWafer(module, slot, size); }); return result; } } }