Decoder for wiegand readers on GPIO. Currently works on linux only, but can be tested on other platforms.
- Linux with GPIO
- node-gyp
$ npm install --save wiegand
Make sure you export your GPIO pins according to the epoll docs:
#!/bin/sh
echo 17 > /sys/class/gpio/export
echo in > /sys/class/gpio/gpio17/direction
echo both > /sys/class/gpio/gpio17/edge
Note: If you are using the GPIO command to export, it does not automatically set the edge for you. You must do it separately:
$ gpio export 17 in
$ echo both > /sys/class/gpio/gpio17/edge
const wiegand = require('wiegand');
const w = wiegand();
w.begin({ d0: 17, d1: 18});
w.on('data', (data) => {
console.log('Got', data.length, 'bits from wiegand with data:', data);
});
w.on('keypad', (num) => {
console.log('Got', num, 'from the reader\'s keypad');
});
w.on('reader', (id) => {
console.log('Got', id, 'from RFID reader');
});
inherits EventEmitter
default options:
{
// RaspberryPI default
d0: 17,
d1: 18,
}
callback
will fire on the ready
event or if an error happens during the process. Errors will be emited on the error
event.
stop polling for changes to GPIO. Will callback when done and emit a stop
event.