下面是访问 USB 设备的类单元文件:
{
<wbr><wbr><wbr><wbr> Usb通讯操作助手<br><wbr><wbr><wbr><wbr> Date:<wbr><wbr><wbr><wbr> 2008-7-10<br><wbr><wbr><wbr><wbr> Version: 1.0<br><wbr><wbr><wbr><wbr> Author:<wbr><wbr> zlz (47953@163.com)<br><wbr><wbr> }<br> unit TUsbUtil_U;<br> interface<br> uses Windows, Messages, SysUtils, Variants, Classes,<br><wbr><wbr> StdCtrls,Dialogs,SetupApi;<br> const<br><wbr><wbr><wbr><wbr> MAX_PATH<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> = 260;<wbr><wbr><wbr><wbr> //文件名最大长度<br><wbr><wbr> MAX_DATA_BUFFER<wbr><wbr> = 1024;<wbr><wbr><wbr><wbr> //缓冲区大小<br> Type<br><wbr><wbr> //数据缓存<br><wbr><wbr> TDataBuffer = record<br><wbr><wbr><wbr><wbr><wbr><wbr> DataBuffer:array[0..MAX_DATA_BUFFER] of byte;<wbr><wbr> //缓存数据<br><wbr><wbr><wbr><wbr> DataSize :Integer;<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> //缓存数据长度<br><wbr><wbr> end;<br><wbr><wbr> //串口操作助手<br><wbr><wbr> TUsbUtil<wbr><wbr> = class(TObject)<br><wbr><wbr> public<br><wbr><wbr><wbr><wbr> function Open(usbguid:String) :boolean;<wbr><wbr><wbr><wbr><wbr><wbr> //打开USB设备<br><wbr><wbr><wbr><wbr> procedure Close();<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> //关闭USB设备<br><wbr><wbr><wbr><wbr> procedure WriteBytes(bs:TDataBuffer);<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> //向USB设备发送字节数组<br><wbr><wbr><wbr><wbr> function ReadBytes():TDataBuffer;<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> //从USB设备读取数据<br><wbr><wbr> private<br><wbr><wbr><wbr><wbr> hUsbHandle :<wbr><wbr> THandle;<br><wbr><wbr><wbr><wbr> //打开一个设备<br><wbr><wbr> function OpenOneDevice(hDvcInfo:HDEVINFO; DvcInfoData:PSPDeviceInterfaceData ; sDevNameBuf:pchar) :THandle;<br><wbr><wbr><wbr><wbr> //打开指定的USB设备<br><wbr><wbr><wbr><wbr> function OpenUsbDevice(pGuid :TGUID; sDevNameBuf :pchar):THandle;<br><wbr><wbr> end;<br> implementation<br> { TUsbUtil }<br> procedure TUsbUtil.Close;<br> begin<br><wbr><wbr><wbr><wbr> CloseHandle(hUsbHandle);<br> end;<br> function TUsbUtil.Open(usbguid: String): boolean;<br> var<br><wbr><wbr> DeviceName: array[0..MAX_PATH] of char;<br><wbr><wbr> USB_GUID<wbr><wbr> : TGUID;<br> begin<br><wbr><wbr><wbr><wbr><wbr><wbr> Result := false;<br><wbr><wbr><wbr><wbr><wbr><wbr> USB_GUID := StringToGuid('{' + usbguid + '}');<br><wbr><wbr><wbr><wbr><wbr><wbr> hUsbHandle := OpenUsbDevice(USB_GUID, DeviceName);<br><wbr><wbr><wbr><wbr><wbr><wbr> if (hUsbHandle = INVALID_HANDLE_VALUE) then<br><wbr><wbr><wbr><wbr><wbr><wbr> begin<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
使用Delphi与Usb设备进行通讯
最新推荐文章于 2023-06-07 17:51:17 发布