Я пытаюсь подключиться к виртуальному com-порту, предоставленному драйверами устройства u-blox GPS.
Устройство обычно отображается на вкладке «Датчики» в диспетчере устройств, и я действительно могу получить данные координат, используя класс GeoCoordinateWatcher
из C #.
Но я хочу прочитать базовые данные NMEA.
Поэтому в процессе этого я установил драйвер Virtual Com Port
, предоставляемый U-BLOX, и он сгенерировал com-порт u-blox virta в диспетчере устройств.
Соединение с этим с помощью Putty
в порядке, и я вижу, что все линии NMEA сбрасываются туда.
но когда я пытаюсь подключиться к тому же порту (после того, как Putty
явно закрывается), используя C #, я получаю исключение, упомянутое в заголовке
Данное имя порта не начинается с 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-порта из расширенных настроек диспетчера устройств, что также не помогло