예제 #1
0
파일: FormMain.cs 프로젝트: serialbus/NGK
 /// <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;
     }
 }
예제 #2
0
        /// <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();
        }
예제 #3
0
파일: FormMain.cs 프로젝트: serialbus/NGK
        /// <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;
        }