Personal tools
Views

TAGscan RFID-Leser

Den seriellen TAGscan RFID Leser gibt es als 125kHz Ausführung für EM/HITAG etc. und auch als Ausführung für Mifare.

Zum Probieren der einzelnen Kommandos dient folgendes Mini-Python script:
#! /usr/bin/python
# -*- coding: utf-8 -*-
# tagscan.py
# tagscan.py sendet Zeichen via Lanport Neu an den TAGscan reader von tagnology

import socket
import time

# Socket zum Lanport aufbauen
lanportIP = '192.168.13.27'
port = 10001
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect ((lanportIP, port))
s.settimeout(2)

while True:
    try:
       str = raw_input('q fuer Ende -->')
       if str == 'q':
           break
       s.send(str)
       print "*** start of recv***"
       for i in range(1000):
           ch = s.recv(1)
           if ch == '\r':
               print '<CR>'
           elif ch == '\n':
               print '<NL>'
           else:
               print ch
   except:
       print "keine Daten"

# Socket wieder kappen
s.shutdown(2)
s.close()
Ist der Leser per RS232 an ein Lanport angeschlossen, kann er wie folgt angesteuert werden:
-->x   #führt ein Reset durch
-->c   #startet continuous read
...
...warten auf rfid Tag
...
-->  #beendet continuous read
-->dg # setzt LED auf rot (!!kein Tippfehler!!)
-->dr  # setzt LED auf grün (!!kein Tippfehler!! r setzt wirklich auf Grün und g auf Rot)
-->dn # schaltet LED aus
-->c   # startet continuous read für den nächsten Durchlauf

Setzen der EEPROM-Einstellungen

--> rp0B      #liest ein Byte EEPROM an Stelle 0B, gibt zwei Hex-Ziffern (default 01) aus.
--> wp0B11 #schreibt die Hex-Ziffern 11 an Stelle 0B

Setzen des "Single Shot" Modus und des zugehörigen "Single Shot timeout value":
Im single-shot modus wird nach Erkennen und Senden der unique ID eine einstellbare Zeit lang gewartet, bis derselbe Tag wieder gelesen wird.
--> !            # liefert "!", wenn im continuous read mode, sonst "F"
--> .            # stoppt den continuous read mode - nur wenn "!" geliefert wurde - jetzt bin ich im Command Mode
--> wp0B21   # setzt single shot = true und autostart = true, also: 0010 0001
--> wp0F1A   # setzt den Timeout auf 2,6 Sekunden, also: "0001 1000" mal 100 ms = 2,6 s
--> x            # reset, sonst wirkt die Änderung nicht
--> !             # bin ich schon im countinuous read mode? "!" heißt JA, "F" heißt NEIN
--> c            # nur nötig wenn nicht NICHT im continuous read Modus bin, sonst flieg ich wieder raus !

Weitere Infos siehe Dokumentation in /K/PROJEKTE/casetime/TAGscan