簡體   English   中英

在Windows 7上使用C ++從USB讀取數據

[英]Read data from USB using C++ on Windows 7

我正在嘗試讀取Trimble SPS-361 GPS接收器的輸出,該接收器通過USB連接到Windows 7機器,使用C ++ (最好)或Java 我知道人們已經提出了類似的問題,但我似乎無法找到我正在尋找的東西。 這聽起來像libusb是我最好的選擇,這是真的嗎? 如果是這樣,什么是一個很好的教程/指南/示例代碼?

聽起來我需要安裝/編寫某種特定於設備的驅動程序然后我可以通過libusb用C ++從設備讀取數據。 這是從USB讀取的一般過程還是我困惑?

總結我認為需要的東西(我知道我到處都是):

  1. 關於如何與USB進行通信的解釋/教程
  2. 有關如何從Windows 7上的USB設備讀取數據的更具體的教程/指南/示例代碼
  3. 究竟什么是libusb,是我在尋找什么?

好吧,如果你想要來自設備的原始數據,你可以在USB設備列表中找到它,並像文件一樣從中讀取它。

從獲取所有設備開始:

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

列舉每一個,直到找到您要找的內容:

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

通過SetupDiGetInterfaceDeviceDetail獲取設備詳細SetupDiGetInterfaceDeviceDetail ...然后通過具有GENERIC_READ訪問權限的CreateFile打開設備路徑的文件句柄...運行DeviceIoControl以使用IOCTL_HID_GET_PRODUCT_STRING獲取產品字符串。 如果它不是您的設備,請關閉文件CloseHandle 如果它是你的,坐在一個循環(最好在一個線程上)做一個ReadFile ,你將從設備獲得原始記錄。

這應該讓你去...

通常,GPS傳感器在Windows中作為串行端口公開。 無需進行特定的USB處理。

只需通過CreateFile / ReadFile進行串行通信,並解析收到的GPS NMEA數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM