someone-noone / libnfc-js

A simple libnfc API to interact with NFC tags.
Apache License 2.0
6 stars 9 forks source link

libnfc-js

A simple libnfc API to interact with NFC tags.

Install

    npm i -S libnfc-js

System requirements

Please ensure that you're able to communicate with your NFC device with nfc-list or nfc-poll commands, before you start using this package.

Usage

See full example in test.js

List avaliable devices in the system

const {NFC, NFCReader} = require('libnfc-js')

// Core API:
let nfc = new NFC();
console.log(nfc.listDevices())
nfc.close();

Open reader

let nfcReader = new NFCReader();
nfcReader.open();

or (if you have more than 1 device in the system)

let nfcReader = new NFCReader();
nfcReader.open("pn532_uart:/dev/tty.usbserial");

Polling cards and sending data

nfcReader.poll(); // polls for the next card
nfcReader.on('card', card => {
    // Sending data:
    let result = await nfcReader.transceive(Buffer.from([0]));
    console.log(result);

    await nfcReader.release();
    console.log('card released');

    nfcReader.poll(); // polls for the next card
});

// triggered if polling has failed
nfcReader.on('error', err => {
    throw err;
})