public void Open()
{
_device = UsbDevice.OpenUsbDevice(new UsbDeviceFinder(_vendorId, _productId));
if (_device != null)
{
IUsbDevice whole = _device as IUsbDevice;
if (!ReferenceEquals(whole, null))
{
whole.SetConfiguration(1);
whole.ClaimInterface(1);
}
//Set up the endpoints
var hci = _device.OpenEndpointReader(ReadEndpointID.Ep01);
_reader = _device.OpenEndpointReader(ReadEndpointID.Ep02);
_writer = _device.OpenEndpointWriter(WriteEndpointID.Ep02);
_isoReader = _device.OpenEndpointReader(ReadEndpointID.Ep03);
_isoWriter = _device.OpenEndpointWriter(WriteEndpointID.Ep03);
//Set up our read callback(s)
hci.DataReceived += hci_DataReceived;
hci.DataReceivedEnabled = true;
_reader.DataReceived += reader_DataReceived;
_reader.DataReceivedEnabled = true;
_isoReader.DataReceived += _isoReader_DataReceived;
_isoReader.DataReceivedEnabled = true;
//Reset the device
Reset();
}
}