— React-Native Programmierer . Patrick Tresp

phidgets – PhidgetRFID AS3 – easy implementation of RFID Reader in Actionscript 3

1023_1 – PhidgetRFID
Quelle: http://www.phidgets.com

As developing RIA is the focus of my work, sometimes it is nice to play around with some hardware programming or at least do some programming to control hardware.
Last time i did this is like 15 years ago and the result was to get a light bulb shining. Still think it is a little wonder 🙂

While searching a little bit, i did order this 1023_1 – PhidgetRFID, to read RFID Tags. http://www.phidgets.com/products.php?product_id=1023_1
My first weapon of choice is ActionScript 3.0 and i was surprised how easy this is to handle.

I used to be a person that does not read the manual – now i am 🙂
Sometimes its just easier to search for a solution while it is documented very well, e.g. for exact this device : http://www.phidgets.com/docs/1023_User_Guide

If using Phidget the first time, a look at the Phidget Control Panel helps ( Windows and OSX explained seperatly ) http://www.phidgets.com/docs/Phidget_Control_Panel

If connected properly, Coding might start.

Since it is really self-explaining, i won’t go through the code.

For now, the Actionscript Library is packed in some Examples which show already how to use phidgets API, which is located here with also a lot of documents for help: http://www.phidgets.com/docs/Language_-_Flash_AS3

package
{
/**
* @author Patrick Tresp
* @see patricktresp.de | blog.patricktresp.de
*
*/
 
import flash.text.TextFormat;
import flash.text.TextField;
import flash.display.Shape;
 
import com.phidgets.PhidgetRFID;
import com.phidgets.events.PhidgetDataEvent;
import com.phidgets.events.PhidgetErrorEvent;
import com.phidgets.events.PhidgetEvent;
 
import flash.display.Sprite;
 
/**
* @author ptresp
*/
public class PhidgetRFIDReader extends Sprite
{
private static const HOST : String = "localhost";
private static const PORT : uint = 5001;
private static const PASSWORD : String;
private var _phidgetRFID : PhidgetRFID;
 
public function PhidgetRFIDReader()
{
construct();
}
 
private function construct() : void
{
var phidgedRFID : PhidgetRFID = _phidgetRFID = new PhidgetRFID();
 
phidgedRFID.addEventListener( PhidgetEvent.DETACH, attachDetachHandler );
phidgedRFID.addEventListener( PhidgetEvent.ATTACH, attachDetachHandler );
phidgedRFID.addEventListener( PhidgetErrorEvent.ERROR, errorHandler );
phidgedRFID.addEventListener( PhidgetDataEvent.TAG, tagHandler );
phidgedRFID.addEventListener( PhidgetDataEvent.TAG_LOST, tagHandler );
 
phidgedRFID.open( HOST, PORT, PASSWORD );
}
 
private function attachDetachHandler( event : PhidgetEvent ) : void
{
switch( event.type )
{
case PhidgetEvent.ATTACH:
trace( "PhidgetRFIDReader.attachDetachHandler(event) PhidgetEvent.ATTACH" );
_phidgetRFID.Antenna = true;
_phidgetRFID.LED = true;
break;
case PhidgetEvent.DETACH:
default:
_phidgetRFID.Antenna = false;
_phidgetRFID.LED = false;
trace( "PhidgetRFIDReader.attachDetachHandler(event) PhidgetEvent.DETACH" );
break;
}
}
 
private function errorHandler( event : PhidgetErrorEvent ) : void
{
trace( "PhidgetRFIDReader.errorHandler(event)", event.type, event.Error );
}
 
private function tagHandler( event : PhidgetDataEvent ) : void
{
switch( event.type )
{
case PhidgetDataEvent.TAG:
trace( "PhidgetRFIDReader.tagHandler(event) PhidgetDataEvent.TAG", event.Data );
displayStatus( true, String( event.Data ) );
break;
case PhidgetDataEvent.TAG_LOST:
trace( "PhidgetRFIDReader.tagHandler(event) PhidgetDataEvent.LOST", event.Data );
displayStatus( false, String( event.Data ) );
break;
}
}
 
private function displayStatus( connected : Boolean, RFIDTag : String ) : void
{
while ( numChildren > 0 ) removeChildAt( 0 );
 
if ( RFIDTag !== "0/" )
{
var color : uint,s : Shape, tf : TextField , format : TextFormat, text : String;
 
color = connected ? 0x1B3A00 : 0x660000;
 
s = new Shape();
s.graphics.beginFill( color );
s.graphics.drawRect( 0, 0, stage.stageWidth, stage.stageHeight );
s.graphics.endFill();
 
addChild( s );
 
text = RFIDTag + " ";
text += connected ? "found" : "lost";
 
format = new TextFormat();
format.font = "Arial";
format.size = 24;
format.color = 0xFFFFFF;
 
tf = new TextField();
tf.width = stage.stageWidth - 40;
tf.x = tf.y = 20;
 
tf.defaultTextFormat = format;
tf.text = text ;
 
addChild( tf );
}
}
}
}
1 comment
  1. Josue Palma says: 2. November 201300:38

    Tnx so much for this, i need to do an app with rfid support but i don’t have the reader’s model yet, until next week, i hope that it will be Phidget to use this library :3

Submit comment