До сих пор мне не удалось найти ответ, но я хотел знать, есть ли способ, в частности, с помощью C #, определить, на какую максимальную скорость передачи данных способен последовательный порт, без необходимости просто проверить это.
Есть ли что-то в его аппаратном профиле или что-то, что хранит доступные скорости передачи данных для определенного порта, которые С# может запросить?
Ответ 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)