2013-12-15 71 views
1

我使用UsbBulkInPipe從我的USB設備獲取數據。當我讀取數據的長度是正確的,但值都是零。我如何閱讀真實的數據?UsbBulkInPipe不返回實際值

這是我已經試過:

UInt32 bytesRead = 0; 
UsbBulkInPipe bulkIn = device.DefaultInterface.BulkInPipes[0]; 

var stream = bulkIn.InputStream; 
DataReader reader = new DataReader(stream); 

try 
{ 
    bytesRead = await reader.LoadAsync(bulkIn.EndpointDescriptor.MaxPacketSize); 
} 
catch (Exception exception) 
{ 
    //ShowStatus(exception.Message.ToString()); 
} 
finally 
{ 
    byte[] value = new byte[bytesRead]; 
    reader.ReadBytes(value); 
} 
+0

eurgh,我記得有這個問題。有時間挖掘我的WinUSB代碼 –

+0

您的代碼看起來像是設計爲忽略所有錯誤。是否有任何異常被拋出?最後的塊應該做什麼?此外,您不顯示實際打印字節值的代碼部分,並且該部分可能存在錯誤。如何製作SSCCE? –

回答

0

目前我使用這種方法:

var t = reader.LoadAsync(buf.MaxPacketSize).AsTask(cancellationTokenSourceBulkIn.Token);  
uint len = t.Result; 

byte[] data = reader.ReadBuffer(len).ToArray(); 
相關問題