2013-12-15 2 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

Ваш код выглядит так, чтобы он просто игнорировал все ошибки. Вызывается ли какое-либо исключение? Что должен сделать блок finally? Кроме того, вы не показываете часть кода, который фактически печатает значения байтов, и может быть ошибка в этой части. Как насчет создания SSCCE? –

ответ

0

На данный момент я использую этот метод:

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

byte[] data = reader.ReadBuffer(len).ToArray(); 
Смежные вопросы