示例#1
0
        public FormMain()
        {
            bool portExist = false; // Найден ли существующий последовательный порт

            InitializeComponent();

            buttonOpenClose.Location = new Point(Width / 2 - buttonOpenClose.Width / 2, buttonOpenClose.Location.Y); // Размещаем кнопку открытия/закрытия порта по центру окна

            // Перебераем все существующие порты
            foreach (var port in SerialPort.GetPortNames())
            {
                portExist = true;                                             // Существующий порт найден
                SerialPortSettings.SetStringPortName(port);                   // Сохраняем имя порта
                break;                                                        // Перестаем перебирать если нашли хоть один существующий порт
            }
            SerialPortSettings.SetIsChanged(true);                            // Установить в true чтобы применить начальные настройки
            serialPortUART = SerialPortSettings.ReadSettings(serialPortUART); // Задаем новые настройки порта
            // Проверяем был ли найден хоть один порт
            if (portExist)
            {
                try
                {
                    serialPortUART.Open(); // Попытка открыть порт
                    richTextBoxMainOut.AppendText(DateTime.Now.ToString("G") +
                                                  ": Центральный узел подключен, узел расположен на порту " +
                                                  serialPortUART.PortName + Environment.NewLine); // Вывод в лог сообщения с указанием текущей даты и времени
                    richTextBoxMainOut.SelectionStart = richTextBoxMainOut.Text.Length;           // Перенос каретки в конец текста
                    richTextBoxMainOut.ScrollToCaret();                                           // Прокрутка текстового поля к каретке
                    portExist = false;                                                            // Сбрасываем найденый порт
                }
                catch (Exception ex)
                {
                    richTextBoxMainOut.AppendText(DateTime.Now.ToString("G") +
                                                  ": Невозможно открыть последовательный порт: " + ex.Message +
                                                  Environment.NewLine);                 // Вывод в лог сообщения с указанием текущей даты и времени
                    richTextBoxMainOut.SelectionStart = richTextBoxMainOut.Text.Length; // Перенос каретки в конец текста
                    richTextBoxMainOut.ScrollToCaret();                                 // Прокрутка текстового поля к каретке
                }
            }
            else
            {
                richTextBoxMainOut.AppendText(DateTime.Now.ToString("G") +
                                              ": Центральный узел системы не подключен к компьютеру, подключите центральный узел и выполните настройку программы" +
                                              Environment.NewLine);                 // Вывод в лог сообщения с указанием текущей даты и времени
                richTextBoxMainOut.SelectionStart = richTextBoxMainOut.Text.Length; // Перенос каретки в конец текста
                richTextBoxMainOut.ScrollToCaret();                                 // Прокрутка текстового поля к каретке
            }

            // Проверяем открыт ли последовательный порт
            if (serialPortUART.IsOpen)
            {
                buttonOpenClose.Text = "Закрыть порт"; // Если порт открыт выводим на кнопке надпись о закрытии порта
            }
            else
            {
                buttonOpenClose.Text = "Открыть порт"; // Если порт закрыт выводим на кнопке надпись об открытии порта
            }
        }
 /// <summary>
 /// Обработчик нажатия кнопки "Сохранить"
 /// </summary>
 /// <param name="sender">Отправитель события</param>
 /// <param name="e">Аргументы события</param>
 private void buttonSave_Click(object sender, EventArgs e)
 {
     SerialPortSettings.WriteSettings(comboBoxPortName.Items[comboBoxPortName.SelectedIndex],
                                      comboBoxParity.Items[comboBoxParity.SelectedIndex],
                                      comboBoxStopBits.Items[comboBoxStopBits.SelectedIndex],
                                      comboBoxBaudRate.Items[comboBoxBaudRate.SelectedIndex],
                                      comboBoxDataBits.Items[comboBoxDataBits.SelectedIndex],
                                      comboBoxBufferSize.Items[comboBoxBufferSize.SelectedIndex]); // Запись новых настроек
     Close();                                                                                      // Закрытие окна
 }
 public FormSettings()
 {
     InitializeComponent();
     // ---------- Инициализация начальных значений ----------
     comboBoxPortName.SelectedIndex =
         comboBoxPortName.Items.IndexOf(SerialPortSettings.GetStringPortName());
     comboBoxParity.SelectedIndex =
         comboBoxParity.Items.IndexOf(SerialPortSettings.GetStringParity());
     comboBoxStopBits.SelectedIndex =
         comboBoxStopBits.Items.IndexOf(SerialPortSettings.GetStringStopBits());
     comboBoxDataBits.SelectedIndex =
         comboBoxDataBits.Items.IndexOf(SerialPortSettings.GetStringDataBits());
     comboBoxBaudRate.SelectedIndex =
         comboBoxBaudRate.Items.IndexOf(SerialPortSettings.GetStringBaudRate());
     comboBoxBufferSize.SelectedIndex =
         comboBoxBufferSize.Items.IndexOf(SerialPortSettings.GetStringBufferSize());
     // ------------------------------------------------------
 }
示例#4
0
        private void buttonSettings_Click(object sender, EventArgs e)
        {
            if (serialPortUART.IsOpen)
            {
                serialPortUART.Close();
            }
            FormSettings formSettings = new FormSettings();

            formSettings.ShowDialog();                                        // Отображение окна для настройки последовательного порта
            serialPortUART = SerialPortSettings.ReadSettings(serialPortUART); // Применение новых настроек
            try
            {
                serialPortUART.Open();
            }
            catch (System.IO.IOException ex)
            {
                richTextBoxMainOut.AppendText("Невозможно открыть последовательный порт: " + ex.Message + Environment.NewLine);
            }
        }
示例#5
0
        /// <summary>
        /// Обработчик нажатия кнопки "Настройки"
        /// </summary>
        /// <param name="sender">Отправитель события</param>
        /// <param name="e">>Аргументы события</param>
        private void buttonSettings_Click(object sender, EventArgs e)
        {
            // Проверка открыт ли порт
            if (serialPortUART.IsOpen)
            {
                serialPortUART.Close();                // Закрытие порта если он открыт
                buttonOpenClose.Text = "Закрыть порт"; // Если порт открыт выводим на кнопке надпись о закрытии порта
            }

            FormSettings formSettings = new FormSettings();                   // Создание нового экземпляра окна настроек

            formSettings.ShowDialog();                                        // Отображение окна для настройки последовательного порта
            serialPortUART = SerialPortSettings.ReadSettings(serialPortUART); // Применение новых настроек
            try
            {
                serialPortUART.Open(); // Попытка открытия последовательного порта с новыми настройками
                richTextBoxMainOut.AppendText(DateTime.Now.ToString("G") +
                                              ": Центральный узел подключен, узел расположен на порту " +
                                              serialPortUART.PortName + Environment.NewLine); // Вывод в лог сообщения с указанием текущей даты и времени
                richTextBoxMainOut.SelectionStart = richTextBoxMainOut.Text.Length;           // Перенос каретки в конец текста
                richTextBoxMainOut.ScrollToCaret();                                           // Прокрутка текстового поля к каретке
            }
            catch (Exception ex)
            {
                richTextBoxMainOut.AppendText(DateTime.Now.ToString("G") +
                                              ": Невозможно открыть последовательный порт: " + ex.Message +
                                              Environment.NewLine);                 // Вывод в лог сообщения с указанием текущей даты и времени
                richTextBoxMainOut.SelectionStart = richTextBoxMainOut.Text.Length; // Перенос каретки в конец текста
                richTextBoxMainOut.ScrollToCaret();                                 // Прокрутка текстового поля к каретке
            }

            // Проверяем открыт ли последовательный порт и необходимо ли изменить надпись на кнопке
            if (serialPortUART.IsOpen && buttonOpenClose.Text.Equals("Открыть порт"))
            {
                buttonOpenClose.Text = "Закрыть порт"; // Если порт открыт выводим на кнопке надпись о закрытии порта
            }
            else if (!serialPortUART.IsOpen && buttonOpenClose.Text.Equals("Закрыть порт"))
            {
                buttonOpenClose.Text = "Открыть порт"; // Если порт закрыт выводим на кнопке надпись об открытии порта
            }
        }