What's new in LibUsbDotNet 2.2.8
Feb 8, 2011
- Fixed issue with DataReceived event.
- When disabling the DataRecevied event, the property would return before the action had been fully carried out.
- Fixed memory leak in device list function.
- An allocated GCHandle was not freed in the device listing functions resulting in a application memory leak.
New in LibUsbDotNet 2.2.7 (Aug 25, 2010)
- Fixed libusb-1.0 support.
- This was broken when ISO endpoint support was added.
- HasLibUsbDriver()()() property
- This property will always return true.
- Fixed 32bit applications not running on 64bit operating systems. (Windows)
- If LibUsbDotNet is compiled as Win32 instead of Any CPU it would not work on 64bit operating systems with libusb-win32.
- Updated InfWizard with embedded libusb-win32 v1.2.1 driver resource package.
- Updated default UsbEndpointBase.MaxReadWrite changed back to 65536. This is the limit at which libusbdotnet begins splitting transfers.
New in LibUsbDotNet 2.2.4 (Mar 16, 2010)
- Fixed Bug ID: 2969931 - Linux xbuild issue.
- The xbuild utility failed to build the LibUsbDotNet.sln. This was caused by an invalid resource in the InfWizard application and a casting issue for function that take a Predicate as a parameter.
- Fixed Bug ID: 2956665 - UsbDeviceFinder fails to find VID and PIDs > 0x7FFF.
- USB devices that have VID or PIDs greater than 0x7FFF are not found by the UsbDeviceFinder class.
- Added UsbDevice.Exit()()() method.
- This was added to support the Libusb-1.0 windows backend port. If the usb device is using Libusb-1.0, this method must be called before the application exits.
- Added Asynchronous transfer functions to UsbEndpointBase.
- For more details see the NewAsyncTransfer()()() and SubmitAsyncTransfer()()() functions in the UsbEndpointBase class.
- Added Low-level .NET MonoLibUsb API for Libusb-1.0.
- The low-level MonoLibUsb API (Libusb-1.0) is supported on many platforms including windows via the Libusb-1.0 windows-backend port.
- Unlike the LibUsbDotNet API, MonoLibUsb has full support for all Libusb-1.0 functions.
- Added UsbRegistry.ForceSetupApi option.
- This option forces LibUsbDotNet to gather extra device information via the windows setup api for devices using drivers that do not support the setupapi.
- Added UsbDevice.ForceLibUsbWinBack option.
- This option forces LibUsbDotNet to use only the Libusb-1.0 windows backend driver.
New in LibUsbDotNet 2.2.3 (Mar 16, 2010)
- Removed - GetConfiguration call in UsbDevice.Open method.
- The UsbDevice.Open()()() method requests the usb devices current configuration upon opening. This causes problems in some situations.
- Added IUsbDevice.ResetDevice()()() method.
- Fixed Bug ID: 2937372 - Read Failed:WaitHandle.WaitOne missing member exception.
- If .NET 3.5 is not installed, a System.Threading.WaitHandle.WaitOne missing member exception is thrown. LibUsbDotNet should not require the 3.5 runtime. It should work with 2.0 and greater.
- Fixed Bug ID: 2935627 - Stack overflow when reading an ep that does not exists.
- If an attempt is made to open and transmit to a non-existent endpoint a stack overflow occurs. Expected behavior is to throw an exception.
- Fixed Bug ID: 2935456 - UsbDevice.KernelType property not set correcty.
- [Windows Only] If the UsbDevice.KernelType is accessed when no device are connected it does not update properly when a device is connected.
- v2.2.2 (01/19/2010)
New in LibUsbDotNet 2.2.2 (Mar 16, 2010)
- Fixed Bug ID: 2934547 - DeviceNotifier not working.
- On Linux like OSes the DeviceNotifier never fires events. On Windows, a DllNotFound exception is thrown.
- Fixed Bug ID: 2933530 - Composite WinUSB not found.
- WinUSB interfaces that are part of a composite device do not appear in the WinUsbRegistry.DeviceList.
New in LibUsbDotNet 2.2.1 (Mar 16, 2010)
- Fixed Bug ID: 2930836 - [OSX PPC] GetDescriptor request fails.
- On big-endian platforms, the descriptor type and index bytes are reversed.
- Fixed Bug ID: 2927179 - Wrong versioning. LibUsbDotNet 2.2.0 all AssemblyInfo.cs contains [assembly:AssemblyVersion("2.1.0.13")]
- Updated Benchmark application: Removed all calls to Control.Invoke.
- The benchmark application now uses a timer control to periodically update the display instead of "Invoking" an update everytime data is transferred. This provides a more accurate benchmark reading as well as a work-a-round for Mono .NET runtimes on platforms that do not properly implement the Control.Invoke method.
- Removed LINUX compiler option.
- The LINUX compiler option is no longer used. LibUsbDotNet (v2.2.1 and above) is fully platform independent.
New in LibUsbDotNet 2.2.0 (Mar 16, 2010)
- Added Linux support.
- LibUsbDotNet supports linux via the linux libusb v1.x driver.
- Updated UsbDevice.OpenEndpointReader and UsbDevice.OpenEndpointWriter members to first lookup the endpoint descriptor for the current configuration.
- If an attempt is made to open an endpoint on a unconfigured device (GetConfiguration = 0) an exception is thrown.
- If an attempt is made to open a non-existent or invalid endpoint an exception is thrown.
- Added endpoint descriptor information to UsbEndpointBase class.
- A New property, 'EndpointInfo' is available from the UsbEndpointBase class.
- Removed Depricated UsbGlobals class.
- The UsbGlobals class has been rendered obsolete and will be removed in future release. Update your code you use the UsbDevice class instead.
New in LibUsbDotNet 2.1.0 (Mar 16, 2010)
- Fixed Bug ID: 2886021 - Problem with several instances of the same device (WinUsb)
- When connecting 2 (or more) identical USB devices, the library has problems opening each device instance.
- Fixed Bug ID: 2873320 Bug ID: 2874172 - Error getting Key "SymbolicName"
- Some devices having no SymbolicName. In this case, the main application or .NET framework crashes.
- Fixed Bug ID: 2853283 - Infwizard exception thrown on load
- The InfWizard throws an exception when loaded.
- Added support for the genuine libusb-win32 kernel driver.
- If the LibUsbDotNet native kernel driver is not detected it falls back to the original libusb-win32 kernel driver. Using the native driver is recommended.
- Added static open method to the LibUsbDevice class.
- Opens a libUsb device from a user suppiled device filename.
- public static bool Open(string deviceFilename, out LibUsbDevice usbDevice)
- Added static open method to the WinUsbDevice class.
- Opens a WinUSB device from a user suppiled device path (symbolic link).
- public static bool Open(string devicePath, out WinUsbDevice usbDevice)
- Removed DeviceInterfaceGuid property from WinUsbDevice class.
- A DeviceInterfaceGuid is not required for a WinUsbDevice.
- Removed UsbRegistryInfo property from UsbDevice classes.
- A UsbRegistry instance is not required for the UsbDevice classes.
- Removed device and endpoint level locking features.
- The device and endpoint level locking features had specfic requirements pertaining to the usb symbolic name that could not always be met.
New in LibUsbDotNet 2.0.3 (Mar 16, 2010)
- Fixed Bug ID: 2845680 - LibUsbDotNet-libusb-win32 v2.1.12.1 GET_INTERFACE request fails in XP SP3
- The GET_INTERFACE request in the libusb kernel driver fails on Windows XP SP3 but works under windows Vista.
- Fixed Bug ID: 2845679 - InfWizard Spawn driver function problems.
- The InfWizard spawn driver function fails to locate WinUSB support drivers from the DDK install directory.
- Added UsbException on non-existent endpoint.
- If an an attempt is made to open an endpoint that does not exists, a UsbException is thrown.
- Updated LibUsbDotNet-libusb-win32 kernel driver.
- Applied LibUsbDotNet kernel driver patches to libusb-win32 v0.1.12.2. LibUsbDotNet-libusb-win32 v2.1.12.2 kernel created.
- Updated Test_Bulk application.
- Removed all references to benchmark device. The Test_Bulk apllication is more universal and easier to tailor to specific devices.
- Updated documentation.
New in LibUsbDotNet 2.0.2 (Mar 16, 2010)
- Fixed Bug ID: 2833695 - USB rev. code treated as hex instead of bcd.
- The USBSymbolicName class is converting the bcd revision number to a hex number.
- Fixed Bug ID: 2833701 - InfWizard never populates the "Driver Information" property.
- On the final wizard page of the InfWizard the "Driver Information" property under the "Info" category is never populated.
- Added InfWizard remove device options form.
- Added InfWizard disclaimers.
- Added Benchmark PIC device firmware for MCP 2.5 USB stack.
- Updated documentation.
New in LibUsbDotNet 2.0.1 (Mar 16, 2010)
- Fixed Bug ID: 2816121 - UsbGlobals.OpenDevice(UsbDeviceFinder) Null reference exception
- Calling UsbGlobals.OpenDevice(UsbDeviceFinder) generates an exception if the device is not found.
- Fixed Bug ID: 2818621 - DeviceNotifier Invalid Marshal fieldName Exception
- Field passed in is not a marshaled member of the type 'LibUsbDotNet.DeviceNotify.Internal.DevBroadcastPort'. Parameter name: fieldName.
- Added 3 example projects.
- Updated documentation.
New in LibUsbDotNet 2.0.0 (Mar 16, 2010)
- Added Support for Microsofts generic user-mode usb driver, WinUsb.
- Added Added kernel level support for libusb-win32.
- Added Added a new and improved InfWizard.
- Added Added advanced USB locking strategies for process/thread level usb device sharing.
- Added Added Additional read/write functions added to the endpoint reader/writer classes.
- Updated Updated documentation with SandCastle (SHFB). Documentation is now available in html and Microsoft Help .chm format.
- Updated Updated LibUsbDotNet type and member names; they now adhere to strict naming conventions.
- Added Added additional members and types for more easily locating and opening usb devices by:
- VendorID
- ProductID
- Revision Code
- Serial Number
- Device Interface GUID
New in LibUsbDotNet 1.0.1 (Mar 16, 2010)
- Updated Ported to C#2.0! Many API changes. See documentation.
- Added Added Test_DeviceNotify sample project.
- Fixed Fixed mising data issue with the DataReceived event.
- Updated Rebuilt libusb core components with WINDDK 2003 (SP1).
- Added Added Itanium 64bit support.
- Fixed Fixed x64 installation error.
New in LibUsbDotNet 0.1.4 (Mar 16, 2010)
- Removed Debug runtimes removed from the distributions to avoid confusion.
- Added New Class Added. The DeviceNotify class is used for receiving device insertion/removal events. See documentation for full details.
New in LibUsbDotNet 0.1.3 (Mar 16, 2010)
- Added Added lock routines to internal read/write functions to increase multi-threading stability.
- Removed Removed dependencies on msvcmrt.lib.
- Updated Project defaults changed to compiled with /clr:pure syntax.
- Added Added 64bit support.
- Fixed Fixed function ClibUsb.Open(InfoDevice). It will now open different devices with the same vendor and product id.
- Added Added remove functions to the CLibUsb.ActiveEndPoints property (CEndPonts class)