2016年5月22日
  
1.本工程为USB通信测试工程实例,从窗体界面来看分为三个部分
(1)系统USB设备部分
   此部分用以显示系统中全部的可操作USB设备信息及其数量。
(2)USB设备选择部分
   此部分用以选择同哪个USB设备进行通信，如需切换通信对象，在下拉列表中选中即可；
   此时会在下面的框中显示选中的USB设备的详细信息。
(3)操作区部分
   此部分用以输入需要发送的文本数据或接收返回的数据；输入完成后点击“发送”按钮
   即可；点击“接收”按钮则会从USB设备读取信息并显示在接收框内；点击“清空”则会
   将接收框内容清空。
2.工程结构
   此工程分为两部分，与界面有关的都放在Form文件夹中,与界面无关的都放在Functi-
   on文件夹中.与界面有关的都是通过激发窗体上的控件来执行操作的.与界面无关的是
   封装好的函数,只留出一个接口,供用户调用.本工程中与界面无关的函数有三个:USB设备
   初始化、USB发送数据、USB接收数据，当你用USB进行通信时可以
   直接调用这些函数,
   不必去了解其内部的机制。
3.注意
(1)此工程用到了委托的,委托Delegate是VB.net与C#语言一项非常重要的特性,它相当于
   C或C++语言中的指针并且是类型安全的.它主要应用于回调函数和事件处理,也用于异
   步处理中,它是一种参考类型,由基类System.Delegate派生。
(2)在界面上放置了一个状态条,显示执行过程,当运行出现错误时,便于调试。
(3)每行代码不超过78列,便于打印代码。
(4)DeviceNotifier事件是在USB设备有变化的情况下触发的，包括插入和移除设备两种。
(5)对象OnRxEndPointData事件在产生接受中断的时候调用。
(5)本程序中并没有用到接收数据函数，程序的数据接收是使用中断完成的，具体过程
为PC程序发送0xAA指令至USB设备，USB设备收到后将数据送至发送缓冲区，主机不停
轮询USB设备，发现缓冲区不为空则要求USB设备将数据发送，从而PC程序收到数据，
使用中断接收并显示。
(6)关于本工程处理USB数据的流程及修改指南请阅读本文件夹下的readme.docx文件。
