| 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()        {        }    }}
 |