请问如何读取usb接口的gps设备数据 想要读取出usb接口的gps设备中数据。网上提供的读取gps设备数据方法基本都是采用com口读取,不知道如何读取usb口数据呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 这要看你的usb口的gps设备是不是被设计为符合HID设备,要是就可用setupapi中的函数读取,如:HidD_GetHidGuid,SetupDiGetClassDevs,SetupDiEnumDeviceInterfaces等函数,如不是就要用与驱动程序通信的方法,如:openfile等 楼上兄弟指出了HID设备的访问方法,如果是一般的USB设备,也很简单。直接就是CreateFile然后DeviceIoControl char completeDeviceName[64] = ""; strcat (completeDeviceName, "\\\\.\\" ); strcat (completeDeviceName, "YourDriverName" //注意:这里改成你的USB设备名称 ); HANDLE hDevice = NULL; hDevice= CreateFile( completeDeviceName, GENERIC_WRITE, FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, NULL); BULK_TRANSFER_CONTROL outBulkControl;/*BULK_TRANSFER_CONTROL 结构体定义为typedef struct _BULK_TRANSFER_CONTROL{ ULONG pipeNum;} BULK_TRANSFER_CONTROL, *PBULK_TRANSFER_CONTROL;*/ outBulkControl.pipeNum=0; //使用USB设备的0号管道;注意:这要根据USB设备固件而定 DWORD BytesReturned; DeviceIoControl ( //写入 hDevice, IOCTL_MYUSB_BULK_WRITE, (PVOID)&outBulkControl, sizeof(BULK_TRANSFER_CONTROL), outBuffer, 512, &BytesReturned, NULL ); USB口的GPS都是加了个RS232转USB,只要在安装完驱动后看一下究竟是在哪个串口就行了。剩下的就是普通的串口操作了! 一个关于Ado访问MySql的问题 如何修改文件描述 蓝牙,安装了widcomm 驱动,却没有它的SDK,帮帮忙呀 创建了位图应该怎么销毁 有关创建文件的问题 我做的程序为什么我添加按键事件处理,但我按它时老是没有反应。在线等 做了个小东东,欢迎下载,帮忙顶顶 关于dao的初级问题 vc做的web控件,为何接受不到js传入的参数呢? vc2003的朋友 里边请 把编辑框的数据输入到列表框中 MFC程序里,用DirectShow可以播放mp3文件吗?
HidD_GetHidGuid,SetupDiGetClassDevs,SetupDiEnumDeviceInterfaces等函数,如不是就要用与驱动程序通信的方法,如:openfile等
如果是一般的USB设备,也很简单。直接就是CreateFile然后DeviceIoControl
char completeDeviceName[64] = "";
strcat (completeDeviceName,
"\\\\.\\"
);
strcat (completeDeviceName,
"YourDriverName" //注意:这里改成你的USB设备名称
); HANDLE hDevice = NULL;
hDevice= CreateFile( completeDeviceName,
GENERIC_WRITE,
FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
0,
NULL); BULK_TRANSFER_CONTROL outBulkControl;/*BULK_TRANSFER_CONTROL 结构体定义为
typedef struct _BULK_TRANSFER_CONTROL
{
ULONG pipeNum;
} BULK_TRANSFER_CONTROL, *PBULK_TRANSFER_CONTROL;
*/
outBulkControl.pipeNum=0; //使用USB设备的0号管道;注意:这要根据USB设备固件而定
DWORD BytesReturned; DeviceIoControl ( //写入
hDevice,
IOCTL_MYUSB_BULK_WRITE,
(PVOID)&outBulkControl,
sizeof(BULK_TRANSFER_CONTROL),
outBuffer,
512,
&BytesReturned,
NULL );