Чтение данных с USB с помощью C ++ в Windows 7

Я пытаюсь прочитать вывод GPS-приемника Trimble SPS-361, который подключен к компьютеру под управлением Windows 7 через USB, используя C ++ (предпочтительно) или Джава. Я знаю, что люди задавали подобные вопросы, но я не могу найти то, что я ищу. Это звучит как libusb моя лучшая ставка, это правда? Если это так, что такое хороший учебник / руководство / пример кода?

Похоже, мне нужно установить / написать какой-то драйвер для конкретного устройства, а затем я могу читать данные с устройства с помощью C ++ через libusb. Это общий процесс чтения с USB или я запутался?

Подводя итог, что я думаю, нужно (я знаю, что я повсюду):

  1. Объяснение / руководство по общению с USB в целом
  2. Более конкретный учебник / руководство / пример кода о том, как считывать данные с USB-устройства в Windows 7
  3. Что такое libusb и что я ищу?

4

Решение

Что ж, если вам нужны необработанные данные с устройства, вы можете найти их в списке устройств USB и буквально прочитать из них как файл.

Начните с получения всех устройств:

HDEVINFO hDevInfo = SetupDiGetClassDevs( &HIDWatch::GUID_DEVINTERFACE_HID, 0, 0, DIGCF_DEVICEINTERFACE );

Перечисляйте каждый, пока не найдете то, что ищете:

SetupDiEnumInterfaceDevice( hDevInfo, NULL, &HIDWatch::GUID_DEVINTERFACE_HID, index++, &InterfaceInfoData )

Получить подробности устройства через SetupDiGetInterfaceDeviceDetail… затем откройте дескриптор файла для пути устройства через CreateFile с GENERIC_READ доступ … запустить DeviceIoControl чтобы получить строку продукта, используя IOCTL_HID_GET_PRODUCT_STRING, Если это не ваше устройство, закройте файл CloseHandle, Если это ваше, сидеть в цикле (желательно в потоке) делать ReadFile и вы получите сырые записи с устройства.

Это должно заставить вас идти …

5

Другие решения

Обычно датчик GPS выставляется в Windows как последовательный порт. Нет необходимости делать специальную обработку USB.

Просто выполните последовательную связь через CreateFile / ReadFile и проанализируйте полученные данные GPS NMEA.

0

По вопросам рекламы [email protected]