/// <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);
        }
예제 #2
0
        /// <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);
        }
예제 #3
0
        /// <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();
            }
        }
예제 #4
0
        /// <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);
            }
        }
예제 #5
0
        /// <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}\"");
            }
        }
예제 #6
0
        /// <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);
        }