PhidgetRFID Class
The PhidgetRFID
class allows you to use a PhidgetRFID board to read and write (if the board
supports if) RFID tags. The PhidgetRFID board supports 3 protocols:
- EM4100/EM4102 40-bit
- ISO11785 FDX-B encoding, Animal ID
- PhidgetsTAG Protocol 24 character ASCII
Please note that the antenna must be activated for the PhidgetRFID
to report tag reads. Here's
an example of how to use this object to read from a tag:
var phidgets = require("Phidgets");
var pRFID = new phidgets.PhidgetRFID()
.on('opened', function(emitter, data) {
emitter.antenna = true;
console.log("Device ready. Antenna activated.");
})
.open();
This object extends the Phidget
object which itself extends Node.js'
events.EventEmitter
object.
See that object's documentation for inherited methods.
Constructor
PhidgetRFID
()
Item Index
Methods
Properties
Methods
_forceBetween
-
value
-
min
-
max
Returns the value after making sure it falls between min and max.
Parameters:
-
value
Int | NumberThe value to check
-
min
IntThe minimum value desired
-
max
IntThe maximum value desired
Returns:
int
_handleData
-
chunk
This function is called each time data is received from the Phidget WebSerice. It adds
the data to the input buffer and checks if full lines (separated by '\n') can be
reconstructed. If full lines are found they are handed over to the _parseLineInput()
method for processing.
Parameters:
-
chunk
StringA chunk of utf8 encoded text to parse
_makePckString
-
keyword
-
[index]
Returns a /PCK string built from the specified parameters. PCK strings are the keys sent out to control the board.
Parameters:
-
keyword
StringThe operation keyword to use
-
[index]
Int optionalThe index of the output to use
_parseLineInput
-
line
Parses a single line of data typically received from the Phidget WebService. If the
line is a report line, the function hands it off to the _parsePskKey()
method.
Otherwise, it deals with it locally.
Parameters:
-
line
StringA non-terminated line of utf8 text
_parsePhidgetSpecificData
-
data
Parses Phidget-specific data received from the Phidget WebService. This function is meant to be overridden by subclasses.
Parameters:
-
data
ObjectAn object containing the received data
-
device
StringThe device identifier (e.g. PhidgetInterfaceKey, PhidgetLED, etc.).
-
label
StringThe custom label set for the device.
-
serial
IntThe serial number of the device.
-
keyword
StringA keyword identifying the type of information conveyed. It could be 'Input', 'Version', 'DataRate', etc.
-
index
IntThe numerical index (for indexed keys only)
-
value
StringThe actual value.
-
status
StringThe status of the key. It could be: 'added', 'changed', 'removing', etc.
-
_sendLine
-
line
Sends a line of data to the webservice
Parameters:
-
line
StringA non-terminated line of data to send
_sendPck
-
key
-
value
-
[persistent=false]
Sends the /PCK string (with attached value) to the webservice.
_setPhidgetSpecificInitialState
()
protected
Sets phidget-specific state before the 'opened' event is triggered. This is a good place for subclasses to assign initial values to the board. This is meant to be overridden by subclasses.
addListener
-
event
-
listener
This is an alias for the on()
method.
close
()
Phidget
chainable
Closes a previously opened connection to a Phidget device.
Returns:
Returns the Phidget to allow method chaining.
on
-
event
-
listener
Adds a listener to the end of the listeners array for the specified event. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of event and listener will result in the listener being added multiple times.
This method is inherited from Node.js'
events.EventEmitter
object.
See that object's documentation for more details methods.
once
-
event
-
listener
Adds a one time listener for the event. This listener is invoked only the next time the event is fired, after which it is removed.
This method is inherited from Node.js'
events.EventEmitter
object.
See that object's documentation for more details methods.
open
-
[options={}]
Opens a connection to a Phidget device. Opening a connection is a two-step process. First, a connection to the Phidget WebService (which must be running) is established. Then, a session to the specified device (which must be plugged in) is opened.
Parameters:
-
[options={}]
Object optionalOptions
Returns:
Returns the Phidget to allow method chaining.
removeAllListeners
-
[event]
Removes all listeners, or those of the specified event.
This method is inherited from Node.js'
events.EventEmitter
object.
See that object's documentation for more details methods.
Parameters:
-
[event]
String optionalThe event to remove the listeners for.
removeListener
-
[event]
-
listener
Removes a listener from the listener array for the specified event. removeListener()
will remove, at most, one instance of a listener from the listener array. If any single
listener has been added multiple times to the listener array for the specified event,
then removeListener()
must be called multiple times to remove each instance.
This method is inherited from Node.js'
events.EventEmitter
object.
See that object's documentation for more details methods.
setOutput
-
index
-
[value=false]
Sets the specified output to active (true
) or inactive (false
). This method should only
be used after the board is 'opened'. Calling it before will fail silently.
Parameters:
Returns:
Returns the PhidgetRFID
object to allow method chaining.
write
-
tag
-
protocol
-
lock
Writes a tag. Please note that not all devices have write capacity. This method will be silently
Parameters:
-
tag
StringThe value that should be written to the card.
-
protocol
Number=1An integer identifying the protocol to be used. 1 is EM4100, 2 is ISO11785 FDX-B and 3 is PhidgetTag. Default is EM4100.
-
lock
Boolean=falseWhether the card should be prevented from being written again. Default is false.
Returns:
Returns the PhidgetRFID
object to allow method chaining.
Properties
antenna
Boolean
The activity status of the RFID antenna. The antenna must be activated in order for
the device to work properly. Setting this property to true
activates the antenna
while setting it to false
deactivates it.
interReportPeriod
Int
The delay (in milliseconds) between report updates sent from the webservice.
Default: 8
label
String
The unique label of the device. The label must have a maximum length of 10 characters. If you try to set a longer label, the remainder will be truncated. Labels are supported only on newer devices and are remembered even when the device is unplugged. A label can only be set after a Phidget has been 'opened'. Trying to set the label before that will fail silently.
Default: undefined
led
Boolean
The status of the onboard LED (not to be confused with the LED output). Setting this
property to true
will turn on the onboard LED while setting it to false
will turn it
off.
name
String
[read-only] Human-readable version of the board's name (i.e. "Phidget InterfaceKit 8/8/8". This information is only available some time after the connection has been successfully opened.
Default: undefined
outputs
Object
[read-only] An object containing information about the digital outputs of the device.
Output 0 is also labeled on the board as "+5V". Output 1 is also labeled on the board
as "LED". This is not to be confused with the onboard LED. To control the onboard
LED, please use the PhidgetRFID.led
property.
Here is how to retrieve an output's value or the total number of outputs:
PhidgetRFID.outputs[1].value // Output 1 current value
PhidgetRFID.outputs.count // Total number of outputs on the device
Sub-properties:
-
count
IntThe total number of outputs on the device.
-
outputs[int].value
IntThe current value of the specified output.
password
String
private
The password to connect to the WebService. If specified, it will be used when opening a new connection. As soon as connected the password property will be erased. THIS IS CURRENTLY SET TO PRIVATE BECAUSE IT'S NOT IMPLEMENTED YET!
Default: undefined
port
Int
The port of the Phidgets webservice to connect to.
Default: 5001
ready
Boolean
[read-only] Whether the device is ready for use or not. A device must be 'opened' before it can be used.
reopen
Boolean
Whether to try to automatically reopen the device if it gets remotely closed.
Default: true
serial
Int
The unique serial number of the device. If specified, it will be used to connect to the matching device.
Default: undefined
serverId
Int
[read-only] The unique ID of the Phidget WebService the device is currently connected to.
Default: undefined
status
String
[read-only] Status of the reader. The two possible statuses are:
- waiting: no tag is being detected because none are present or because the antenna is off
- detecting: a tag is currently being detected
tag
Object
[read-only] An object containing information about the last tag that was read.
Sub-properties:
version
String
[read-only] This number distinguishes between revisions of a specific type of Phidget. It is only useful for debugging purposes. This information is only available some time after the connection has been successfully opened.
Default: undefined
Events
antenna
Event emitted when the antenna's status changes.
Event Payload:
-
emitter
PhidgetRFIDThe actual PhidgetRFID object that emitted the event.
-
status
BooleanStatus of the antenna.
true
means it is now "on" andfalse
means it is now "off".
closed
Event emitted when the connection to a phidget has been remotely closed.
Event Payload:
-
emitter
PhidgetThe actual object that emitted the event.
detected
Event emitted when a tag has been detected.
Event Payload:
-
emitter
PhidgetRFIDThe actual PhidgetRFID object that emitted the event.
-
tag
Object
error
Event emitted when an error occurs while trying to open a phidget
led
Event emitted when the onboard LED's status changes.
Event Payload:
-
emitter
PhidgetRFIDThe actual PhidgetRFID object that emitted the event.
-
status
BooleanStatus of the LED.
true
means it is now "on" andfalse
means it is now "off".
lost
Event emitted when a previously detected tag is now lost
Event Payload:
-
emitter
PhidgetRFIDThe actual PhidgetRFID object that emitted the event.
-
tag
Object
opened
Event emitted when a phidget is successfully opened.
Event Payload:
-
emitter
PhidgetThe actual Phidget object that emitted the event.
opening
Event emitted when an attempt to open a Phidget has been initiated.
Event Payload:
-
emitter
PhidgetThe actual Phidget object that emitted the event.
output
Event emitted when an output's status has changed.
Event Payload:
-
emitter
PhidgetRFIDThe actual PhidgetRFID object that emitted the event.
-
data
ObjectAn object containing the output data and related information
-
index
IntThe output's index number
-
value
IntThe output's new value
-
received
private
Event emitted when a new line of data has been received from the web service. This is mostly useful for debugging purposes (hence the @private denomination). It will let you view all data coming in.
reopening
Event emitted when an attempt to automatically re-open a closed Phidget is being carried on.
sent
private
Event emitted when a new line of data has been sent to the Phidget WebService. This is mostly useful for debugging purposes (hence the @private denomination). It will let you view all data going out.
status
Event emitted when the device's status changes.
Event Payload:
-
emitter
PhidgetRFIDThe actual PhidgetRFID object that emitted the event.
-
status
StringStatus of the device (
detecting
orwaiting
).
timeout
Event emitted when an attempt to open a Phidget times out.
Event Payload:
-
emitter
PhidgetThe actual Phidget object that emitted the event.