我正在尝试读取来自Trimble SPS-361 GPS接收器的输出,该接收器通过USB连接到Windows7计算机,最好使用C++ (最好是)或Java。我知道人们也问过类似的问题,但我似乎找不到我要找的东西。听起来libusb是我最好的选择,是真的吗?如果是这样的话,什么是好的教程/指南/示例代码?
听起来我需要安装/编写某种特定于设备的驱动程序,然后我可以通过libusb使用C++读取设备上的数据。这是从USB读取数据的一般过程,还是我感到困惑?
总结一下我认为需要的东西(我知道我到处都是):
发布于 2013-07-11 19:56:01
好吧,如果你想要设备上的原始数据,你可以在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,您将从设备中获得原始记录。
这应该能让你..。
发布于 2014-01-27 02:19:54
通常,在Windows中,GPS传感器作为串口公开。没有必要做特定的USB处理。
只需通过CreateFile/ReadFile进行串行通信,并解析接收到的GPS NMEA数据。
https://stackoverflow.com/questions/17600267
复制相似问题