Node.js rfidgeek connector
JavaScript Makefile
Latest commit d6ba370 Dec 22, 2014 @bensinober Version 0.1.4.
Smaller fixes, simultaneous websocket and tcpsocket can now be used.
Permalink
Failed to load latest commit information.
examples
lib
test
.gitignore
CHANGELOG
LICENSE
Makefile
README.md
package.json
rfid.js
univelop_500b.json

README.md

Simple rfidgeek adaptor to Node.js

This adaptor is primarily made for the Univelop 500 RFID reader/writer made by Texas Instruments.

This reader supports the following tags:

  • ISO15693
  • ISO14443A
  • ISO14443B
  • TAGIT

Using

Uses event emitters for passing tag and content, and can be controlled by nodejs, or externally via TCP Socket or Websocket.

var rfid = require('rfidgeek'); 

Configuration

rfid.init() takes optional parameters (defaults in parantheses):

tcpsocket:      (false)                  // {port: <port>, host: <host>} | true, defaults to localhost:4444
websocket:      (false)                  // {port: <port>, host: <host>} | true, defaults to localhost:4444
debug:          ('none')                 // show debug information, possible values: 'none', 'error', 'debug'
portname:       ('/dev/ttyUSB0')         // device path to reader
tagtype:        ('ISO15693')             // type rfid ['ISO15693', 'ISO14443A', 'ISO14443B', 'TAGIT']
scaninterval:   (1000)                   // interval between each scan, tested down to 100ms
readerconfig:   ('./univelop_500b.json') // path to json config file for rfid commands
bytes_to_read:  ('08')                   // block length to read from ISO15693

example

rfid.init({
  tcpsocket: {
    port: 8888, 
    host: 'localhost'
  },
  tagtype: "ISO14443A"
});


### TCP Socket or Websocket control

  • {"cmd": "SCAN-ON"} // start scan loop
  • {"cmd": "SCAN-OFF"} // stop scan loop
  • {"cmd": "ALARM-ON"} // activate alarm on all items within range
  • {"cmd": "ALARM-OFF"} // deactivate alarm on all items within range
  • {"cmd": "WRITE", "id", ""} // write to ISO15693 tag

### nodejs control

Start scan loop;
    rfid.startScan(function(err) {console.log(err) });

Stop scan loop
    rfid.stopScan();

Deactivate alarm
    rfid.deactivateAFI(function(err) {console.log(err) });

Activate alarm
    rfid.activateAFI(function(err) {console.log(err) });

Write ISO15693 tag:
    rfid.writeISO15693("<tag id>", "<data>", function(err) { console.log(err) });

### Websocket in browser example

var ws = new WebSocket("ws://localhost:4444"); ws.onopen = function(evt) { console.log("connected!"); ws.send(JSON.stringify({cmd:"SCAN-ON"})); }

ws.onmessage = function(evt) { console.log(evt); };


For more info check the `rfid.js` file and the tests

Note, there is work on the reader in Python:

    https://github.com/scriptotek/pyrfidgeek
    
and in Ruby:

    https://github.com/digibib/rfidgeek

License is MIT