/// <summary> /// Отображает значение в строке состояния приложения /// </summary> /// <param name="serialPort">Порт для отображения данных</param> private void SetSerialPortSettingToStatusStrip(ComPort serialPort) { // Создаём строку if (serialPort != null) { _StatusStripMainWindow.Items["_ToolStripLabelSettingsPort"].Text = String.Format("{0}, {1}, {2}, {3}, {4}", serialPort.SerialPort.PortName, serialPort.SerialPort.BaudRate.ToString(), serialPort.SerialPort.DataBits.ToString(), serialPort.SerialPort.StopBits.ToString(), serialPort.SerialPort.Parity.ToString()); } else { _StatusStripMainWindow.Items["_ToolStripLabelSettingsPort"].Text = String.Empty; } }
/// <summary> /// /// </summary> public ModbusServiceAdapter() { _Context = new List<ModbusAdapterContext>(); // Создаём единственную сеть Modbus для работы // сверхним уровнем // Получаем настройки из файла конфигурации приложения NameValueCollection settings = ConfigurationManager.AppSettings; string portName = settings["PortName"]; int baudRate = int.Parse(settings["BaudRate"]); Parity parity = (Parity)Enum.Parse(typeof(Parity), settings["Parity"]); int dataBits = int.Parse(settings["DataBits"]); StopBits stopBits = (StopBits)Enum.Parse(typeof(StopBits), settings["StopBits"]); _Connection = new ComPort(portName, baudRate, parity, dataBits, stopBits); _Network = new NetworkController("ModbusNetwork", _Connection); NetworksManager.Instance.Networks.Add(_Network); // Конфигурацию на основе Init(_Network); // Запускаем таймер _Timer = new Timer(); _Timer.AutoReset = true; _Timer.Interval = 1000; _Timer.Elapsed += new ElapsedEventHandler(EventHandler_Timer_Elapsed); _Timer.Start(); }
/// <summary> /// /// </summary> /// <remarks>Необходимо подключить сборку System.Configuration</remarks> private void LoadAppConfiguration() { // Получаем настройки из файла конфигурации приложения try { Configuration config = ConfigurationManager.OpenExeConfiguration( ConfigurationUserLevel.None); try { _PathToFileNetworkConfig = config.AppSettings.Settings["PathToNetworkConfigFile"].Value; if (_PathToFileNetworkConfig == String.Empty) { // Используется каталог приложения (по умолчанию) _PathToFileNetworkConfig = Application.StartupPath + @"\config.xml"; } } catch { MessageBox.Show(this, "Не удалось получить путь к файлу конфигурации сети из файла конфигурации прложения. " + "Будет использован поиск файла конфигурации по умолчанию", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Error); // Используется каталог приложения (по умолчанию) _PathToFileNetworkConfig = Application.StartupPath + @"\config.xml"; } // Создаём объект для подключения try { String portName = config.AppSettings.Settings["PortName"].Value; if (portName == String.Empty) { _SerialPort = null; } else { int baudRate = Int32.Parse(config.AppSettings.Settings["BaudRate"].Value); System.IO.Ports.Parity parity = (System.IO.Ports.Parity)Enum.Parse(typeof(System.IO.Ports.Parity), config.AppSettings.Settings["Parity"].Value, true); int dataBits = Int32.Parse(config.AppSettings.Settings["DataBits"].Value); System.IO.Ports.StopBits stopBits = (System.IO.Ports.StopBits)Enum.Parse( typeof(System.IO.Ports.StopBits), config.AppSettings.Settings["StopBits"].Value, true); _SerialPort = new ComPort(portName, baudRate, parity, dataBits, stopBits); _ToolStripButtonStart.Enabled = true; _ToolStripButtonStop.Enabled = false; } } catch { MessageBox.Show(this, "Порт подключения к сети не создан, неверные настройки в файле конфигурации приложения" + "Приложение будет закрыто", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); _SerialPort = null; Application.Exit(); } } catch { MessageBox.Show(this, "Не удалось получить настройки из Файла конфигурации приложения", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Error); _SerialPort = null; // Используется каталог приложения (по умолчанию) _PathToFileNetworkConfig = Application.StartupPath + @"\config.xml"; } // Cоздаём сеть NetworkController network = LoadNetworkConfiguration(_PathToFileNetworkConfig); SetCurrentNetwork(network); return; }