void LoadSettingsPort() { if (string.IsNullOrEmpty(_fileName)) { _serialPort.PortName = SettingsOptions.Default.comPort; _serialPort.BaudRate = SettingsOptions.Default.baudRate; _serialPort.DataBits = SettingsOptions.Default.dataBits; _serialPort.Parity = SettingsOptions.Default.parity; _serialPort.StopBits = SettingsOptions.Default.stopBits; // По умолчанию Handshake = Handshake.None // Но если его его не переприсвоить заново // Последовательный порт работал не стабильно // Наблюдались повторы посылок по ModBus // Возможно это связанно с ПО Аркадия (Виртуальный COM порт не принимал правильно настройки от Хоста) _serialPort.Handshake = SettingsOptions.Default.flowControl; _timeOut = SettingsOptions.Default.timeOut; _numberRepeatMax = SettingsOptions.Default.numberRepeat; } else { CustomSettings settings = FormOptions.LoadSettings(_fileName); _serialPort.PortName = settings.ComPort; _serialPort.BaudRate = settings.BaudRate; _serialPort.DataBits = settings.DataBits; _serialPort.Parity = settings.Parity; _serialPort.StopBits = settings.StopBits; _serialPort.Handshake = settings.FlowControl; _timeOut = settings.TimeOut; _numberRepeatMax = settings.NumberRepeat; } _timerOut.Interval = _timeOut; }
/// <summary> /// Отображает диалог настройки /// </summary> public DialogResult OptionsShow(string caption) { if (string.IsNullOrEmpty(_fileName)) { _setupForm = _setupForm ?? (new FormOptions()); } else { _setupForm = _setupForm ?? (new FormOptions(_fileName)); } _setupForm.Text = caption; #region Заполняю форму настройками порта if (_setupForm.ShowDialog() == DialogResult.OK) { try { LoadSettingsPort(); } catch { if (_serialPort.IsOpen) { MessageBox.Show("Порт уже открыт", "Warning", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); } } return(DialogResult.OK); } else { return(DialogResult.Cancel); } #endregion }