下面是訪問 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類庫叫...