我正在使用libusb與筆式驅動器進行交互。我們要使用的功能 INT libusb_bulk_transfer(結構libusb_device_handle * dev_handle,無符號的字符終端, 無符號字符*數據,詮釋長度,INT *轉移,無符號整型超時)
但在這裏我們僅指定終點 所以我的問題是否它實際上可以將寫入文件(文本或圖像)讀取到筆式驅動器。或者僅僅是爲了理解? 請幫忙! 代碼::筆式驅動器中的libusb批量傳輸
r = libusb_bulk_transfer(dev_handle, (2 | LIBUSB_ENDPOINT_OUT), data, 4, &actual, 0);
//my device's out endpoint was 2, found with trial- the device had 2 endpoints: 2 and 129
if(r == 0 && actual == 4) //we wrote the 4 bytes successfully
cout<<"Writing Successful!"<<endl;
else
cout<<"Write Error"<<endl;
我感謝您的回答。但是,你提到「從接近開始就開始」,「從任意點開始」。怎麼做?因爲在代碼中,我只提到了終點。我今天寫了一些數據給筆式驅動器。當我試圖閱讀它時,它卡住了。我正在爲一個項目做這件事,我需要向我的老師展示數據已經去了哪裏?我只是開始這個,所以我很抱歉,如果我說的沒有任何意義。 –
在實際調用libusb_bulk_transfer()之前,您需要告訴設備您想要讀取/寫入的內容。您首先發送一條命令,告訴您將要執行讀取或寫入操作,然後等待回覆。 libusb有一些例子說明了這一點。您也可以查看USB海量存儲規範,瞭解如何在較低級別發送/接收命令:http://www.usb.org/developers/devclass_docs/usbmassbulk_10.pdf – whamma