コード例 #1
0
        private void OpenPort(EasyCommunicationPort port)
        {
            if (_portOpened)
            {
                return;
            }

            port.SetCommStateEvent += SetCommStateEventHandler;
            try
            {
                // дополнительные действия до открытия порта
                OnBeforeActivate();

                // открываем порт на заданной скорости
                port.BaudRate = _baudRate;
                port.Open();

                _portOpened = true;
            }
            catch (Win32Exception e)
            {
                // устанавливаем код ошибки
                ErrorCode = new ServerErrorCode(this, e);
                throw;
            }
            finally
            {
                port.SetCommStateEvent -= SetCommStateEventHandler;
            }
        }
コード例 #2
0
 /// <summary>
 /// Подготовка порта к работе
 /// </summary>
 private void PreparePort()
 {
     if (!_port.IsOpen)
     {
         _port.Open();
         _port.WriteTimeout = 2000;
         // будет использоваться только таймаут приема байта
         _port.ReadTimeout = 0;
     }
 }
コード例 #3
0
 /// <summary>
 /// Установка соединения с устройством
 /// </summary>
 public override void Open()
 {
     try
     {
         _port.Open();
         _port.DiscardBuffers();
     }
     catch (Win32Exception e)
     {
         throw new CommunicationException(
                   string.Format("Не удалось открыть порт {0}", _port.PortName), e);
     }
 }