UsbBulkInPipe不返回实际值

时间:2013-12-15 13:14:19

标签: c# usb windows-8.1

我正在使用UsbBulkInPipe从我的USB设备获取数据。当我读取数据时,长度是正确的,但值都是零。我如何阅读真实数据?

这是我尝试过的:

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);
}

1 个答案:

答案 0 :(得分:0)

目前我正在使用这种方法:

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

byte[] data = reader.ReadBuffer(len).ToArray();