[Mono-list] LibUsbDotNet Unhandled Exception

Petit Eric surfzoid at gmail.com
Thu Jul 16 16:22:21 EDT 2009


I'm not complety sur, but LibUsbDotnet wrap only win32 usb, try to use
ICSharpUsbLib

2009/7/16 Napcaia <edernavarro at napcaia.com>:
>
> Hi, I'm New with mono and C#, and I want to stablish the communication
> between ubuntu an the pic (18f2550) via Usb  using LibUsbDotNet. but when I
> use the example code in the documentation I have the following message:
>
>
> "
> Finding your device..
>
> Unhandled Exception: System.ArgumentException: An empty file name is not
> valid.
>  at System.IO.FileSystemInfo.CheckPath (System.String path) [0x00000]
>  at System.IO.DirectoryInfo..ctor (System.String path, Boolean
> simpleOriginalPath) [0x00000]
>  at System.IO.DirectoryInfo..ctor (System.String path) [0x00000]
>  at (wrapper remoting-invoke-with-check) System.IO.DirectoryInfo:.ctor
> (string)
>  at LibUsbDotNet.UsbGlobals.get_HasWinUsbDriver () [0x00000]
>  at LibUsbDotNet.UsbGlobals.get_AllDevices () [0x00000]
>  at Examples.GettingStarted.Main (System.String[] args) [0x0000a] in
> /home/eder/Projects/Prueba/Prueba/Main.cs:23
> "
>
> This is the sample code from the LibUsbDotNet webpage:
>
> using System;
> using Gtk;
> using LibUsbDotNet;
> using LibUsbDotNet.Info;
> using LibUsbDotNet.Main;
>
> namespace Examples
> {
>    internal class GettingStarted
>    {
>        public static UsbDevice MyUsbDevice;
>
>        #region SET YOUR USB Vendor and Product ID!
>
>        public static UsbDeviceFinder MyUsbFinder = new
> UsbDeviceFinder(0x04d8,0x0011);
>
>        #endregion
>
>        public static void Main(string[] args)
>        {
>            // Check for a valid & connected usb device by vendor and
> product id.
>            Console.WriteLine("Finding your device..");
>            UsbRegistry myUsbRegistry =
> UsbGlobals.AllDevices.Find(MyUsbFinder);
>
>            if (ReferenceEquals(myUsbRegistry, null))
>            {
>                // The device is not connected or cannot be accessed by
> libusbdotnet
>                Console.WriteLine("Device not connected!");
>                ShowLastUsbError();
>                return;
>            }
>
>            // Display the usb device description from the registry.
>            // This is the description that was set by the install inf.
>            Console.WriteLine("Found device {0}",
> myUsbRegistry[SPDRP.DeviceDesc]);
>
>            // Display the usb devices DeviceInterfaceGuids.
>            // This set by the install inf.
>
>            Guid[] deviceInterfaceGuids =
> myUsbRegistry.DeviceInterfaceGuids;
>            foreach (Guid deviceInterfaceGuid in deviceInterfaceGuids)
>                Console.WriteLine("Device Interface Guid: {0}",
> deviceInterfaceGuid);
>
>            // Open this usb device.
>            if (!myUsbRegistry.Open(out MyUsbDevice))
>            {
>                // If a UsbRegistry class is obtained this should never
> happen with libusb-win32.
>                // It will happen with WinUsb only of the device is being
> used by another process.
>                Console.WriteLine("Failed opening device!");
>                ShowLastUsbError();
>                return;
>            }
>
>            // Get the REAL usb DeviceDescriptor information from the usb
> device.
>            // Up until this point, we have just been querying the windows
> registry,
>            // nothing had actually been sent or received from the usb
> device.
>            UsbDeviceInfo myDeviceInfo = MyUsbDevice.Info;
>
>            // Dump the UsbDeviceDesciptor to console output.
>            Console.WriteLine(myDeviceInfo.Descriptor.ToString());
>
>            // Display REAL Manufacturer String (if one exists)
>            if (myDeviceInfo.Descriptor.ManufacturerStringIndex != 0)
>                Console.WriteLine("Manufacturer: {0}",
> myDeviceInfo.ManufacturerString);
>
>            // Display REAL Product String (if one exists)
>            if (myDeviceInfo.Descriptor.ProductStringIndex != 0)
>                Console.WriteLine("Product: {0}",
> myDeviceInfo.ProductString);
>
>            // Display REAL Serial Number String (if one exists)
>            if (myDeviceInfo.Descriptor.SerialStringIndex != 0)
>                Console.WriteLine("Serial Number: {0}",
> myDeviceInfo.SerialString);
>
>            // Close the device.
>            // When a UsbDevice class is closed, it is disposed and all
> resources
>            // are freed. It cannot be re-open; you must create a new
> instance.
>            MyUsbDevice.Close();
>
>            // Wait for user input..
>            Console.ReadKey();
>        }
>
>        private static void ShowLastUsbError()
>        {
>            Console.WriteLine("Error Number: {0}",
> UsbGlobals.LastErrorNumber);
>            Console.WriteLine(UsbGlobals.LastErrorString);
>
>            // Wait for user input..
>            Console.ReadKey();
>        }
>    }
> }
>
> I hope you can help me
>
> Thanks.
> --
> View this message in context: http://www.nabble.com/LibUsbDotNet-Unhandled-Exception-tp24510436p24510436.html
> Sent from the Mono - General mailing list archive at Nabble.com.
>
> _______________________________________________
> Mono-list maillist  -  Mono-list at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-list
>



-- 

Cordially.

Small Eric Quotations of the days:
---------------------------------------------------------------------------
If one day one reproaches you that your work is not a work of
professional, say you that:
Amateurs built the arch of Noah, and professionals the Titanic.
---------------------------------------------------------------------------

Few people are done for independence, it is the privilege of the powerful ones.
---------------------------------------------------------------------------

No key was wounded during the drafting of this message.


More information about the Mono-list mailing list