Я пытаюсь подключиться к виртуальному COM-порту, предоставленному драйверами GPS-устройства u-blox.
Устройство обычно отображается на вкладке «Датчики» в диспетчере устройств, и я действительно могу получить данные координат, используя класс GeoCoordinateWatcher
из C #.
Но я хочу прочитать основные данные NMEA. Итак, в процессе этого я установил драйвер Virtual Com Port
, предоставленный U-BLOX, и он сгенерировал com-порт u-blox virta в диспетчере устройств.
Подключение к нему с помощью Putty
в порядке, и я вижу, что все строки NMEA сбрасываются туда.
но когда я пытаюсь подключиться к тому же порту (очевидно, после закрытия Putty
) с помощью C #, я получаю исключение, указанное в заголовке
Указанное имя порта не начинается с COM / com или не соответствует допустимому последовательному порту.
Мой код довольно прост (не первый раз, когда я использую com-порты), и все правильно определено (имя порта, стоповые биты, четность, BaudRate и т. Д.). Я даже попытался изменить имя COM-порта на "неправильное", чтобы увидеть исключение, которое я получу, и оно совершенно другое (Com-порт не является исключением для выхода).
Так что же сейчас происходит с C #? Я делаю что-то неправильно? Это ошибка в классе SerialPort? Putty, кажется, отлично работает при подключении и потоковой передаче данных. Мой код такой простой, как следующий
m_port = new SerialPort
{
PortName = m_portName,
BaudRate = m_baudRate,
Parity = m_parityBit,
DataBits = m_dataBits,
StopBits = m_stopBit
};
m_port.Open();
Я даже попытался жестко закодировать значения, но все равно получаю то же исключение. Я пробовал многие из предлагаемых решений, найденных здесь Ни один из них не помог. Я также попытался изменить номер COM-порта в дополнительных настройках диспетчера устройств, что тоже не помогло.