https://github.com/bjornstar/node-hid
Access HID devices through Node.JS
https://github.com/bjornstar/node-hid
Last synced: 3 months ago
JSON representation
Access HID devices through Node.JS
- Host: GitHub
- URL: https://github.com/bjornstar/node-hid
- Owner: bjornstar
- Fork: true (node-hid/node-hid)
- Created: 2013-04-22T06:43:11.000Z (about 12 years ago)
- Default Branch: master
- Last Pushed: 2013-03-17T19:52:25.000Z (about 12 years ago)
- Last Synced: 2024-10-02T08:33:57.848Z (7 months ago)
- Language: C++
- Homepage:
- Size: 172 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# node-hid - Access USB HID devices from node.js #
## Installation
### Prerequisites:
* Mac OS (I use 10.6.8) or Linux (kernel 2.6+) or Windows XP+
* node.js v0.8
* libudev-dev (Linux only)
* git### Compile from source on Linux or OSX
Use npm to execute all installation steps:
```
npm install
```### Compile from source on Windows
Use node-gyp to compile the extension.
Please note that Windows support is incomplete and needs some work
to pull it to the same level as on Linux and OSX. See issues #10
and #15 in github for discussion. Pull requests to improve Windows
support would be welcome.## Test it
In the ```src/``` directory, various JavaScript programs can be found
that talk to specific devices in some way. The ```show-devices.js```
program can be used to display all HID devices in the system.## How to Use
### Load the extension
```
var HID = require('node-hid');
```### Get a list of all HID devices in the system:
```
var devices = HID.devices()
```devices will contain an array of objects, one for each HID device
available. Of particular interest are the ```vendorId``` and
```productId```, as they uniquely identify a device, and the
```path```, which is needed to open a particular device.Here is some sample output:
```
HID.devices();
[ { vendorId: 1452,
productId: 595,
path: 'USB_05ac_0253_0x100a148e0',
serialNumber: '',
manufacturer: 'Apple Inc.',
product: 'Apple Internal Keyboard / Trackpad',
release: 280,
interface: -1 },
{ vendorId: 1452,
productId: 595,
path: 'USB_05ac_0253_0x100a14e20',
serialNumber: '',
manufacturer: 'Apple Inc.',
product: 'Apple Internal Keyboard / Trackpad',
release: 280,
interface: -1 },```
### Opening a device
Before a device can be read from or written to, it must be opened:
```
var device = new HID.HID(path);
``````device``` will contain a handle to the device. The ```path``` can
be determined by a prior HID.devices() call. If an error occurs
opening the device, an exception will be thrown.### Reading from a device
Reading from a device is performed using the read call on a device
handle:```
device.read(function(error, data) {});
```All reading is asynchronous.
### Writing to a device
Writing to a device is performed using the write call in a device
handle. All writing is synchronous.```
device.write([0x00, 0x01, 0x01, 0x05, 0xff, 0xff]);
```### Support
I can only provide limited support, in particular for operating
systems and devices that I don't know. Please use the
[node-hid Google Group](https://groups.google.com/d/forum/node-hid)
for general support inquiries ([email protected]).