Problem when read data from USB

"AnTrung.gmail " <[email protected]>
Newsgroups gmane.comp.lib.libusb.devel.windows
Message-ID <[email protected]>
Hello All!

  I am new to libusb and this community. I am using windows-backend and

created a small test app with below code. But I get the following error

Always , My error is "IoTimedOur. No more bytes" or
"Win32Error:Win32Error:No more bytes" when I plug other USB

 

            public static UsbDeviceFinder MyUsbFinder = new
UsbDeviceFinder(0x058F, 0x6387);

public static void Main(string[] args)

        {

            UsbRegDeviceList allDevices = UsbDevice.AllDevices;

            ErrorCode ec = ErrorCode.None;

 

            try

            {

                // Find and open the usb device.

                MyUsbDevice = UsbDevice.OpenUsbDevice(MyUsbFinder);

 

                // If the device is open and ready

                if (MyUsbDevice == null) throw new Exception("Device Not
Found.");

 

                // If this is a "whole" usb device (libusb-win32, linux
libusb-1.0)

                // it exposes an IUsbDevice interface. If not (WinUSB) the 

                // 'wholeUsbDevice' variable will be null indicating this is


                // an interface of a device; it does not require or support 

                // configuration and interface selection.

                IUsbDevice wholeUsbDevice = MyUsbDevice as IUsbDevice;

                if (!ReferenceEquals(wholeUsbDevice, null))

                {

                    // This is a "whole" USB device. Before it can be used, 

                    // the desired configuration and interface must be
selected.

 

                    // Select config #1

                    wholeUsbDevice.SetConfiguration(1);

 

                    // Claim interface #0.

                    wholeUsbDevice.ClaimInterface(0);

                }

 

                // open read endpoint 1.

                UsbEndpointReader reader =
MyUsbDevice.OpenEndpointReader(ReadEndpointID.Ep01);

 

 

                byte[] readBuffer = new byte[1024];

                while (ec == ErrorCode.None)

                {

                    int bytesRead;

 

                    // If the device hasn't sent data in the last 5 seconds,

                    // a timeout error (ec = IoTimedOut) will occur. 

                    ec = reader.Read(readBuffer, 5000, out bytesRead);

 

                    if (bytesRead == 0) throw new
Exception(string.Format("{0}:No more bytes!", ec));

                    Console.WriteLine("{0} bytes read", bytesRead);

 

                    // Write that output to the console.

                    Console.Write(Encoding.Default.GetString(readBuffer, 0,
bytesRead));

                }

 

                Console.WriteLine("\r\nDone!\r\n");

            }

            catch (Exception ex)

            {

                Console.WriteLine();

                Console.WriteLine((ec != ErrorCode.None ? ec + ":" :
String.Empty) + ex.Message);

            }

            finally

            {

                if (MyUsbDevice != null)

                {

                    if (MyUsbDevice.IsOpen)

                    {

                        // If this is a "whole" usb device (libusb-win32,
linux libusb-1.0)

                        // it exposes an IUsbDevice interface. If not
(WinUSB) the 

                        // 'wholeUsbDevice' variable will be null indicating
this is 

                        // an interface of a device; it does not require or
support 

                        // configuration and interface selection.

                        IUsbDevice wholeUsbDevice = MyUsbDevice as
IUsbDevice;

                        if (!ReferenceEquals(wholeUsbDevice, null))

                        {

                            // Release interface #0.

                            wholeUsbDevice.ReleaseInterface(0);

                        }

 

                        MyUsbDevice.Close();

                    }

                    MyUsbDevice = null;

 

                    // Free usb resources

                    UsbDevice.Exit();

 

                }

 

                // Wait for user input..

                Console.ReadKey();

            }

        }

Can someone please tell me what is that I am doing wrong here.
Thanks,
AnTrung139.

 

 

----------------------------------------------------------------------------
--------------------------------------------

------------------------------------------------------------------------------
Infragistics Professional
Build stunning WinForms apps today!
Reboot your WinForms applications with our WinForms controls. 
Build a bridge from your legacy apps to the future.
http://pubads.g.doubleclick.net/gampad/clk?id=153845071&iu=/4140/ostg.clktrk

_______________________________________________
Libusb-win32-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libusb-win32-devel
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.