FurnaceStocker.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. using Aitex.Core.RT.DataCenter;
  2. using Aitex.Core.RT.Device;
  3. using Aitex.Core.RT.Device.Unit;
  4. using Aitex.Core.RT.IOCore;
  5. using Aitex.Core.RT.SCCore;
  6. using MECF.Framework.Common.Equipment;
  7. using MECF.Framework.Common.SubstrateTrackings;
  8. using System;
  9. using System.Collections.Generic;
  10. using System.Linq;
  11. using System.Text;
  12. using System.Threading.Tasks;
  13. namespace FurnaceRT.Equipments.Systems
  14. {
  15. public class FurnaceStocker : BaseDevice, IDevice
  16. {
  17. public enum StockerCarrierState
  18. {
  19. Empty,
  20. Ready,
  21. WaitForProcess,
  22. Processed
  23. }
  24. public FurnaceStocker(ModuleName module)
  25. {
  26. Module = module.ToString();
  27. Name = module.ToString();
  28. }
  29. #region fields
  30. private IoSensor _diStationCassettePresent;
  31. #endregion
  32. #region properties
  33. public bool IsCassettePresent
  34. {
  35. get
  36. {
  37. if(SC.GetValue<bool>("System.IsSimulatorMode"))
  38. return CarrierManager.Instance.HasCarrier(Module);
  39. return _diStationCassettePresent.Value;
  40. }
  41. }
  42. public bool IsCassetteHasWafer { get; set; }
  43. #endregion
  44. public bool Initialize()
  45. {
  46. CarrierManager.Instance.SubscribeLocation(Module, 1, SC.GetValue<int>("System.CassetteSlotCount"));
  47. WaferManager.Instance.SubscribeLocation(Module, SC.GetValue<int>("System.CassetteSlotCount"));
  48. DATA.Subscribe(Name, "CassettePresent", () => IsCassettePresent);
  49. DATA.Subscribe(Name, "CassetteHasWafer", () => IsCassetteHasWafer);
  50. DATA.Subscribe(Name, "LotID", () => CarrierManager.Instance.CheckHasCarrier(Module, 0) ? CarrierManager.Instance.GetCarrier(Module, 0).LotId : "");
  51. _diStationCassettePresent = DEVICE.GetDevice<IoSensor>($"System.SensorStation{(Module.Replace("Stocker",""))}Presence");
  52. return true;
  53. }
  54. public void Monitor()
  55. {
  56. }
  57. public void Reset()
  58. {
  59. }
  60. public void Terminate()
  61. {
  62. }
  63. }
  64. }