毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 论文 >> 正文

VC的HID人机接口设备设计+技术发展+需求分析 第7页

更新时间:2010-9-10:  来源:毕业论文
VC的HID人机接口设备设计+技术发展+需求分析 第7页
    DWORD dwShareMode,
    LPSECURITY_ATTRIBUTES lpSecurityAttributes,
    DWORD dwCreationDisposition,
    DWORD dwFlagsAndAttributes,
    HANDLE hTemplateFile
    );
(6) 获取USB 设备的有关属性。
调用HidD_GetAttributes获取设备的零售商ID、产品ID 及产品的版本号等。如果获取成功,则将属性中的VID、PID以及设备版本号与我们的目标设备进行比较,如果一致,则是目标设备,则使用读写方式打开目标设备。毕业论文http://www.751com.cn
BOOLEAN __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.751com.cn
键盘功能模块,可启动开发板的键盘功能,并读取键值。需将报告缓冲区第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
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©751com.cn 辣文论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。