12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- using Aitex.Core.RT.Device;
- using Aitex.Core.RT.IOCore;
- using Aitex.Core.Util;
- using Common.DataCenter;
- 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;
- using System.Xml;
- namespace athosRT.Devices.IODevices
- {
- public enum IOAlignerStatus
- {
- Idle,
- Busy
- }
- /// <summary>
- /// io机械Aligner的实现 用于对数据的实现
- /// 主要目的是 实现对aligner的wafermanager申明
- /// 实现对aligner 准入io的记录
- /// </summary>
- public class IoAligner : BaseDevice, IDevice
- {
- private readonly DIAccessor _Robot2AlignerEnable;
- private readonly DIAccessor _RobotNotExtend;
- private IOAlignerStatus status => _RobotNotExtend.Value ? IOAlignerStatus.Idle: IOAlignerStatus.Busy;
- public IoAligner(string module, XmlElement node, string ioModule = "")
- {
- base.Module = module;
- base.Name = node.GetAttribute("id");
- base.Display = node.GetAttribute("display");
- base.DeviceID = node.GetAttribute("schematicId");
- _Robot2AlignerEnable = ParseDiNode("diRobot2AlignerEnable", node, ioModule);
- _RobotNotExtend = ParseDiNode("diRobotNotExtend", node, ioModule);
- Singleton<WaferManager>.Instance.SubscribeLocation(ModuleName.Aligner,1);
- }
- public bool Initialize()
- {
- DATA.Subscribe($"{Module}.{Name}.Robot2AlignerEnable", ()=>_Robot2AlignerEnable.Value);
- DATA.Subscribe($"{Module}.{Name}.RobotNotExtend", ()=> _RobotNotExtend.Value);
- DATA.Subscribe($"{Name}.Status",()=> status.ToString());
- return true;
- }
- public void Monitor()
- {
- }
- public void Reset()
- {
- }
- public void Terminate()
- {
- }
- }
- }
|