usb 2.0.0-alpha.1 → 2.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (262) hide show
  1. package/.gitattributes +1 -0
  2. package/.gitmodules +1 -1
  3. package/CHANGELOG.md +91 -0
  4. package/README.md +570 -0
  5. package/binding.gyp +2 -2
  6. package/dist/index.d.ts +16 -5
  7. package/dist/index.js +135 -5
  8. package/dist/index.js.map +1 -1
  9. package/dist/usb/bindings.d.ts +13 -0
  10. package/dist/usb/bindings.js +2 -1
  11. package/dist/usb/bindings.js.map +1 -1
  12. package/dist/usb/index.d.ts +0 -2
  13. package/dist/usb/index.js +75 -112
  14. package/dist/usb/index.js.map +1 -1
  15. package/dist/usb/interface.js.map +1 -1
  16. package/dist/webusb/index.d.ts +28 -19
  17. package/dist/webusb/index.js +152 -66
  18. package/dist/webusb/index.js.map +1 -1
  19. package/dist/webusb/webusb-device.d.ts +1 -1
  20. package/dist/webusb/webusb-device.js +15 -6
  21. package/dist/webusb/webusb-device.js.map +1 -1
  22. package/libusb/.private/pre-commit.sh +7 -1
  23. package/libusb/.travis.yml +49 -0
  24. package/libusb/AUTHORS +44 -3
  25. package/libusb/Brewfile +4 -0
  26. package/libusb/ChangeLog +74 -2
  27. package/libusb/README.md +32 -0
  28. package/libusb/TODO +1 -1
  29. package/libusb/Xcode/common.xcconfig +12 -0
  30. package/libusb/Xcode/config.h +0 -3
  31. package/libusb/Xcode/libusb.xcodeproj/project.pbxproj +959 -1
  32. package/libusb/android/README +4 -2
  33. package/libusb/android/config.h +0 -6
  34. package/libusb/appveyor.yml +41 -0
  35. package/libusb/appveyor_cygwin.bat +11 -0
  36. package/libusb/appveyor_minGW.bat +19 -0
  37. package/libusb/autogen.sh +1 -1
  38. package/libusb/bootstrap.sh +3 -16
  39. package/libusb/configure.ac +108 -80
  40. package/libusb/doc/doxygen.cfg.in +1785 -739
  41. package/libusb/examples/Makefile.am +1 -1
  42. package/libusb/examples/dpfp.c +3 -1
  43. package/libusb/examples/dpfp_threaded.c +23 -10
  44. package/libusb/examples/ezusb.c +3 -3
  45. package/libusb/examples/ezusb.h +2 -2
  46. package/libusb/examples/fxload.c +31 -9
  47. package/libusb/examples/hotplugtest.c +35 -7
  48. package/libusb/examples/listdevs.c +3 -1
  49. package/libusb/examples/sam3u_benchmark.c +3 -3
  50. package/libusb/examples/testlibusb.c +277 -0
  51. package/libusb/examples/xusb.c +40 -34
  52. package/libusb/libusb/Makefile.am +49 -23
  53. package/libusb/libusb/core.c +855 -457
  54. package/libusb/libusb/descriptor.c +72 -78
  55. package/libusb/libusb/hotplug.c +122 -76
  56. package/libusb/libusb/hotplug.h +42 -25
  57. package/libusb/libusb/io.c +625 -390
  58. package/libusb/libusb/libusb-1.0.def +12 -0
  59. package/libusb/libusb/libusb.h +218 -150
  60. package/libusb/libusb/libusbi.h +346 -176
  61. package/libusb/libusb/os/darwin_usb.c +604 -319
  62. package/libusb/libusb/os/darwin_usb.h +61 -20
  63. package/libusb/libusb/os/haiku_pollfs.cpp +367 -0
  64. package/libusb/libusb/os/haiku_usb.h +113 -0
  65. package/libusb/libusb/os/haiku_usb_backend.cpp +533 -0
  66. package/libusb/libusb/os/haiku_usb_raw.cpp +267 -0
  67. package/libusb/libusb/os/haiku_usb_raw.h +188 -0
  68. package/libusb/libusb/os/linux_netlink.c +186 -146
  69. package/libusb/libusb/os/linux_udev.c +36 -14
  70. package/libusb/libusb/os/linux_usbfs.c +426 -225
  71. package/libusb/libusb/os/linux_usbfs.h +5 -3
  72. package/libusb/libusb/os/netbsd_usb.c +21 -77
  73. package/libusb/libusb/os/openbsd_usb.c +32 -115
  74. package/libusb/libusb/os/poll_posix.c +38 -5
  75. package/libusb/libusb/os/poll_posix.h +3 -0
  76. package/libusb/libusb/os/poll_windows.c +277 -626
  77. package/libusb/libusb/os/poll_windows.h +11 -44
  78. package/libusb/libusb/os/sunos_usb.c +1695 -0
  79. package/libusb/libusb/os/sunos_usb.h +80 -0
  80. package/libusb/libusb/os/threads_posix.c +24 -26
  81. package/libusb/libusb/os/threads_posix.h +73 -21
  82. package/libusb/libusb/os/threads_windows.c +71 -157
  83. package/libusb/libusb/os/threads_windows.h +68 -44
  84. package/libusb/libusb/os/wince_usb.c +276 -420
  85. package/libusb/libusb/os/wince_usb.h +23 -28
  86. package/libusb/libusb/os/windows_common.h +78 -58
  87. package/libusb/libusb/os/windows_nt_common.c +1010 -0
  88. package/libusb/libusb/os/windows_nt_common.h +110 -0
  89. package/libusb/libusb/os/windows_nt_shared_types.h +147 -0
  90. package/libusb/libusb/os/windows_usbdk.c +830 -0
  91. package/libusb/libusb/os/windows_usbdk.h +103 -0
  92. package/libusb/libusb/os/windows_winusb.c +4391 -0
  93. package/libusb/libusb/os/windows_winusb.h +783 -0
  94. package/libusb/libusb/strerror.c +41 -7
  95. package/libusb/libusb/sync.c +41 -13
  96. package/libusb/libusb/version.h +1 -1
  97. package/libusb/libusb/version_nano.h +1 -1
  98. package/libusb/libusb-1.0.pc.in +1 -1
  99. package/libusb/msvc/appveyor.bat +27 -0
  100. package/libusb/msvc/config.h +5 -4
  101. package/libusb/msvc/ddk_build.cmd +87 -43
  102. package/libusb/msvc/fxload_2010.vcxproj +24 -104
  103. package/libusb/msvc/fxload_2012.vcxproj +24 -107
  104. package/libusb/msvc/fxload_2013.vcxproj +24 -107
  105. package/libusb/msvc/fxload_2015.vcxproj +91 -0
  106. package/libusb/msvc/fxload_2017.vcxproj +114 -0
  107. package/libusb/msvc/fxload_sources +1 -1
  108. package/libusb/msvc/getopt_2010.vcxproj +16 -75
  109. package/libusb/msvc/getopt_2012.vcxproj +16 -79
  110. package/libusb/msvc/getopt_2013.vcxproj +16 -79
  111. package/libusb/msvc/getopt_2015.vcxproj +73 -0
  112. package/libusb/msvc/getopt_2017.vcxproj +98 -0
  113. package/libusb/msvc/getopt_sources +6 -2
  114. package/libusb/msvc/hotplugtest_2010.vcxproj +18 -99
  115. package/libusb/msvc/hotplugtest_2012.vcxproj +18 -102
  116. package/libusb/msvc/hotplugtest_2013.vcxproj +18 -102
  117. package/libusb/msvc/hotplugtest_2015.vcxproj +83 -0
  118. package/libusb/msvc/hotplugtest_2017.vcxproj +106 -0
  119. package/libusb/msvc/hotplugtest_sources +1 -1
  120. package/libusb/msvc/libusb_2005.sln +20 -20
  121. package/libusb/msvc/libusb_2010.sln +57 -46
  122. package/libusb/msvc/libusb_2012.sln +57 -46
  123. package/libusb/msvc/libusb_2013.sln +57 -50
  124. package/libusb/msvc/libusb_2015.sln +59 -52
  125. package/libusb/msvc/libusb_2017.sln +186 -0
  126. package/libusb/msvc/libusb_dll.dsp +2 -2
  127. package/libusb/msvc/libusb_dll_2005.vcproj +30 -2
  128. package/libusb/msvc/libusb_dll_2010.vcxproj +26 -90
  129. package/libusb/msvc/libusb_dll_2012.vcxproj +28 -96
  130. package/libusb/msvc/libusb_dll_2013.vcxproj +28 -96
  131. package/libusb/msvc/libusb_dll_2015.vcxproj +107 -0
  132. package/libusb/msvc/libusb_dll_2017.vcxproj +134 -0
  133. package/libusb/msvc/libusb_dll_wince.vcproj +9 -1
  134. package/libusb/msvc/libusb_sources +10 -5
  135. package/libusb/msvc/libusb_static.dsp +2 -2
  136. package/libusb/msvc/libusb_static_2005.vcproj +32 -4
  137. package/libusb/msvc/libusb_static_2010.vcxproj +24 -83
  138. package/libusb/msvc/libusb_static_2012.vcxproj +25 -87
  139. package/libusb/msvc/libusb_static_2013.vcxproj +25 -87
  140. package/libusb/msvc/libusb_static_2015.vcxproj +98 -0
  141. package/libusb/msvc/libusb_static_2017.vcxproj +117 -0
  142. package/libusb/msvc/libusb_static_wince.vcproj +20 -26
  143. package/libusb/msvc/libusb_wince.sln +88 -88
  144. package/libusb/msvc/listdevs_2010.vcxproj +16 -99
  145. package/libusb/msvc/listdevs_2012.vcxproj +16 -102
  146. package/libusb/msvc/listdevs_2013.vcxproj +16 -102
  147. package/libusb/msvc/listdevs_2015.vcxproj +83 -0
  148. package/libusb/msvc/listdevs_2017.vcxproj +106 -0
  149. package/libusb/msvc/listdevs_sources +2 -1
  150. package/libusb/msvc/stress_2010.vcxproj +20 -101
  151. package/libusb/msvc/stress_2012.vcxproj +20 -104
  152. package/libusb/msvc/stress_2013.vcxproj +20 -104
  153. package/libusb/msvc/stress_2015.vcxproj +87 -0
  154. package/libusb/msvc/stress_2017.vcxproj +110 -0
  155. package/libusb/msvc/stress_sources +21 -0
  156. package/libusb/msvc/testlibusb_2010.vcxproj +82 -0
  157. package/libusb/msvc/testlibusb_2012.vcxproj +83 -0
  158. package/libusb/msvc/testlibusb_2013.vcxproj +83 -0
  159. package/libusb/msvc/testlibusb_2015.vcxproj +83 -0
  160. package/libusb/msvc/testlibusb_2017.vcxproj +106 -0
  161. package/libusb/msvc/testlibusb_sources +20 -0
  162. package/libusb/msvc/xusb_2010.vcxproj +17 -98
  163. package/libusb/msvc/xusb_2012.vcxproj +17 -101
  164. package/libusb/msvc/xusb_2013.vcxproj +17 -101
  165. package/libusb/msvc/xusb_2015.vcxproj +83 -0
  166. package/libusb/msvc/xusb_2017.vcxproj +106 -0
  167. package/libusb/msvc/xusb_sources +1 -1
  168. package/libusb/tests/stress.c +2 -2
  169. package/libusb/tests/testlib.c +0 -4
  170. package/libusb/travis-autogen.sh +39 -0
  171. package/libusb.gypi +13 -2
  172. package/package.json +23 -13
  173. package/prebuilds/android-arm/node.napi.armv7.node +0 -0
  174. package/prebuilds/android-arm64/node.napi.armv8.node +0 -0
  175. package/prebuilds/darwin-x64+arm64/node.napi.node +0 -0
  176. package/prebuilds/linux-arm/node.napi.armv6.node +0 -0
  177. package/prebuilds/linux-arm/node.napi.armv7.node +0 -0
  178. package/prebuilds/linux-arm64/node.napi.armv8.node +0 -0
  179. package/prebuilds/linux-ia32/node.napi.node +0 -0
  180. package/prebuilds/linux-x64/node.napi.glibc.node +0 -0
  181. package/prebuilds/linux-x64/node.napi.musl.node +0 -0
  182. package/prebuilds/win32-ia32/node.napi.node +0 -0
  183. package/prebuilds/win32-x64/node.napi.node +0 -0
  184. package/src/device.cc +7 -7
  185. package/src/node_usb.cc +43 -1
  186. package/src/node_usb.h +1 -0
  187. package/src/uv_async_queue.h +33 -25
  188. package/test/usb.coffee +12 -4
  189. package/tsc/index.ts +68 -8
  190. package/tsc/usb/bindings.ts +19 -1
  191. package/tsc/usb/index.ts +66 -68
  192. package/tsc/usb/interface.ts +2 -2
  193. package/tsc/webusb/index.ts +187 -75
  194. package/tsc/webusb/webusb-device.ts +28 -17
  195. package/.github/workflows/prebuild.yml +0 -48
  196. package/Readme.md +0 -339
  197. package/dist/webusb/typed-event-target.d.ts +0 -11
  198. package/dist/webusb/typed-event-target.js +0 -21
  199. package/dist/webusb/typed-event-target.js.map +0 -1
  200. package/docs/assets/css/main.css +0 -2660
  201. package/docs/assets/images/icons.png +0 -0
  202. package/docs/assets/images/icons@2x.png +0 -0
  203. package/docs/assets/images/widgets.png +0 -0
  204. package/docs/assets/images/widgets@2x.png +0 -0
  205. package/docs/assets/js/main.js +0 -248
  206. package/docs/assets/js/search.js +0 -1
  207. package/docs/classes/usb_bindings.device.html +0 -1338
  208. package/docs/classes/usb_bindings.libusbexception.html +0 -234
  209. package/docs/classes/usb_bindings.transfer.html +0 -344
  210. package/docs/classes/usb_capability.capability.html +0 -297
  211. package/docs/classes/usb_device.extendeddevice.html +0 -766
  212. package/docs/classes/usb_endpoint.endpoint.html +0 -472
  213. package/docs/classes/usb_endpoint.inendpoint.html +0 -766
  214. package/docs/classes/usb_endpoint.outendpoint.html +0 -582
  215. package/docs/classes/usb_interface.interface.html +0 -648
  216. package/docs/classes/webusb.webusb-1.html +0 -615
  217. package/docs/classes/webusb_mutex.mutex.html +0 -270
  218. package/docs/classes/webusb_typed_event_target.typedeventtarget.html +0 -443
  219. package/docs/classes/webusb_webusb_device.webusbdevice.html +0 -904
  220. package/docs/index.html +0 -500
  221. package/docs/interfaces/usb.deviceevents.html +0 -242
  222. package/docs/interfaces/usb_descriptors.bosdescriptor.html +0 -293
  223. package/docs/interfaces/usb_descriptors.capabilitydescriptor.html +0 -274
  224. package/docs/interfaces/usb_descriptors.configdescriptor.html +0 -388
  225. package/docs/interfaces/usb_descriptors.devicedescriptor.html +0 -464
  226. package/docs/interfaces/usb_descriptors.endpointdescriptor.html +0 -370
  227. package/docs/interfaces/usb_descriptors.interfacedescriptor.html +0 -407
  228. package/docs/interfaces/webusb.usboptions.html +0 -226
  229. package/docs/modules/index.html +0 -173
  230. package/docs/modules/usb.html +0 -173
  231. package/docs/modules/usb_bindings.html +0 -2319
  232. package/docs/modules/usb_capability.html +0 -156
  233. package/docs/modules/usb_descriptors.html +0 -176
  234. package/docs/modules/usb_device.html +0 -156
  235. package/docs/modules/usb_endpoint.html +0 -164
  236. package/docs/modules/usb_interface.html +0 -156
  237. package/docs/modules/webusb.html +0 -165
  238. package/docs/modules/webusb_mutex.html +0 -156
  239. package/docs/modules/webusb_typed_event_target.html +0 -156
  240. package/docs/modules/webusb_webusb_device.html +0 -156
  241. package/docs/modules.html +0 -156
  242. package/libusb/INSTALL +0 -234
  243. package/libusb/README +0 -28
  244. package/libusb/libusb/os/windows_usb.c +0 -5347
  245. package/libusb/libusb/os/windows_usb.h +0 -971
  246. package/libusb/msvc/fxload_2010.vcxproj.filters +0 -25
  247. package/libusb/msvc/fxload_2012.vcxproj.filters +0 -25
  248. package/libusb/msvc/getopt_2010.vcxproj.filters +0 -26
  249. package/libusb/msvc/getopt_2012.vcxproj.filters +0 -26
  250. package/libusb/msvc/hotplugtest_2010.vcxproj.filters +0 -14
  251. package/libusb/msvc/hotplugtest_2012.vcxproj.filters +0 -14
  252. package/libusb/msvc/libusb_dll_2010.vcxproj.filters +0 -81
  253. package/libusb/msvc/libusb_dll_2012.vcxproj.filters +0 -84
  254. package/libusb/msvc/libusb_static_2010.vcxproj.filters +0 -74
  255. package/libusb/msvc/libusb_static_2012.vcxproj.filters +0 -74
  256. package/libusb/msvc/listdevs_2010.vcxproj.filters +0 -14
  257. package/libusb/msvc/listdevs_2012.vcxproj.filters +0 -14
  258. package/libusb/msvc/stress_2010.vcxproj.filters +0 -25
  259. package/libusb/msvc/stress_2012.vcxproj.filters +0 -25
  260. package/libusb/msvc/xusb_2010.vcxproj.filters +0 -14
  261. package/libusb/msvc/xusb_2012.vcxproj.filters +0 -14
  262. package/tsc/webusb/typed-event-target.ts +0 -23
package/Readme.md DELETED
@@ -1,339 +0,0 @@
1
- USB Library for Node.JS
2
- ===============================
3
-
4
- [![Build Status](https://github.com/tessel/node-usb/workflows/prebuild/badge.svg)](https://github.com/tessel/node-usb/actions)
5
-
6
- Node.JS library for communicating with USB devices in JavaScript / CoffeeScript.
7
-
8
- This is a refactoring / rewrite of Christopher Klein's [node-usb](https://github.com/schakko/node-usb). The API is not compatible (hopefully you find it an improvement).
9
-
10
- It's based entirely on libusb's asynchronous API for better efficiency, and provides a stream API for continuously streaming data or events.
11
-
12
- Installation
13
- ============
14
-
15
- Libusb is included as a submodule. On Linux, you'll need libudev to build libusb. On Ubuntu/Debian: `sudo apt-get install build-essential libudev-dev`
16
-
17
- Then, just run
18
-
19
- npm install usb
20
-
21
- to install from npm. See the bottom of this page for instructions for building from a git checkout.
22
-
23
- ### Windows
24
- Use [Zadig](http://zadig.akeo.ie/) to install the WinUSB driver for your USB device. Otherwise you will get `LIBUSB_ERROR_NOT_SUPPORTED` when attempting to open devices.
25
-
26
-
27
- API
28
- ===
29
-
30
- var usb = require('usb')
31
-
32
- usb
33
- ---
34
-
35
- Top-level object.
36
-
37
- ### usb.getDeviceList()
38
- Return a list of `Device` objects for the USB devices attached to the system.
39
-
40
- ### usb.findByIds(vid, pid)
41
- Convenience method to get the first device with the specified VID and PID, or `undefined` if no such device is present.
42
-
43
- ### usb.LIBUSB_*
44
- Constant properties from libusb
45
-
46
- ### usb.setDebugLevel(level : int)
47
- Set the libusb debug level (between 0 and 4)
48
-
49
- Device
50
- ------
51
-
52
- Represents a USB device.
53
-
54
- ### .busNumber
55
- Integer USB device number
56
-
57
- ### .deviceAddress
58
- Integer USB device address
59
-
60
- ### .portNumbers
61
- Array containing the USB device port numbers, or `undefined` if not supported on this platform.
62
-
63
- ### .deviceDescriptor
64
- Object with properties for the fields of the device descriptor:
65
-
66
- - bLength
67
- - bDescriptorType
68
- - bcdUSB
69
- - bDeviceClass
70
- - bDeviceSubClass
71
- - bDeviceProtocol
72
- - bMaxPacketSize0
73
- - idVendor
74
- - idProduct
75
- - bcdDevice
76
- - iManufacturer
77
- - iProduct
78
- - iSerialNumber
79
- - bNumConfigurations
80
-
81
- ### .configDescriptor
82
- Object with properties for the fields of the configuration descriptor:
83
-
84
- - bLength
85
- - bDescriptorType
86
- - wTotalLength
87
- - bNumInterfaces
88
- - bConfigurationValue
89
- - iConfiguration
90
- - bmAttributes
91
- - bMaxPower
92
- - extra (Buffer containing any extra data or additional descriptors)
93
-
94
- ### .allConfigDescriptors
95
- Contains all config descriptors of the device (same structure as .configDescriptor above)
96
-
97
- ### .parent
98
- Contains the parent of the device, such as a hub. If there is no parent this property is set to `null`.
99
-
100
- ### .open()
101
-
102
- Open the device. All methods below require the device to be open before use.
103
-
104
- ### .close()
105
-
106
- Close the device.
107
-
108
- ### .controlTransfer(bmRequestType, bRequest, wValue, wIndex, data_or_length, callback(error, data))
109
-
110
- Perform a control transfer with `libusb_control_transfer`.
111
-
112
- Parameter `data_or_length` can be a integer length for an IN transfer, or a Buffer for an out transfer. The type must match the direction specified in the MSB of bmRequestType.
113
-
114
- The `data` parameter of the callback is always undefined for OUT transfers, or will be passed a Buffer for IN transfers.
115
-
116
- A [package is available to calculate bmRequestType](https://www.npmjs.com/package/bmrequesttype) if needed.
117
-
118
- ### .setConfiguration(id, callback(error))
119
- Set the device configuration to something other than the default (0). To use this, first call `.open(false)` (which tells it not to auto configure), then before claiming an interface, call this method.
120
-
121
- ### .getStringDescriptor(index, callback(error, data))
122
- Perform a control transfer to retrieve a string descriptor
123
-
124
- ### .getBosDescriptor(callback(error, bosDescriptor))
125
- Perform a control transfer to retrieve an object with properties for the fields of the Binary Object Store descriptor:
126
-
127
- - bLength
128
- - bDescriptorType
129
- - wTotalLength
130
- - bNumDeviceCaps
131
-
132
- ### .getCapabilities(callback(error, capabilities))
133
- Retrieve a list of Capability objects for the Binary Object Store capabilities of the device.
134
-
135
- ### .interface(interface)
136
- Return the interface with the specified interface number.
137
-
138
- ### .interfaces
139
- List of Interface objects for the interfaces of the default configuration of the device.
140
-
141
- ### .timeout
142
- Timeout in milliseconds to use for control transfers.
143
-
144
- ### .reset(callback(error))
145
- Performs a reset of the device. Callback is called when complete.
146
-
147
-
148
- Interface
149
- ---------
150
-
151
- ### .endpoint(address)
152
- Return the InEndpoint or OutEndpoint with the specified address.
153
-
154
- ### .endpoints
155
- List of endpoints on this interface: InEndpoint and OutEndpoint objects.
156
-
157
- ### .interface
158
- Integer interface number.
159
-
160
- ### .altSetting
161
- Integer alternate setting number.
162
-
163
- ### .setAltSetting(altSetting, callback(error))
164
- Sets the alternate setting. It updates the `interface.endpoints` array to reflect the endpoints found in the alternate setting.
165
-
166
- ### .claim()
167
- Claims the interface. This method must be called before using any endpoints of this interface.
168
-
169
- ### .release([closeEndpoints], callback(error))
170
- Releases the interface and resets the alternate setting. Calls callback when complete.
171
-
172
- It is an error to release an interface with pending transfers. If the optional closeEndpoints parameter is true, any active endpoint streams are stopped (see `Endpoint.stopStream`), and the interface is released after the stream transfers are cancelled. Transfers submitted individually with `Endpoint.transfer` are not affected by this parameter.
173
-
174
- ### .isKernelDriverActive()
175
- Returns `false` if a kernel driver is not active; `true` if active.
176
-
177
- ### .detachKernelDriver()
178
- Detaches the kernel driver from the interface.
179
-
180
- ### .attachKernelDriver()
181
- Re-attaches the kernel driver for the interface.
182
-
183
- ### .descriptor
184
- Object with fields from the interface descriptor -- see libusb documentation or USB spec.
185
-
186
- - bLength
187
- - bDescriptorType
188
- - bInterfaceNumber
189
- - bAlternateSetting
190
- - bNumEndpoints
191
- - bInterfaceClass
192
- - bInterfaceSubClass
193
- - bInterfaceProtocol
194
- - iInterface
195
- - extra (Buffer containing any extra data or additional descriptors)
196
-
197
-
198
- Capability
199
- ---------
200
-
201
- ### .type
202
- Integer capability type.
203
-
204
- ### .data
205
- Buffer capability data.
206
-
207
- ### .descriptor
208
- Object with fields from the capability descriptor -- see libusb documentation or USB spec.
209
- - bLength
210
- - bDescriptorType
211
- - bDevCapabilityType
212
-
213
-
214
- Endpoint
215
- --------
216
-
217
- Common base for InEndpoint and OutEndpoint, see below.
218
-
219
- ### .direction
220
- Endpoint direction: `"in"` or `"out"`.
221
-
222
- ### .transferType
223
- Endpoint type: `usb.LIBUSB_TRANSFER_TYPE_BULK`, `usb.LIBUSB_TRANSFER_TYPE_INTERRUPT`, or `usb.LIBUSB_TRANSFER_TYPE_ISOCHRONOUS`.
224
-
225
- ### .descriptor
226
- Object with fields from the endpoint descriptor -- see libusb documentation or USB spec.
227
-
228
- - bLength
229
- - bDescriptorType
230
- - bEndpointAddress
231
- - bmAttributes
232
- - wMaxPacketSize
233
- - bInterval
234
- - bRefresh
235
- - bSynchAddress
236
- - extra (Buffer containing any extra data or additional descriptors)
237
-
238
- ### .timeout
239
- Sets the timeout in milliseconds for transfers on this endpoint. The default, `0`, is infinite timeout.
240
-
241
- ### .clearHalt(callback(error))
242
- Clear the halt/stall condition for this endpoint.
243
-
244
- InEndpoint
245
- ----------
246
-
247
- Endpoints in the IN direction (device->PC) have this type.
248
-
249
- ### .transfer(length, callback(error, data))
250
- Perform a transfer to read data from the endpoint.
251
-
252
- If length is greater than maxPacketSize, libusb will automatically split the transfer in multiple packets, and you will receive one callback with all data once all packets are complete.
253
-
254
- `this` in the callback is the InEndpoint object.
255
-
256
- ### .startPoll(nTransfers=3, transferSize=maxPacketSize)
257
- Start polling the endpoint.
258
-
259
- The library will keep `nTransfers` transfers of size `transferSize` pending in
260
- the kernel at all times to ensure continuous data flow. This is handled by the
261
- libusb event thread, so it continues even if the Node v8 thread is busy. The
262
- `data` and `error` events are emitted as transfers complete.
263
-
264
- ### .stopPoll(cb)
265
- Stop polling.
266
-
267
- Further data may still be received. The `end` event is emitted and the callback
268
- is called once all transfers have completed or canceled.
269
-
270
- ### Event: data(data : Buffer)
271
- Emitted with data received by the polling transfers
272
-
273
- ### Event: error(error)
274
- Emitted when polling encounters an error. All in flight transfers will be automatically canceled and no further polling will be done. You have to wait for the `end` event before you can start polling again.
275
-
276
- ### Event: end
277
- Emitted when polling has been canceled
278
-
279
- OutEndpoint
280
- -----------
281
-
282
- Endpoints in the OUT direction (PC->device) have this type.
283
-
284
- ### .transfer(data, callback(error))
285
- Perform a transfer to write `data` to the endpoint.
286
-
287
- If length is greater than maxPacketSize, libusb will automatically split the transfer in multiple packets, and you will receive one callback once all packets are complete.
288
-
289
- `this` in the callback is the OutEndpoint object.
290
-
291
- ### Event: error(error)
292
- Emitted when the stream encounters an error.
293
-
294
- ### Event: end
295
- Emitted when the stream has been stopped and all pending requests have been completed.
296
-
297
-
298
- UsbDetection
299
- ------------
300
-
301
- ### usb.on('attach', function(device) { ... });
302
- Attaches a callback to plugging in a `device`.
303
-
304
- ### usb.on('detach', function(device) { ... });
305
- Attaches a callback to unplugging a `device`.
306
-
307
-
308
- Development and testing
309
- =======================
310
-
311
- To build from git:
312
-
313
- git clone --recursive https://github.com/tessel/node-usb.git
314
- cd node-usb
315
- npm install
316
-
317
- To execute the unit tests, [CoffeeScript](http://coffeescript.org) is required. Run
318
-
319
- npm test
320
-
321
- Some tests require an [attached STM32F103 Microprocessor USB device with specific firmware](https://github.com/thegecko/node-usb-test-firmware).
322
-
323
- npm run --silent full-test
324
- npm run --silent valgrind
325
-
326
- Limitations
327
- ===========
328
-
329
- Does not support:
330
-
331
- - Configurations other than the default one
332
- - Isochronous transfers
333
-
334
- License
335
- =======
336
-
337
- MIT
338
-
339
- Note that the compiled Node extension includes Libusb, and is thus subject to the LGPL.
@@ -1,11 +0,0 @@
1
- export declare class TypedEventTarget<T extends {
2
- [key: string]: Event;
3
- }> implements EventTarget {
4
- private emitter;
5
- addEventListener(type: keyof T, listener: (event: T[keyof T]) => void): void;
6
- addEventListener(type: string, listener: (event: Event) => void): void;
7
- removeEventListener(type: keyof T, listener: (event: T[keyof T]) => void): void;
8
- removeEventListener(type: string, listener: (event: Event) => void): void;
9
- dispatchEvent(event: T[keyof T]): boolean;
10
- dispatchEvent(event: Event): boolean;
11
- }
@@ -1,21 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TypedEventTarget = void 0;
4
- var events_1 = require("events");
5
- var TypedEventTarget = /** @class */ (function () {
6
- function TypedEventTarget() {
7
- this.emitter = new events_1.EventEmitter();
8
- }
9
- TypedEventTarget.prototype.addEventListener = function (type, listener) {
10
- this.emitter.addListener(type, listener);
11
- };
12
- TypedEventTarget.prototype.removeEventListener = function (type, listener) {
13
- this.emitter.removeListener(type, listener);
14
- };
15
- TypedEventTarget.prototype.dispatchEvent = function (event) {
16
- return this.emitter.emit(event.type, event);
17
- };
18
- return TypedEventTarget;
19
- }());
20
- exports.TypedEventTarget = TypedEventTarget;
21
- //# sourceMappingURL=typed-event-target.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"typed-event-target.js","sourceRoot":"","sources":["../../tsc/webusb/typed-event-target.ts"],"names":[],"mappings":";;;AAAA,iCAAsC;AAEtC;IAAA;QACY,YAAO,GAAG,IAAI,qBAAY,EAAE,CAAC;IAmBzC,CAAC;IAfU,2CAAgB,GAAvB,UAAwB,IAAY,EAAE,QAAqC;QACvE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAIM,8CAAmB,GAA1B,UAA2B,IAAY,EAAE,QAAqC;QAC1E,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC;IAIM,wCAAa,GAApB,UAAqB,KAAiB;QAClC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IACL,uBAAC;AAAD,CAAC,AApBD,IAoBC;AApBY,4CAAgB"}