Sic03-8inch/SicRT/Instances/ToolLoader.cs

126 lines
4.3 KiB
C#
Raw Normal View History

2023-03-29 10:19:02 +08:00
using Aitex.Common.Util;
2023-03-03 15:42:13 +08:00
using Aitex.Core.RT.ConfigCenter;
using Aitex.Core.RT.DataCenter;
using Aitex.Core.RT.DataCollection;
using Aitex.Core.RT.DBCore;
using Aitex.Core.RT.Event;
using Aitex.Core.RT.Log;
using Aitex.Core.RT.OperationCenter;
using Aitex.Core.RT.RecipeCenter;
using Aitex.Core.Util;
using Aitex.Core.WCF;
using MECF.Framework.Common.Account;
using MECF.Framework.Common.Communications;
using MECF.Framework.Common.Equipment;
using MECF.Framework.Common.IOCore;
using MECF.Framework.Common.SCCore;
using MECF.Framework.Common.SubstrateTrackings;
using MECF.Framework.RT.Core.Applications;
using MECF.Framework.RT.Core.Backend;
using MECF.Framework.RT.Core.IoProviders;
using SorterRT.Modules;
using SicRT.Equipments.Systems;
2023-03-28 13:24:11 +08:00
using SicPM.RecipeExecutions;
2023-03-03 15:42:13 +08:00
namespace SicRT.Instances
{
internal class ToolLoader : IRtLoader
{
#region Variables
2023-03-28 13:24:11 +08:00
2023-03-03 15:42:13 +08:00
#endregion
public void Initialize()
{
2023-03-28 13:24:11 +08:00
2023-03-03 15:42:13 +08:00
Singleton<LogManager>.Instance.Initialize();
LOG.Write($"RT v{RtInstance.SystemVersion} launch ...");
Singleton<ConfigManager>.Instance.Initialize();
Singleton<DatabaseManager>.Instance.Initialize(
System.Configuration.ConfigurationManager.ConnectionStrings["PostgreSQL"].ConnectionString
, RtInstance.DATABASE_NAME
, PathManager.GetCfgDir() + "DBModel.sql");
Singleton<EventManager>.Instance.Initialize(PathManager.GetCfgDir() + "EventDefine.xml");
Singleton<OperationManager>.Instance.Initialize();
Singleton<DataManager>.Instance.Initialize();
RecipeFileManager.Instance.Initialize(new SicRecipeFileContext());
AccountExManager.Instance.Initialize(true);
Singleton<SystemConfigManager>.Instance.Initialize(PathManager.GetCfgDir() + "System.sccfg");
ConnectionManager.Instance.Initialize();
string ioProviderPathFile = PathManager.GetCfgDir() + "IoProviderConfig.xml";
2023-03-28 13:24:11 +08:00
2023-03-03 15:42:13 +08:00
IoProviderManager.Instance.Initialize(ioProviderPathFile);
2023-04-04 11:08:53 +08:00
IoManager.Instance.Initialize(PathManager.GetCfgDir() + "tm\\interlock.xml");
2023-03-03 15:42:13 +08:00
WaferManager.Instance.Initialize();
Singleton<DeviceManager>.Instance.DisableAsyncInitialize = true;
2023-03-28 13:24:11 +08:00
2023-03-29 10:19:02 +08:00
IoManager.Instance.Initialize(PathManager.GetCfgDir() + "pm\\pm1\\interlockPM1.xml");
Singleton<DeviceManager>.Instance.Initialize(PathManager.GetCfgDir() + "pm\\pm1\\DeviceModelPM1.xml", "Sic", ModuleName.PM1, "PM1", false);
2023-03-03 15:42:13 +08:00
2023-03-28 13:24:11 +08:00
2023-03-29 10:19:02 +08:00
IoManager.Instance.Initialize(PathManager.GetCfgDir() + "pm\\pm2\\interlockPM2.xml");
Singleton<DeviceManager>.Instance.Initialize(PathManager.GetCfgDir() + "pm\\pm2\\DeviceModelPM2.xml", "Sic", ModuleName.PM2, "PM2", false);
2023-03-03 15:42:13 +08:00
2023-03-28 13:24:11 +08:00
2023-03-29 10:19:02 +08:00
Singleton<DeviceManager>.Instance.Initialize(PathManager.GetCfgDir() + "tm\\DeviceModelSystem.xml", "Sic", ModuleName.System, "TM", true);
2023-03-03 15:42:13 +08:00
Singleton<DeviceEntity>.Instance.Initialize();
//DataCollectionManager.Instance.Initialize(new string[] { "System", "PM1", "PM2" }, RtInstance.DATABASE_NAME);
//DataCollectionManager.Instance.Initialize(new string[] { "System", "IO.PM1" , "IO.TM" , "PM1" }, RtInstance.DATABASE_NAME);
2023-03-28 13:24:11 +08:00
DataCollectionManager.Instance.Initialize(new string[] { "System", "IO.PM1", "IO.PM2", "IO.TM", "PM1", "PM2" }, RtInstance.DATABASE_NAME);
2023-03-03 15:42:13 +08:00
RtSystemManager.Instance.AddCustomBackend("SC", new BackendSCConfigView());
Singleton<EquipmentManager>.Instance.Initialize();
2023-03-28 13:24:11 +08:00
// Singleton<RouteManager>.Instance.Initialize();
2023-03-03 15:42:13 +08:00
//Singleton<FAJobManager>.Instance.Initialize();
Singleton<EventManager>.Instance.SubscribeOperationAndData();
}
public void Terminate()
{
Singleton<DeviceEntity>.Instance.Terminate();
Singleton<DeviceManager>.Instance.Terminate();
IoProviderManager.Instance.Terminate();
Singleton<SystemConfigManager>.Instance.Terminate();
DataCollectionManager.Instance.Terminate();
Singleton<WcfServiceManager>.Instance.Terminate();
Singleton<EventManager>.Instance.Terminate();
Singleton<LogManager>.Instance.Terminate();
Singleton<DatabaseManager>.Instance.Terminate();
}
}
}