示例#1
0
        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;
        }
示例#2
0
        /// <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
        }