public AdvancedProjectModel() : base() { receiverSignals = new DeviceSignalsInfo(); sourceSignals = new DeviceSignalsInfo(); SharedFileAsStringList = new List <string>(); pacDTO = new PacInfo(); }
/// <summary> /// Сохранение сигналов в нужном виде /// </summary> /// <param name="signals">Модель сигналов</param> /// <param name="prefix">Префикс</param> /// <param name="invertSignals">Инвертировать сигналы</param> /// <returns></returns> private string SaveSignals(DeviceSignalsInfo signals, string prefix, bool invertSignals) { var res = ""; res += SaveDISignals(signals.DI, prefix, invertSignals); res += SaveDOSignals(signals.DO, prefix, invertSignals); res += SaveAISignals(signals.AI, prefix, invertSignals); res += SaveAOSignals(signals.AO, prefix, invertSignals); return(res); }
/// <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> /// Генерация shared_devices по проекту /// </summary> /// <param name="signals">Сигналы модели</param> /// <param name="projectName">Имя сохраняемого проекта</param> /// <param name="stationNum">Номер станции PAC</param> /// <param name="invertSignals">Инвертировать сигналы (DI<>DO, AI<>AO) /// </param> /// <returns></returns> private string SaveProjectSharedDevices(string projectName, int stationNum, DeviceSignalsInfo signals, bool invertSignals) { if (signals.Count <= 0) { return(""); } const string prefix = "\t\t"; var res = ""; res += $"\t[{stationNum}] =\n\t{{\n"; res += prefix + $"projectName = \"{projectName}\",\n"; res += SaveSignals(signals, prefix, invertSignals); res += "\t},"; res = res.Replace("\t", " "); return(res); }
/// <summary> /// Сохранение сигналов в нужном виде /// </summary> /// <param name="signals">Модель сигналов</param> /// <param name="prefix">Префикс</param> /// <param name="invertSignals">Инвертировать сигналы</param> /// <returns></returns> private string SaveSignals(DeviceSignalsInfo signals, string prefix, bool invertSignals) { var res = ""; var signalsList = new Dictionary <string, string>(); SaveDISignals(ref signalsList, signals.DI, prefix, invertSignals); SaveDOSignals(ref signalsList, signals.DO, prefix, invertSignals); SaveAISignals(ref signalsList, signals.AI, prefix, invertSignals); SaveAOSignals(ref signalsList, signals.AO, prefix, invertSignals); var signalsKeys = signalsList.Keys.ToList(); signalsKeys.Sort(); foreach (var key in signalsKeys) { res += signalsList[key]; } return(res); }