using Aitex.Core.RT.DataCenter; using Aitex.Core.RT.Device; using Aitex.Core.RT.Event; using Aitex.Core.RT.SCCore; using Aitex.Core.Util; using Aitex.Sorter.Common; using MECF.Framework.Common.Device.Bases; using MECF.Framework.Common.Equipment; using System; using System.Collections.Generic; using FurnaceRT.Equipments.PMs.Devices; using FurnaceRT.Equipments.Systems; using FurnaceRT.Devices; using Aitex.Core.RT.Device.Unit; using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.Robots.HRC100Robots.GM201LVPRobot; using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.CarrierIdReaders.CarrierIDReaderBase; using MECF.Framework.RT.EquipmentLibrary.HardwareUnits.CarrierIdReaders.OmronV640; using System.Linq; namespace FurnaceRT.Instances { public class DeviceEntity : DeviceEntityT { public DeviceEntity() { } } public class DeviceManager : DeviceManagerBase { public DeviceManager() { } public override bool Initialize() { //AddCustomModuleDevice(new SZSTRfPower(ModuleName.PM1.ToString(), "RfPower")); //AddCustomModuleDevice(new SZSTRfMatch(ModuleName.PM1.ToString(), "RfMatch")); DATA.Subscribe("System.LiveAlarmEvent", () => { var alarms = EV.GetAlarmEvent(); if (alarms != null && alarms.Count > 0) { alarms = alarms.OrderBy(a => a.OccuringTime).ToList(); } return alarms; }); //Mag7RobotConvertor.Converter = new FurnaceMag7RobotConverter(); var waferRobot = new GM201LVPRobot("", ModuleName.WaferRobot.ToString(), "Robot", GM201LVPRobot.MaterialType.Wafer, null, null); waferRobot.IsCarrierMove = false; waferRobot._MaterialType = GM201LVPRobot.MaterialType.Wafer; waferRobot.ModuleAssociateStationDic = new Dictionary() { {ModuleName.FIMS1.ToString(), "C01" }, {ModuleName.FIMS2.ToString(), "C02" }, {ModuleName.PM1.ToString(), "C03" }, }; AddCustomDevice(waferRobot); var carrierRobot = new GM201LVPRobot("", ModuleName.CarrierRobot.ToString(), "Robot", GM201LVPRobot.MaterialType.Carrier, null, null); carrierRobot.IsCarrierMove = true; carrierRobot._MaterialType = GM201LVPRobot.MaterialType.Carrier; carrierRobot.ModuleAssociateStationDic = new Dictionary() { {ModuleName.Stocker1.ToString(), "C09" }, {ModuleName.Stocker2.ToString(), "C09" }, {ModuleName.Stocker3.ToString(), "C09" }, {ModuleName.Stocker4.ToString(), "C09" }, {ModuleName.Stocker5.ToString(), "C10" }, {ModuleName.Stocker6.ToString(), "C10" }, {ModuleName.Stocker7.ToString(), "C10" }, {ModuleName.Stocker8.ToString(), "C10" }, {ModuleName.Stocker9.ToString(), "C11" }, {ModuleName.Stocker10.ToString(), "C11" }, {ModuleName.Stocker11.ToString(), "C11" }, {ModuleName.Stocker12.ToString(), "C11" }, {ModuleName.Stocker13.ToString(), "C12" }, {ModuleName.Stocker14.ToString(), "C12" }, {ModuleName.Stocker15.ToString(), "C12" }, {ModuleName.Stocker16.ToString(), "C12" }, {ModuleName.Stocker17.ToString(), "C05" }, {ModuleName.Stocker18.ToString(), "C06" }, {ModuleName.FIMS1.ToString(), "C07" }, {ModuleName.FIMS2.ToString(), "C08" }, {ModuleName.LP1.ToString(), "C01" }, {ModuleName.LP2.ToString(), "C02" }, {ModuleName.LP3.ToString(), "C03" }, {ModuleName.LP4.ToString(), "C04" }, }; carrierRobot.ModuleAssociateHandDic = new Dictionary() { {ModuleName.Stocker1.ToString(), "001" }, {ModuleName.Stocker2.ToString(), "002" }, {ModuleName.Stocker3.ToString(), "003" }, {ModuleName.Stocker4.ToString(), "004" }, {ModuleName.Stocker5.ToString(), "001" }, {ModuleName.Stocker6.ToString(), "002" }, {ModuleName.Stocker7.ToString(), "003" }, {ModuleName.Stocker8.ToString(), "004" }, {ModuleName.Stocker9.ToString(), "001" }, {ModuleName.Stocker10.ToString(), "002" }, {ModuleName.Stocker11.ToString(), "003" }, {ModuleName.Stocker12.ToString(), "004" }, {ModuleName.Stocker13.ToString(), "001" }, {ModuleName.Stocker14.ToString(), "002" }, {ModuleName.Stocker15.ToString(), "003" }, {ModuleName.Stocker16.ToString(), "004" }, {ModuleName.Stocker17.ToString(), "001" }, {ModuleName.Stocker18.ToString(), "001" }, {ModuleName.FIMS1.ToString(), "001" }, {ModuleName.FIMS2.ToString(), "001" }, {ModuleName.LP1.ToString(), "001" }, {ModuleName.LP2.ToString(), "001" }, {ModuleName.LP3.ToString(), "001" }, {ModuleName.LP4.ToString(), "001" }, }; AddCustomDevice(carrierRobot); //CIDReaderBaseDevice rfidreader1 = new OmronV640Tcp("CarrierIDReader", "RFIDReaderA", "CarrierID", lp1); //lp1.CarrierIDReaderCallBack = rfidreader1; //lp1.CIDReaders = new CIDReaderBaseDevice[] { rfidreader1 }; if (SC.ContainsItem("CarrierID.CarrierIdReaderProtocolType") && SC.GetStringValue("CarrierID.CarrierIdReaderProtocolType") == "1:N") { CIDReaderBaseDevice rfidreader1 = new OmronV640NSerial("CarrierIDReader", "RFIDReader1", "CarrierID", null); AddCustomDevice(rfidreader1, "CarrierIDReader", typeof(CIDReaderBaseDevice)); } else { CIDReaderBaseDevice rfidreader1 = new OmronV640Serial("CarrierIDReader", "RFIDReader1", "CarrierID", null); AddCustomDevice(rfidreader1, "CarrierIDReader", typeof(CIDReaderBaseDevice)); CIDReaderBaseDevice rfidreader2 = new OmronV640Serial("CarrierIDReader", "RFIDReader2", "CarrierID", null); AddCustomDevice(rfidreader2, "CarrierIDReader", typeof(CIDReaderBaseDevice)); } return true; } protected override void QueueDevice(IDevice device) { //if (!string.IsNullOrEmpty(device.Module) && device.Module != "System" && device.Module.StartsWith("PM")) { QueueDevice($"{device.Module}.{device.Name}", device); } //else { // QueueDevice($"{device.Name}", device); } } private void InitFIMS() { } } }