public AdvancedProjectModel() : base() { receiverSignals = new DeviceSignalsInfo(); sourceSignals = new DeviceSignalsInfo(); SharedFileAsStringList = new List <string>(); pacDTO = new PacInfo(); }
/// <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); }