usb: Communicate with USB devices
This library enables you to communicate with USB devices from
userspace. It is implemented as a high-level wrapper around
bindings-libusb
which is a low-level binding to the C library:
libusb-1.*
.
The USB transfer functions in this library have a simple synchronous
interface (they block) but are implemented using the libusb
asynchronous interface. They integrate with the GHC event manager
making them efficient (no busy-loops) and interruptible (throwing an
exception to the thread executing a transfer immediately cancels the
transfer).
If the GHC event manager is not available (because you're either not
using GHC or because you're on Windows) the library degrades
gracefully to the libusb
synchronous implementation.
This documentation assumes knowledge of how to operate USB devices from a software standpoint (descriptors, configurations, interfaces, endpoints, control/bulk/interrupt/isochronous transfers, etc). Full information can be found in the USB 2.0 Specification.
For an example how to use this library see the usb-example
package at:
https://github.com/basvandijk/usb-example
or the ls-usb
package at:
http://hackage.haskell.org/package/ls-usb
Also see the usb-safe
package which wraps this package and
provides some strong safety guarantees for working with USB
devices:
http://hackage.haskell.org/package/usb-safe
Finally have a look at the usb-iteratee
package which
provides iteratee
enumerators for enumerating bulk, interrupt
and isochronous endpoints:
http://hackage.haskell.org/package/usb-iteratee
Besides this API documentation the following sources might be interesting:
The libusb 1.0 documentation at: http://libusb.sourceforge.net/api-1.0/
The USB 2.0 specification at: http://www.usb.org/developers/docs/
The
bindings-libusb
documentation at: http://hackage.haskell.org/package/bindings-libusb"USB in a NutShell" at: http://www.beyondlogic.org/usbnutshell/usb1.htm
[Skip to Readme]
Modules
[Index]
Downloads
- usb-1.1.0.1.tar.gz [browse] (Cabal source package)
- Package description (as included in the package)
Maintainer's Corner
For package maintainers and hackage trustees
Candidates
- No Candidates
Versions [RSS] | 0.1, 0.1.0.1, 0.2, 0.2.0.1, 0.3, 0.3.0.1, 0.3.1, 0.4, 0.5, 0.5.0.1, 0.6, 0.6.0.1, 0.6.0.2, 0.6.0.3, 0.6.0.4, 0.6.0.5, 0.6.0.6, 0.6.0.7, 0.6.0.8, 0.7, 0.8, 1.0, 1.1, 1.1.0.1, 1.1.0.2, 1.1.0.3, 1.1.0.4, 1.2, 1.2.0.1, 1.3.0.0, 1.3.0.1, 1.3.0.2, 1.3.0.3, 1.3.0.4, 1.3.0.5, 1.3.0.6 |
---|---|
Change log | NEWS |
Dependencies | base (>=4 && <4.6), base-unicode-symbols (>=0.1.1 && <0.3), bindings-libusb (>=1.4.4 && <1.5), bytestring (>=0.9 && <0.10), containers (>=0.1 && <0.5), text (>=0.5 && <0.12) [details] |
License | BSD-3-Clause |
Copyright | 2009–2012 Bas van Dijk <v.dijk.bas@gmail.com> |
Author | Bas van Dijk <v.dijk.bas@gmail.com> |
Maintainer | Bas van Dijk <v.dijk.bas@gmail.com> |
Category | System, Hardware |
Home page | http://basvandijk.github.com/usb |
Bug tracker | https://github.com/basvandijk/usb/issues |
Source repo | head: git clone git://github.com/basvandijk/usb.git |
Uploaded | by BasVanDijk at 2012-04-12T21:21:14Z |
Distributions | |
Reverse Dependencies | 8 direct, 1 indirect [details] |
Downloads | 30418 total (1 in the last 30 days) |
Rating | 2.0 (votes: 1) [estimated by Bayesian average] |
Your Rating | |
Status | Docs uploaded by user Build status unknown [no reports yet] |