| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 | using System;using System.Collections.Generic;using System.IO;using Aitex.Core.Common;using Aitex.Core.RT.Device;using Aitex.Core.RT.OperationCenter;using Aitex.Core.RT.SCCore;using MECF.Framework.Common.Equipment;using Venus_RT.Modules;using Venus_RT.Devices;using Venus_RT.Devices.EPD;namespace Venus_RT.Instances{    public class DeviceEntity : DeviceEntityT<DeviceManager>    {        public DeviceEntity()        {        }    }    public class DeviceManager : DeviceManagerBase    {        private readonly string device_model_file;        private readonly string device_model_file_MF;        public DeviceManager()        {            device_model_file = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Config\\", RtInstance.DeviceModelFileName);            device_model_file_MF = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Config\\", RtInstance.DeviceModelFileName_MF);        }        public override bool Initialize()        {            if (ModuleHelper.IsInstalled(ModuleName.PMA))                InitPM(ModuleName.PMA);            if (ModuleHelper.IsInstalled(ModuleName.PMB))                InitPM(ModuleName.PMB);            if (ModuleHelper.IsInstalled(ModuleName.TM))                InitTM(ModuleName.TM);            AddCustomModuleDevice(new VenusSignalTower("System", "SignalTower"));            OP.Subscribe("DeviceOperation", this.Invoke);            return true;        }        private void InitPM(ModuleName mod)        {            Initialize(device_model_file, RtInstance.SystemName, mod, mod.ToString());            if (SC.GetValue<int>($"{mod}.Rf.CommunicationType") == (int)CommunicationType.RS232 &&                SC.GetValue<int>($"{mod}.Rf.MFG") == (int)GeneratorMFG.AdTec)            {                AddCustomModuleDevice(new AdTecGenerator(mod, Venus_Core.VenusDevice.Rf));            }            if (SC.GetValue<bool>($"{mod}.BiasRf.EnableBiasRF"))            {                if(SC.GetValue<int>($"{mod}.BiasRf.CommunicationType") == (int)CommunicationType.Ethernet &&                SC.GetValue<int>($"{mod}.BiasRf.MFG") == (int)GeneratorMFG.Comet)                {                    AddCustomModuleDevice(new CometRF(mod, SC.GetStringValue($"{mod}.BiasRf.IPAddress")));                }                else if(SC.GetValue<int>($"{mod}.BiasRf.MFG") == (int)GeneratorMFG.AdTec)                {                    AddCustomModuleDevice(new AdTecGenerator(mod, Venus_Core.VenusDevice.BiasRf));                }            }                            if (SC.GetValue<bool>($"{mod}.Chiller.EnableChiller") &&                SC.GetValue<int>($"{mod}.Chiller.CommunicationType") == (int)CommunicationType.RS232)            {                if(SC.GetValue<int>($"{mod}.Chiller.MFG") == (int)ChillerMFG.SMC)                {                    AddCustomModuleDevice(new SMCChiller(mod, "Chiller"));                }                else if(SC.GetValue<int>($"{mod}.Chiller.MFG") == (int)ChillerMFG.AIRSYS)                {                    AddCustomModuleDevice(new AIRSYSChiller(mod, "Chiller"));                }            }                            if (SC.GetValue<bool>($"{mod}.Match.EnableMatch") &&                SC.GetValue<int>($"{mod}.Match.CommunicationType") == (int)CommunicationType.RS232 &&                SC.GetValue<int>($"{mod}.Match.MFG") == (int)MatchMFG.AdTec)            {                AddCustomModuleDevice(new AdTecMatch(mod, Venus_Core.VenusDevice.Match));            }            if (SC.GetValue<bool>($"{mod}.BiasMatch.EnableBiasMatch") &&                SC.GetValue<int>($"{mod}.BiasMatch.CommunicationType") == (int)CommunicationType.RS232 &&                SC.GetValue<int>($"{mod}.BiasMatch.MFG") == (int)MatchMFG.AdTec)            {                AddCustomModuleDevice(new AdTecMatch(mod, Venus_Core.VenusDevice.BiasMatch));            }            if (SC.GetValue<int>($"{mod}.DryPump.CommunicationType") == (int)CommunicationType.RS232)            {                if (SC.GetValue<int>($"{mod}.DryPump.MFG") == (int)DryPumpMFG.SKY)                {                    AddCustomModuleDevice(new SkyPump(mod));                }                else if (SC.GetValue<int>($"{mod}.DryPump.MFG") == (int)DryPumpMFG.Edwards)                {                    AddCustomModuleDevice(new EdwardsPump(mod));                }            }            AddCustomModuleDevice(new ESC5HighVoltage(mod));            AddCustomModuleDevice(new AdixenTurboPump(mod));            AddCustomModuleDevice(new PendulumValve(mod));            AddCustomModuleDevice(new EPDClient(mod));            AddCustomDevice(new JetPM(mod));        }        private void InitTM(ModuleName mod)        {            Initialize(device_model_file_MF, RtInstance.SystemName, mod, mod.ToString());            AddCustomDevice(new JetTM());        }        private WaferSize MapWaferSize(int value)        {            switch (value)            {                case 3: return WaferSize.WS3;                case 4: return WaferSize.WS4;                case 6: return WaferSize.WS6;                case 8: return WaferSize.WS8;            }            return WaferSize.WS0;        }        private bool Invoke(string arg1, object[] args)        {            string name = (string)args[0];            string func = (string)args[1];            object[] param = new object[args.Length - 2];            for (int i = 2; i < args.Length; i++)                param[i - 2] = args[i].ToString();            DEVICE.Do(string.Format("{0}.{1}", name, func), 0, true, param);            return true;        }    }}
 |