示例#1
0
 public AdvancedProjectModel() : base()
 {
     receiverSignals        = new DeviceSignalsInfo();
     sourceSignals          = new DeviceSignalsInfo();
     SharedFileAsStringList = new List <string>();
     pacDTO = new PacInfo();
 }
示例#2
0
        /// <summary>
        /// Сохранить данные модели
        /// </summary>
        /// <param name="projectName">Имя проекта/модели</param>
        /// <param name="model">Модель</param>
        /// <param name="mainModel">Главная модель</param>
        private void SaveModelData(string projectName, IProjectModel model,
                                   IProjectModel mainModel)
        {
            PacInfo intermediateSettings = projectsSendingFromMain[projectName];

            model.PacInfo = intermediateSettings.Clone();

            intermediateSettings = projectsSendingToMain[projectName];
            mainModel.PacInfo    = intermediateSettings.Clone();
        }
        /// <summary>
        /// Генерация remote_gateways по текущему проекту
        /// </summary>
        /// <param name="pacInfo">Данные о ПЛК сохраняемого проекта</param>
        /// <param name="projectName">Имя сохраняемого проекта</param>
        /// <param name="invertSignals">Инвертировать сигналы</param>
        /// <param name="signals">Сигналы модели</param>
        /// <returns></returns>
        private string SaveProjectRemoteGateWays(string projectName,
                                                 PacInfo pacInfo, DeviceSignalsInfo signals, bool invertSignals)
        {
            if (signals.Count <= 0)
            {
                return("");
            }

            const string prefix = "\t\t";
            var          res    = "";

            res += SavePACInfo(pacInfo, projectName, prefix);
            res += SaveSignals(signals, prefix, invertSignals);
            res += "\t},";

            res = res.Replace("\t", "    ");
            return(res);
        }
        /// <summary>
        /// Сохранение информации о PAC для remote_gateways
        /// </summary>
        /// <param name="pacInfo">Информация о PAC из модели</param>
        /// <param name="projectName">Имя проекта</param>
        /// <param name="prefix">Префикс</param>
        /// <returns></returns>
        private string SavePACInfo(PacInfo pacInfo, string projectName,
                                   string prefix)
        {
            var res = "";

            string ipComment         = "-- адрес удаленного контроллера";
            string ipEmulatorComment = "-- адрес удаленного контроллера при " +
                                       "эмуляции на столе";
            string emulationComment = "-- включение эмуляции";
            string cycleTimeComment = "-- время ожидания между опросами " +
                                      "контроллера";
            string timeoutComment = "-- таймаут для modbus клиента";
            string portComment    = "-- modbus - порт удаленного контроллера";
            string enabledComment = "-- включить/выключить шлюз";
            string stationComment = "-- номер станции modbus удаленного " +
                                    "клиента";

            res += $"\t[\'{projectName}\'] =\n\t{{\n";
            res += prefix + $"ip = \'{pacInfo.IP}\',\t{ipComment}\n";
            res += prefix + $"ipemulator = \'{pacInfo.IPEmulator}\',\t" +
                   $"{ipEmulatorComment}\n";
            res += prefix + $"emulation = " +
                   $"{pacInfo.EmulationEnabled.ToString().ToLower()},\t" +
                   $"{emulationComment}\n";
            res += prefix + $"cycletime = {pacInfo.CycleTime},\t" +
                   $"{cycleTimeComment}\n";
            res += prefix + $"timeout = {pacInfo.TimeOut},\t{timeoutComment}\n";
            res += prefix + $"port = {pacInfo.Port},\t{portComment}\n";
            res += prefix + $"enabled = " +
                   $"{pacInfo.GateEnabled.ToString().ToLower()},\t" +
                   $"{enabledComment}\n";
            res += prefix + $"station = {pacInfo.Station},\t" +
                   $"{stationComment}\n";

            return(res);
        }