使用Delphi與Usb裝置進行通訊

2021-09-02 03:22:51 字數 1384 閱讀 4624

下面是訪問 usb 裝置的類單元檔案:

unit tusbutil_u;

inte***ce

uses windows, messages, sysutils, variants, classes,

stdctrls,dialogs,setupapi;

const

max_path= 260;//檔名最大長度

max_data_buffer= 1024;//緩衝區大小

type

//資料快取

tdatabuffer = record

databuffer:array[0..max_data_buffer] of byte;//快取資料

datasize :integer;//快取資料長度

end;

//串列埠操作助手

tusbutil= class(tobject)

public

function open(usbguid:string) :boolean;//開啟usb裝置

procedure close();//關閉usb裝置

procedure writebytes(bs:tdatabuffer);//向usb裝置傳送位元組陣列

function readbytes():tdatabuffer;//從usb裝置讀取資料

private

husbhandle :thandle;

//開啟乙個裝置

function openonedevice(hdvcinfo:hdevinfo; dvcinfodata:pspdeviceinte***cedata ; sdevnamebuf:pchar) :thandle;

//開啟指定的usb裝置

function openusbdevice(pguid :tguid; sdevnamebuf :pchar):thandle;

end;

implementation

procedure tusbutil.close;

begin

closehandle(husbhandle);

end;

function tusbutil.open(usbguid: string): boolean;

vardevicename: array[0..max_path] of char;

usb_guid: tguid;

begin

result := false;

usb_guid := stringtoguid('');

husbhandle := openusbdevice(usb_guid, devicename);

if (husbhandle = invalid_handle_value) then

begin

KVM中使用usb裝置

進來學習usb驅動,看到網上都在分析usb skeleton.c的驅動框架,就想對其除錯一下,看一下其函式呼叫流程。要想除錯usb skeleton,首先需要kvm能夠探測到usb裝置 其次,在kvm中編譯usb skeleton.c 最後,解除安裝預設的usb storage.ko,載入usb s...

KVM中使用usb裝置

進來學習usb驅動,看到網上都在分析usb skeleton.c的驅動框架,就想對其除錯一下,看一下其函式呼叫流程。要想除錯usb skeleton,首先需要kvm能夠探測到usb裝置 其次,在kvm中編譯usb skeleton.c 最後,解除安裝預設的usb storage.ko,載入usb s...

C 與USB裝置通訊

最近有乙個專案,也是我碩士大 要寫的東西,就是從兩個線陣相機上讀取資料 分析資料 做到利用線陣相機檢測接觸線 鐵路接觸網 幾何引數的功能。由於線陣相機是從武漢的乙個創業公司買的,實在是坑死個人了,就是為了接收個usb傳送過來的資料,費了我好大力氣,其中兩篇是講的libusb,是乙個開源的usb類庫叫...