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); } }
/// <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 = "Открыть порт"; // Если порт закрыт выводим на кнопке надпись об открытии порта } }