/// <summary> /// Загрузить описание базовых объектов из файла /// </summary> /// <param name="pathToFile">Путь к файлу с базовыми объектами</param> /// <returns>Описание</returns> private string LoadBaseTechObjectsDescription(string pathToFile) { var reader = new StreamReader(pathToFile, EncodingDetector.DetectFileEncoding(pathToFile)); string readedDescription = reader.ReadToEnd(); return(readedDescription); }
/// <summary> /// Загрузить LUA-скрипт из файла /// </summary> /// <param name="path">Путь к файлу скрипта</param> private void LoadScript(string path) { var reader = new StreamReader(path, EncodingDetector.DetectFileEncoding(path)); string script = reader.ReadToEnd(); reader.Close(); lua.DoString(script); }
/// <summary> /// Прочитать shared.lua в список для манипуляций /// </summary> /// <param name="projName">Имя проекта для поиска модели</param> /// <param name="pathToSharedFile">Путь к файлу shared.lua</param> private void ReadModelSharedFileToList(string projName, string pathToSharedFile) { IProjectModel model = interprojectExchange.Models .Where(x => x.ProjectName == projName) .FirstOrDefault(); if (model != null) { model.SharedFileAsStringList = File .ReadAllLines(pathToSharedFile, EncodingDetector.DetectFileEncoding(pathToSharedFile)) .ToList(); } }
/// <summary> /// Чтение Shared файла альтернативного проекта /// </summary> /// <param name="pathToProjectsDir">Путь к каталогу с проектами</param> /// <param name="projName">Имя проекта</param> /// <returns></returns> public void LoadAdvancedProjectSharedLuaData(string pathToProjectsDir, string projName) { string pathToSharedFile = Path.Combine(pathToProjectsDir, projName, signalsFile); if (File.Exists(pathToSharedFile)) { var reader = new StreamReader(pathToSharedFile, EncodingDetector.DetectFileEncoding(pathToSharedFile)); string sharedInfo = reader.ReadToEnd(); reader.Close(); lua.DoString(sharedInfo); // Функция из Lua lua.DoString("init_advanced_project_shared_lua()"); ReadModelSharedFileToList(projName, pathToSharedFile); } }
/// <summary> /// Загрузка devices.lua файла проекта /// </summary> /// <param name="pathToProjectsDir"></param> /// <param name="projName"></param> private void LoadDevicesFile(string pathToProjectsDir, string projName) { string pathToDevices = Path.Combine(pathToProjectsDir, projName, deviceDescriptionFile); if (File.Exists(pathToDevices)) { var reader = new StreamReader(pathToDevices, EncodingDetector.DetectFileEncoding(pathToDevices)); string devicesInfo = reader.ReadToEnd(); reader.Close(); lua.DoString(devicesInfo); // Функция из Lua lua.DoString("system.init_dev_names()"); } else { form.ShowErrorMessage($"Не найден файл main.devices.lua " + $"проекта \"{projName}\""); } }
/// <summary> /// Чтение информации о ПЛК из main.io.lua /// </summary> /// <param name="pathToProjectsDir">Путь к папке с проектами</param> /// <param name="projName">Имя проекта</param> /// <returns></returns> private void LoadMainIOData(string pathToProjectsDir, string projName) { string pathToIOFile = Path.Combine(pathToProjectsDir, projName, devicesAndPLCFile); if (File.Exists(pathToIOFile)) { var reader = new StreamReader(pathToIOFile, EncodingDetector.DetectFileEncoding(pathToIOFile)); string ioInfo = reader.ReadToEnd(); reader.Close(); lua.DoString(ioInfo); // Функция из Lua lua.DoString("init_io_file()"); } else { MessageBox.Show($"Не найден файл main.io.lua проекта" + $" \"{projName}\"", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
/// <summary> /// Загрузка описание базовых объектов /// </summary> /// <returns>Описание</returns> private string LoadBaseTechObjectsDescription() { var fileName = "sys_base_objects_description.lua"; var pathToFile = Path.Combine( ProjectManager.GetInstance().SystemFilesPath, fileName); if (!File.Exists(pathToFile)) { string template = EasyEPlanner.Properties.Resources .ResourceManager .GetString("SysBaseObjectsDescriptionPattern"); File.WriteAllText(pathToFile, template, EncodingDetector.UTF8); MessageBox.Show("Файл с описанием базовых объектов не найден." + " Будет создан пустой файл (без описания).", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); } var reader = new StreamReader(pathToFile, EncodingDetector.DetectFileEncoding(pathToFile)); string readedDescription = reader.ReadToEnd(); return(readedDescription); }