Как читать предложения NMEA в Windows Vista, используя C ++ - PullRequest
1 голос
/ 13 октября 2009

К моей системе подключено устройство GPS, работающее под управлением Windows Vista.

Я хотел прочитать предложения NMEA с устройства GPS и распечатать на экране.

Как я узнаю, к какому порту подключено устройство GPS, так как могут быть другие устройства, подключенные к различным com-портам. Я занимаюсь разработкой приложения на с ++,

Предоставляет ли Microsoft какие-либо API для этого?

Ответы [ 3 ]

1 голос
/ 13 октября 2009

Я бы хотел попросить пользователя указать порт. NMEA обычно приходит в виде строки ASCII через COM-порт. До Bluetooth это обычно было COM1-COM4 с 90% случаев, либо COM1 или COM2. Сейчас более распространено подключение через Bluetooth, где вы регулярно видите COM-порты до COM20 и выше, поэтому грубая сила - медленный вариант. Время, необходимое для проверки всех портов, зависит от того, как часто ваш GPS отправляет отправления (при условии, что он не требует подсказок) и ваших тайм-аутов. Вы можете ожидать, что поиск займет до 30 секунд. Если вы перечислите COM-порты , это будет намного быстрее, так как редко будет более полудюжины активных портов одновременно.

1 голос
/ 13 октября 2009

Ну, в старые времена вы давали пользователю вашего приложения право указывать правильный порт;) Или, действительно, проверить все из них. Формат и доступный набор предложений NMEA могут различаться в зависимости от конкретного устройства - например, прочитайте некоторую информацию здесь , но предложения должны быть в виде простого текста. (Если нет, то это не формат NMEA :))

1 голос
/ 13 октября 2009

Что это за порт? Если это последовательный порт, попробуйте подключиться ко всем последовательным портам, по одному, а затем просто прослушайте строку NMEA. Если он получен, используйте порт, если он не получен, перейдите к следующему порту.

...