113 lines
4.2 KiB
C#
113 lines
4.2 KiB
C#
using SicRT.Equipments.Systems;
|
||
using MECF.Framework.UI.Client.TrayThickness.HistoryData;
|
||
using MECF.Framework.Common.Aitex.Core.Common.DeviceData;
|
||
|
||
namespace SicRT.Instances
|
||
{
|
||
internal class ToolLoader : IRtLoader
|
||
{
|
||
#region Variables
|
||
|
||
|
||
|
||
#endregion
|
||
|
||
public void Initialize()
|
||
{
|
||
Singleton<LogManager>.Instance.Initialize();
|
||
|
||
LOG.Write($"RT v{RtInstance.SystemVersion} launch ...");
|
||
|
||
Singleton<ConfigManager>.Instance.Initialize();
|
||
|
||
Singleton<DataBaseManager>.Instance.Initialize();
|
||
|
||
Singleton<DataManager>.Instance.Initialize();
|
||
Singleton<OperationManager>.Instance.Initialize();
|
||
|
||
Singleton<EventManager>.Instance.Initialize(PathManager.GetCfgDir() + "EventDefine.xml");
|
||
|
||
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";
|
||
|
||
IoProviderManager.Instance.Initialize(ioProviderPathFile);
|
||
|
||
WaferManager.Instance.Initialize();
|
||
|
||
Singleton<DeviceManager>.Instance.DisableAsyncInitialize = true;
|
||
|
||
Singleton<DeviceManager>.Instance.Initialize(PathManager.GetCfgDir() + "pm\\pm1\\DeviceModelPM1.xml", "Sic",
|
||
ModuleName.PM1, "PM1", false);
|
||
|
||
Singleton<DeviceManager>.Instance.Initialize(PathManager.GetCfgDir() + "pm\\pm2\\DeviceModelPM2.xml", "Sic",
|
||
ModuleName.PM2, "PM2", false);
|
||
|
||
Singleton<DeviceManager>.Instance.Initialize(PathManager.GetCfgDir() + "tm\\DeviceModelSystem.xml", "Sic",
|
||
ModuleName.System, "TM", true);
|
||
|
||
//测温初始化
|
||
Singleton<DeviceManager>.Instance.Initialize(PathManager.GetCfgDir() + "Common\\Common.xml", "Sic", ModuleName.System, "System", false);
|
||
|
||
RtSystemManager.Instance.AddCustomBackend("SC", new BackendSCConfigView());
|
||
|
||
Singleton<EquipmentManager>.Instance.Initialize();
|
||
|
||
//! !!!!注意 !!!!!!
|
||
// 注意构建和启动DeviceManager状态机的时机,不要早于EquipmentManager,因为EquipmentManger中
|
||
// 的InitModules()方法构建模组时,如果模组被配置为NotInstalled,则模组所属的Device会被禁用。
|
||
// 若过早的使能DeviceManager,被卸载的Module可能产生误报警。
|
||
Singleton<DeviceEntity>.Instance.Initialize();
|
||
|
||
HistoryCoatingManager.Instance.Initialize();
|
||
|
||
if (Singleton<EquipmentManager>.Instance.Modules[ModuleName.TM].IsInstalled)
|
||
IoManager.Instance.Initialize(PathManager.GetCfgDir() + "tm\\interlock.xml");
|
||
|
||
if (Singleton<EquipmentManager>.Instance.Modules[ModuleName.PM1].IsInstalled)
|
||
IoManager.Instance.Initialize($"{PathManager.GetCfgDir()}pm\\pm1\\interlockPM1.xml");
|
||
|
||
if (Singleton<EquipmentManager>.Instance.Modules[ModuleName.PM2].IsInstalled)
|
||
IoManager.Instance.Initialize($"{PathManager.GetCfgDir()}pm\\pm2\\interlockPM2.xml");
|
||
|
||
|
||
|
||
Singleton<ProcessHistoryItemsDefault>.Instance.Initialize();
|
||
|
||
//! DataCollectionManager必须在最后初始化,否则在其之后注册的DATA数据均会被忽略
|
||
Singleton<DataCollectionManager>.Instance.Initialize();
|
||
|
||
//开启循环删除数据库
|
||
Singleton<DataBaseCleanerManager>.Instance.Initialize();
|
||
}
|
||
|
||
|
||
public void Terminate()
|
||
{
|
||
Singleton<DeviceEntity>.Instance.Terminate();
|
||
|
||
Singleton<DeviceManager>.Instance.Terminate();
|
||
|
||
IoProviderManager.Instance.Terminate();
|
||
|
||
Singleton<SystemConfigManager>.Instance.Terminate();
|
||
|
||
Singleton<DataCollectionManager>.Instance.Terminate();
|
||
|
||
Singleton<WcfServiceManager>.Instance.Terminate();
|
||
|
||
Singleton<EventManager>.Instance.Terminate();
|
||
|
||
Singleton<LogManager>.Instance.Terminate();
|
||
|
||
Singleton<DataBaseManager>.Instance.Terminate();
|
||
}
|
||
}
|
||
}
|