Advertisement
Guest User

Example for bikr

a guest
Aug 13th, 2012
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.50 KB | None | 0 0
  1. class rfidDevice extends InputPort
  2. {
  3.     serPort = null;
  4.     enabled = true;
  5.     rxData = "";
  6.  
  7.     constructor(port)
  8.     {
  9.         serPort = port;
  10.         serPort.configure(115200,8, PARITY_NONE,1,NO_CTSRTS);
  11.         enable();
  12.     }
  13.  
  14.     function enable()
  15.     {
  16.         rxData = "";
  17.         enabled = true;
  18.         poll();
  19.     }
  20.  
  21.     function disable()
  22.     {
  23.         enabled = false;
  24.     }
  25.    
  26.     // Receive 0 = disable, 1 = enable on our input port
  27.     function set(value)
  28.     {
  29.         if(value == 0)
  30.         {
  31.             disable();
  32.         }
  33.         else
  34.         {
  35.             enable();
  36.         }
  37.     }
  38.  
  39.     function poll()
  40.     {
  41.         if(enabled)
  42.         {
  43.             imp.wakeup(0.1, poll.bindenv(this));
  44.            
  45.             serPort.write(0x10);
  46.             serPort.write(0x03);
  47.             serPort.write(0x00);
  48.  
  49.             local byte = serPort.read();
  50.  
  51.             while(byte != -1)
  52.             {
  53.                 //server.log(format("Raw: %02x", byte));
  54.                 switch(byte)
  55.                 {
  56.                     case 0xFF : // Start of data
  57.                         //server.log("Caught Initial Byte");
  58.                         rxData = "";
  59.                         break;
  60.  
  61.                     default:    // ID byte
  62.                         rxData += byte;
  63.                        
  64.                         // Add some code here to decide when the received data is complete
  65.                         // and perhaps send it to an output?  e.g.
  66.                         if(strlen(rxData) == 8)
  67.                         {
  68.                             output.set(rxData);
  69.                             server.log(format("Got ID: %s", rxData));
  70.                             rxData = "";
  71.                         }
  72.                         break;
  73.                 }
  74.  
  75.                 // Get the next byte
  76.                 byte = serPort.read();
  77.             }
  78.         }
  79.     }
  80. }
  81.  
  82. local output = OutputPort("Result", "string");
  83. local rfid = rfidDevice(hardware.uart1289);
  84.  
  85. imp.configure("Sticker Reader",[rfid], [output]);
  86.  
  87. server.log("Starting Scan");
  88.  
  89. // End of code.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement