/// <summary> /// Считывание описания. /// </summary> public int LoadDescription(out string errStr, string projectName, bool loadFromLua) { errStr = ""; Logs.Clear(); EProjectManager.GetInstance().ProjectDataIsLoaded = false; string LuaStr; int res = 0; var oProgress = new Eplan.EplApi.Base.Progress("EnhancedProgress"); oProgress.SetAllowCancel(false); oProgress.SetTitle("Считывание данных проекта"); try { oProgress.BeginPart(15, "Считывание IO"); projectConfiguration.ReadIO(); oProgress.EndPart(); oProgress.BeginPart(15, "Считывание устройств"); if (projectConfiguration.DevicesIsRead == true) { projectConfiguration.SynchronizeDevices(); } else { projectConfiguration.ReadDevices(); } oProgress.EndPart(); oProgress.BeginPart(25, "Считывание привязки устройств"); projectConfiguration.ReadBinding(); oProgress.EndPart(); if (loadFromLua) { EncodingDetector.MainFilesEncoding = null; oProgress.BeginPart(15, "Считывание технологических " + "объектов"); res = LoadDescriptionFromFile(out LuaStr, out errStr, projectName, $"\\{ProjectDescriptionSaver.MainTechObjectsFileName}"); techObjectManager.LoadDescription(LuaStr, projectName); errStr = ""; LuaStr = ""; res = LoadDescriptionFromFile(out LuaStr, out errStr, projectName, $"\\{ProjectDescriptionSaver.MainRestrictionsFileName}"); techObjectManager.LoadRestriction(LuaStr); oProgress.EndPart(); } oProgress.BeginPart(15, "Проверка данных"); projectConfiguration.Check(); oProgress.EndPart(); oProgress.BeginPart(15, "Расчет IO-Link"); IOManager.CalculateIOLinkAdresses(); oProgress.EndPart(true); EProjectManager.GetInstance().ProjectDataIsLoaded = true; } catch (System.Exception ex) { MessageBox.Show(ex.Message); oProgress.EndPart(true); EProjectManager.GetInstance().ProjectDataIsLoaded = false; } return(res); }