12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- using Aitex.Core.RT.DataCenter;
- using Aitex.Core.RT.Device;
- using Aitex.Core.RT.Device.Unit;
- using Aitex.Core.RT.IOCore;
- using Aitex.Core.RT.SCCore;
- using MECF.Framework.Common.Equipment;
- using MECF.Framework.Common.SubstrateTrackings;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace FurnaceRT.Equipments.Systems
- {
- public class FurnaceStocker : BaseDevice, IDevice
- {
- public enum StockerCarrierState
- {
- Empty,
- Ready,
- WaitForProcess,
- Processed
- }
- public FurnaceStocker(ModuleName module)
- {
- Module = module.ToString();
- Name = module.ToString();
- }
- #region fields
- private IoSensor _diStationCassettePresent;
- #endregion
- #region properties
- public bool IsCassettePresent
- {
- get
- {
- if(SC.GetValue<bool>("System.IsSimulatorMode"))
- return CarrierManager.Instance.HasCarrier(Module);
-
- return _diStationCassettePresent.Value;
- }
- }
- public bool IsCassetteHasWafer { get; set; }
- #endregion
- public bool Initialize()
- {
- CarrierManager.Instance.SubscribeLocation(Module, 1, SC.GetValue<int>("System.CassetteSlotCount"));
- WaferManager.Instance.SubscribeLocation(Module, SC.GetValue<int>("System.CassetteSlotCount"));
- DATA.Subscribe(Name, "CassettePresent", () => IsCassettePresent);
- DATA.Subscribe(Name, "CassetteHasWafer", () => IsCassetteHasWafer);
- DATA.Subscribe(Name, "LotID", () => CarrierManager.Instance.CheckHasCarrier(Module, 0) ? CarrierManager.Instance.GetCarrier(Module, 0).LotId : "");
- _diStationCassettePresent = DEVICE.GetDevice<IoSensor>($"System.SensorStation{(Module.Replace("Stocker",""))}Presence");
- return true;
- }
- public void Monitor()
- {
- }
- public void Reset()
- {
- }
- public void Terminate()
- {
- }
- }
- }
|