using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Aitex.Core.RT.DataCenter; using Aitex.Core.RT.Device; using Aitex.Core.RT.SCCore; using MECF.Framework.Common.Equipment; using MECF.Framework.Common.Schedulers; using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.TMs; namespace MECF.Framework.RT.EquipmentLibrary.HardwareUnits.PMs { public class PM : BaseDevice, IDevice, IPM { //如果true,robot采用extend, retract指令 //如果false,robot采用pick,place指令 public bool IsActiveHandoff { get; set; } //如果true,robot调用收尾PostTransfer public bool IsNeedPostTransfer { get; set; } public virtual double ChamberPressure { get; } public virtual double ChamberPressurePressure { get; } public virtual bool IsError { get; } public virtual bool IsIdle { get; } public bool IsInstalled { get; set; } public PM(string module) : base(module, module, module, module) { } public virtual bool Initialize() { DATA.Subscribe($"{Name}.IsAtm", () => { return CheckAtm(); }); DATA.Subscribe($"{Name}.IsVacuum", () => { return CheckVacuum(); }); DATA.Subscribe($"{Name}.IsCDAOK", () => { return CheckCDAOK(); }); DATA.Subscribe($"{Name}.IsCoolantInletTCOK", () => { return CheckCoolantInletTCOK(); }); DATA.Subscribe($"{Name}.IsCoolantOutletTCOK", () => { return CheckCoolantOutletTCOK(); }); DATA.Subscribe($"{Name}.IsArmNotExtend", () => { return CheckArmExtendOK(); }); DATA.Subscribe($"{Name}.IsWaterLeak", () => { return CheckWaterLeak(); }); DATA.Subscribe($"{Name}.ChamberPressure", () => ChamberPressure); IsInstalled = SC.GetValue($"System.{Name}IsInstalled"); return true; } public virtual bool CheckSlitDoorOpen(ModuleName moduleName) { return false; } public virtual bool CheckSlitDoorClose(ModuleName moduleName) { return false; } public virtual bool CheckAtm() { return false; } public virtual bool CheckWaterLeak() { return false; } public virtual bool CheckCDAOK() { return false; } public virtual bool CheckCoolantInletTCOK() { return false; } public virtual bool CheckCoolantOutletTCOK() { return false; } public virtual bool CheckArmExtendOK() { return false; } public virtual bool CheckVacuum() { return false; } public virtual bool CheckHandoff(EnumTransferType type) { return false; } public virtual bool CheckEnableTransfer(EnumTransferType type) { return false; } public virtual void Monitor() { } public virtual void Terminate() { } public virtual void Reset() { } public virtual void PrepareTransfer(EnumTransferType type) { } public virtual void Home() { } public virtual void PostTransfer(EnumTransferType type) { } public virtual void TransferHandoff(EnumTransferType type) { } public virtual void StartProcess(string recipeName, string recipeContent) { } } }