Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Есть ли способ определить максимальную скорость последовательного порта?

Автор вопроса: XanthamОтветов: 1

До сих пор мне не удалось найти ответ, но я хотел знать, есть ли способ, в частности, с помощью C #, определить, на какую максимальную скорость передачи данных способен последовательный порт, без необходимости просто проверить это.

Есть ли что-то в его аппаратном профиле или что-то, что хранит доступные скорости передачи данных для определенного порта, которые С# может запросить?

serial-port

Ответы

Ответ 1 · рейтинг 2 · Faraday

Используя отражение, вы можете/должны сделать это следующим образом:

   serialPort = new SerialPort(portName);
   serialPort.Open();
   object p = serialPort.BaseStream.GetType().GetField("commProp", BindingFlags.Instance | BindingFlags.NonPublic).GetValue(serialPort.BaseStream);
   Int32 bv = (Int32)p.GetType().GetField("dwSettableBaud", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Public).GetValue(p);

Примечание. Порт будет открыт для проверки устанавливаемой скорости передачи данных! :)

См. этот пост для получения дополнительной информации о том, как вы можете проверить скорость передачи данных: -serialport-class">Как программно найти все доступные скорости передачи в C# (класс serialPort)

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы