nesslab-reader-api.js
Node module to rfid reader nesslab.
Módulo desenvolvido para facilitar a comunicação do node.js com o leitor rfid da NESSLAB, que é um dos mais acessíveis no mercado. Foi testado apenas no modelo NL_RF1000.
Instalação
O módulo foi compartilhado no npm, para instalar execute o comando a seguir no diretório do seu projeto pelo terminal.
npm install nesslab-reader-api
Uso
Importe o módulo com
require
como no exemplo a seguir
var reader = require('nesslab-reader-api');
//Connecting
reader.connect('192.168.0.100',5578);
//On connect
reader.on('connect', function(res){
console.log(res);
//Starting reading
reader.init();
});
//On tag
reader.on('tag',function(res){
//Nmber of tag
console.log(res.tag);
//Antenna
console.log(res.antenna);
//Antena+tag
console.log(res.tagId);
});
Métodos
Os métodos dizem respeito às ações da parte do usuário para o leitor. Veja:
connect(ip, port)
Método para conexão com o leitor, basta informar o ip (string) e a porta (int). Você deve usar este método antes de todos os outros.
init()
Para iniciar a leitura de tags, depois que este método é chamado o leitor, se conectado, inicia a leitura das tags.
stop()
Este método serve para pausar a leitura, que pode ser iniciada novamente com o método init
disableAntenna(antennaPort)
Este método deve ser chamado quando você deseja desabilitar uma antena, você deve passar o número da porta como parâmetro, veja o exemplo como desabilitar a antena 1:
reader.disableAntenna(1);
enableAntenna(antennaPort)
Se você desabilitou uma antena, ou ela está desabilitada por algum outro motivo, você pode reativar com este método, basta passar por parâmetro o número da porta da antena.
setPowerAntenna(antennaPort, power)
Com este método você pode setar a potencia que você deseja para determinada antena passando por parâmetro o número da porta da antena e a potencia, veja:
reader.setPowerAntenna(1,200);
getAntennaState()
Este método serve para retornar o status das antenas, que serão retornados nos eventos
stateport1, stateport2, stateport3 e stateport4
que veremos mais a frente.
getPower()
Você deve usar este método quando deseja saber qual a potencia atual do leitor, é só chamar o método e escutar o evento
antennapower
que veremos mais a baixo.
reconnect
Este evento vai desconectar e reconectar o leitor.
disconnect
Este método vai desconectar o leitor, e para conectar novamente você deve usar o método
connect
close
Este método vai fechar a comunicação com o leitor
Eventos
Você usurá os eventos para tratar as informações retornadas do leitor, veja um exemplo de como usar um evento:
reader.on('tag',function(res){
console.log(res.tag);
});
tag
Este evento como o nome sugere e como mostrado acima retorna um objeto JSON com a tag lida, a antena e a string completa retornada do leitor que é formada pela antena e a tag juntas.
reader.on('tag',function(res){
console.log(res.tagId); //Mostra 4T3000000000000000000000000295
console.log(res.tag); //Mostra 3000000000000000000000000295
console.log(res.antenna); //Mostra 4
});
waiting
Este evento vai ser chamado sempre que o leitor esperar uma ação do usuário ou do módulo
connected
Quando o leitor estiver devidamente conectado este método será chamado, veja o exemplo:
var reader = require('nesslab-reader-api');
//Connecting
reader.connect('192.168.0.100',5578);
//On connect
reader.on('connect', function(res){
console.log(res); //Connected
});
init
Este evento é disparado quando o leitor inicia a leitura das tags.
disconnected
Este evento é chamado quando o leitor é desconectado por algum motivo, é ideal que seja sempre usado para que o usuário e o desenvolvedor saibam o que houve. Ele retorna o erro que aconteceu, use-o assim:
var reader = require('nesslab-reader-api');
//Connecting
reader.connect('192.168.0.100',5578);
//On disconnect
reader.on('disconnected', function(res){
console.log(res); //Connection error
});
antennapower
Este evento é acionado quando o método
getPower()
é chamado. Veja um exemplo
var reader = require('nesslab-reader-api');
//Connecting
reader.connect('192.168.0.100',5578);
reader.getPower();
reader.on('antennapower', function(power){
console.log(power);
});
Eventos de estado
Quando o método
getAntennaState
for chamado os eventos referente ao estado de cada antena será chamado, retornando verdadeiro para as ativas e falsos para as inativas, veja a baixo:
var reader = require('nesslab-reader-api');
//Connecting
reader.connect('192.168.0.100',5578);
//Getting states
reader.getAntennaState();
//Antenna 1
reader.on('stateport1', function(state){
console.log(state);
});
//Antenna 2
reader.on('stateport1', function(state){
console.log(state);
});
//Antenna 3
reader.on('stateport1', function(state){
console.log(state);
});
//Antenna 4
reader.on('stateport1', function(state){
console.log(state);
});