Example #1
0
        /// <summary>
        /// Создать главную модель, вызывается из Lua
        /// </summary>
        /// <returns></returns>
        public IProjectModel CreateMainModel()
        {
            IProjectModel model = new CurrentProjectModel();

            interprojectExchange.AddModel(model);
            return(model);
        }
Example #2
0
        /// <summary>
        /// Установка IP-адреса для альтернативных моделей из главной модели
        /// </summary>
        private void SetIPFromMainModel(string projName)
        {
            CurrentProjectModel mainModel = interprojectExchange.MainModel;
            string alreadySelectedProject = mainModel.SelectedAdvancedProject;

            mainModel.SelectedAdvancedProject = interprojectExchange
                                                .MainProjectName;
            IProjectModel model = interprojectExchange.GetModel(projName);

            model.PacInfo.IP = mainModel.PacInfo.IP;
            mainModel.SelectedAdvancedProject = alreadySelectedProject;
        }
Example #3
0
        private void PACSettingsForm_Load(object sender, EventArgs e)
        {
            interprojectExchange    = InterprojectExchange.GetInstance();
            mainModel               = interprojectExchange.MainModel;
            projectsSendingFromMain = new Dictionary <string, PacInfo>();
            projectsSendingToMain   = new Dictionary <string, PacInfo>();
            WorkWithProjectsData(true);

            projectBeforeOpenForm = interprojectExchange.Models
                                    .Where(x => x.Selected == true)
                                    .Select(x => x.ProjectName)
                                    .FirstOrDefault();
        }
        /// <summary>
        /// Генерация файла для текущего проекта
        /// </summary>
        /// <returns>Содержимое файла для сохранения</returns>
        private string SaveMainProject()
        {
            var remoteGateWays = new List <string>();
            var sharedDevices  = new List <string>();

            string[] loadedAdvancedModelsNames = interprojectExchange
                                                 .LoadedAdvancedModelNames;
            CurrentProjectModel mainModel = interprojectExchange.MainModel;
            bool invertSignals            = false;

            var advancedModels = new List <IProjectModel>();

            for (int i = 0; i < loadedAdvancedModelsNames.Length; i++)
            {
                IProjectModel advancedModel = interprojectExchange
                                              .GetModel(loadedAdvancedModelsNames[i]);
                advancedModels.Add(advancedModel);
            }
            advancedModels = advancedModels.OrderBy(x => x.PacInfo.Station)
                             .ToList();

            foreach (var model in advancedModels)
            {
                string projectName = model.ProjectName;
                // SelectModel - с каким проектом работаем,
                // влияет на список сигналов с mainModel
                interprojectExchange.SelectModel(model);

                string remoteGateWay = SaveProjectRemoteGateWays(projectName,
                                                                 mainModel.PacInfo, mainModel.ReceiverSignals,
                                                                 invertSignals);
                if (!string.IsNullOrEmpty(remoteGateWay))
                {
                    remoteGateWays.Add(remoteGateWay);
                }

                string sharedDevice = SaveProjectSharedDevices(projectName,
                                                               model.PacInfo.Station, mainModel.SourceSignals,
                                                               invertSignals);
                if (!string.IsNullOrEmpty(sharedDevice))
                {
                    sharedDevices.Add(sharedDevice);
                }
            }

            string res = GenerateMainProjectTextForWriteInFile(remoteGateWays,
                                                               sharedDevices);

            return(res);
        }
        /// <summary>
        /// Отметка выбранной модели в GUI. Другие модели снимают выбор.
        /// </summary>
        /// <param name="selectingModel">Выбранная модель</param>
        public void SelectModel(IProjectModel selectingModel)
        {
            CurrentProjectModel currentProjectModel = MainModel;

            foreach (var model in Models)
            {
                if (model.ProjectName == selectingModel.ProjectName)
                {
                    model.Selected = true;
                    currentProjectModel.SelectedAdvancedProject = model
                                                                  .ProjectName;
                }
                else
                {
                    model.Selected = false;
                }
            }
        }
Example #6
0
        private void PACSettingsForm_Load(object sender, EventArgs e)
        {
            // Установка стандартного значения режима
            modeComboBox.SelectedValueChanged -=
                modeComboBox_SelectedValueChanged;
            modeComboBox.SelectedIndex = 0;
            editMode = EditMode.MainSource;
            modeComboBox.SelectedValueChanged +=
                modeComboBox_SelectedValueChanged;

            interprojectExchange    = InterprojectExchange.GetInstance();
            mainModel               = interprojectExchange.MainModel;
            projectsSendingFromMain = new Dictionary <string, PacInfo>();
            projectsSendingToMain   = new Dictionary <string, PacInfo>();
            WorkWithProjectsData(true);

            projectBeforeOpenForm = interprojectExchange.Models
                                    .Where(x => x.Selected == true)
                                    .Select(x => x.ProjectName)
                                    .FirstOrDefault();
        }