VC的HID人机接口设备设计+技术发展+需求分析 第7页
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
DWORD dwCreationDisposition,
DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile
);
(6) 获取USB 设备的有关属性。
调用HidD_GetAttributes获取设备的零售商ID、产品ID 及产品的版本号等。如果获取成功,则将属性中的VID、PID以及设备版本号与我们的目标设备进行比较,如果一致,则是目标设备,则使用读写方式打开目标设备。毕业论文
http://www.youerw.comBOOLEAN __stdcall
HidD_GetAttributes (
IN HANDLE HidDeviceObject,
OUT PHIDD_ATTRIBUTES Attributes
);
(7) 释放设备信息集合。
SetupDiDestroyDeviceInfoList函数释放设备节点及内存分配。
WINSETUPAPI
BOOL
WINAPI
SetupDiDestroyDeviceInfoList(
IN HDEVINFO DeviceInfoSet
);
图4-4 即为VC中调用Windows API函数打开HID设备的流程图。图4-4 打开设备流程图
在完成打开设备功能之后,主机便可与HID设备进行通信了。主机在接收报告的时候,需要从报告中提取数据。由于报告中包含了各种类型的数据,为了便辨别不同类型的数据,HID 类提供了HidP_GetXxx 例程,从设备中读取不同类型的数据。如果程序员知道各个数据的含义,则可直接使用ReadFile 函数读出数据。同样,主机发送数据给设备的时候,也要先创建报告;为了方便发送不同类型的数据给设备,HID 类提供了HidP_SetXxx 函数。当然,如果程序员知道各个数据的含义,也可以直接使用WriteFile 函数将报告传给设备。在LCD显示与键盘键盘功能模块上,我们使用HidD_SetFeature来传送一个特征报文给HID设备。
HidD_SetFeature (本文来自优'文*论-文.网
IN HANDLE HidDeviceObject,
IN PVOID ReportBuffer,
IN ULONG ReportBufferLength
);
4.3.3 LCD显示功能模块
LCD显示功能模块,首先用函数GetDlgItemText从文本框获取用户输入信息,并设置报告缓冲区第1字节为0x01(自定义),开启LCD显示功能。
主要代码如下:
ReportBuffer[0] = 0x00; //ReportBuffer为报文缓冲区
ReportBuffer[1] = 0x01; //Display command
ReportBuffer[2] = sendLen;
HidD_SetFeature(hDevHandle, ReportBuffer, 0x21);
读写报文缓冲区时,第一个字节是Report ID,其后是报文数据。报文缓冲区默认是八个报文,并且环状排列。因为数据读写是发生在主机轮训设备的时候,并不是由设备触发产生硬件中断,所以如不能及时读写,新的数据会覆盖旧的数据,导致生报文丢失。当数据读写频繁时应使用特征报文,它可以保证当报文数据没有变化时,HID不会传送新的数据。当设备接收到该命令,设备将启动LCD功能模块显示最多30个字符到LCD屏上。LCD命令定义,见表4-2。
表4-2 LCD命令定义
偏移量 域 大小(字节) 值 描述
00h bLCDCmd 1 01h LCD显示命令
01h bLength 1 定义显示字符的长度
02h abData bLength 显示在LCD上的字符
03h+bLength abRandomData 29-bLength 随机数
4.3.4 键盘功能模块毕业论文
http://www.youerw.com键盘功能模块,可启动开发板的键盘功能,并读取键值。需将报告缓冲区第1字节设置为0x02(自定义)。主要代码如下:
ReportBuffer[0] = 0x00;
ReportBuffer[1] = 0x02; //Read key command
HidD_SetFeature(hDevHandle, ReportBuffer, 0x21);
当HID设备接收到该命令,设备将在LCD上显示“Enter Data:”以提示用户,并调用按键功能模块等待用户输入按键,用户只能输入0~9之间的按键,但输入的按键达到最大长度6或者有Enter键按下时,设备返回所有所按的按键给PC,读取键值流程结束。按键命令定义见表4-3。
表4-3 按键命令定义
偏移量 域 大小(字节) 值 描述
00h bKeyCmd 1 02h 读键值命令
01h abRandomData 31 31个字节的随机数
4.4 本章小结本文来自优'文*论-文.网
本章详细介绍了主机端(上位机)应用程序设计。详细分析了打开设备功能模块,设备枚举的流程,键盘功能模块与LCD功能模块。
上一页 [1] [2] [3] [4] [5] [6] [7] [8] 下一页
VC的HID人机接口设备设计+技术发展+需求分析 第7页下载如图片无法显示或论文不完整,请联系qq752018766