Ankündigung

Einklappen
Keine Ankündigung bisher.

RFID-Reader für Tierchips FDX-B/HDX

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    #16
    Der LBS kann keine Verbindung aufbauen, daher liefert fsockopen() ein FALSE und daher auch die Fehlermeldung bei fgets().
    Wie haste den NPORT denn konfiguriert? Am besten Screenshot von der Konfiguration im Webinterface machen.

    Kommentar


      #17
      Bei mir siehts so aus:


      rfid1.png
      Hier muss du die Anpassungen gemäß deines Readers machen.



      rfid2.png

      Der Port bei Local TCP Port ist der Port, den du im LBS angeben musst. Alles andere kannst du vermutlich so konfigurieren wie in diesem Screenshot.

      Bevor du das ganze in EDOMI testest, kannst per telnet testen, ob du den NPORT erreichen kannst.
      Am besten als root auf dem EDOMI Server in einer Shell folgenden eingeben:

      Code:
      [root@edomi-development ~]# [COLOR=#FF0000][B]telnet 192.168.0.222 4001[/B][/COLOR]
      Trying 192.168.0.222...
      Connected to 192.168.0.222.
      Escape character is '^]'.
      Wenn du dann ein "Connected" siehst, dann weißt du, dass die Verbindung funktioniert. Du musst natürlich beim telnet Befehl IP und Port entsprechend anpassen.

      Viel Glück

      Kommentar


        #18
        Code:
        [root@edomi ~]# telnet 192.168.2.38 4001
        Trying 192.168.2.38...
        Connected to 192.168.2.38.
        Escape character is '^]'.
        Eine Verbindung scheint er ja herzustellen, aber am LBS sollte man ja wenigstens an A2 etwas kommen.
        Kann ich sonst irgendwie über telnet oder so den Datenverkehr sehen?

        Vielleicht ist es ja normal, aber wenn ich das kleine Windowsprogramm öffne mit dem man die Codes lesen kann, so muss ich dort immer erst "Connect" und dann den COM Port wählen. Vorher sehe ich am Moxa auch die Tx/Rx Led nicht leuchten wenn Daten übertragen werden. Für das Programm muss ich Real Com Mode wählen.

        Konfiguriere ich den Moxa als TCP Server dann sehe ich die Tx/Rx Led gar nicht leuchten. Ist so als würde der Leser auf eine Aufforderung oder so warten.

        Kommentar


          #19
          was genau machst du denn unter Windows? Geht das dann auch über den Moxa?
          Und was für eine Schnittstelle hat der Reader? RS232?
          Sind die o.g. Fehler denn weg?
          Was ist das für ein kleines Windows Programm? Vom Moxa?
          Und wo wählst du real com?
          EDIT: Und was genau empfängst du, wenn der Reader erfolgreich liest?
          Zuletzt geändert von jonofe; 29.10.2016, 20:08.

          Kommentar


            #20
            Das sind kleine Windows Programme die man sich bei Priority1, dem Hersteller des Lesers runterladen kann.
            Diese Programme liefen auch über den Moxa, wie gesagt dann im Real Com Mode.
            Real Com Mode habe ich im Moxa Programm eingestellt.

            Habe mir aber mittlerweile diese Programm runter geladen.
            http://www.hw-group.com/products/hercules/index_de.html
            Damit kann man alle Schnittstellen simulieren/überprüfen.

            Und siehe da er überträgt auch fleisig Daten im TCP Server Mode.
            Im Bild sieht man das er den Code 010BC61A84 3 Mal gelesen hat.

            3.png

            Aber irgendwie mag der LBS scheinbar die Daten nicht oder ich mache einen Fehler.

            4.png

            Kommentar


              #21
              Was genau davon ist denn EIN Code?
              Ich sehe da keinen Delimiter.
              Sieht für mich danach aus, dass es 10 Bytes sind, die sich dann ohne ein Trennzeichen wiederholen.

              Um wieviele unterschiedliche Transponder (Katzen) gehts denn letztendlich?

              EDIT: Sorry, habs jetzt erst gelesen, den Code hattest du ja oben erwähnt.
              Zuletzt geändert von jonofe; 29.10.2016, 20:41.

              Kommentar


                #22
                Es geht sich nur um 2 Katzen...

                Der eigentliche Code wird wohl 16 Bytes lang sein, den Code den ich gerade auslese ist von einem Anhänger den man zu einer Mikrochipkatzenklappe von Sureflap mit dazu bekommt. Den Anhänger kann der Leser auch lesen. Hätte am besten mal einen richtigen Chip der normalerweise implantiert wird bestellen sollen zum Testen. Meine 2 haben heute schon genug Versuchskaninchen spielen müssen.

                Delimiter....ist das das "Endzeichen"?? Das stand in der Anleitung:


                EM4100 transponder Output

                The output format for a read of an EM4100 transponder

                is a simple string of 10 ASCII coded Hexidecimal

                characters followed by the ASCII code $0D

                (carriage return) as a string end marker.

                For example, when reading a EM4100 compatible card

                with the Version Number of $06, and a card data of

                $001259E3 the following string is transmitted:

                06001259E3<crn> where <crn> is

                serial ASCII code $0D


                Kommentar


                  #23
                  okay, das 0x0D Zeichen kannst du natürlich nicht wirklich am Eingang E10 eingeben.
                  Dann wird auch kein gelesener Code an den Ausgängen auftauchen.

                  Kommentar


                    #24
                    ...das ist ja mal ein Lichtblick und nun????

                    Kommentar


                      #25
                      Speicher mal folgenden PHP Code als LBS und teste mal ob an A2 was kommt. Delimiter kann dabei leer bleiben.

                      PHP-Code:
                      ###[DEF]###
                      [name        =   RSS RFID Reader v0.2 ]

                      [e#1        =     Start/Stop #init=1 ]
                      [e#2        =     IP  ]
                      [e#3        =     Port ]
                      [e#4        =     Master Key ]
                      [e#5        =     Add Key ]
                      [e#6        =     Delete Key ]
                      [e#7        =   Get Code List ]
                      [e#8        =   Grace Period ]
                      [e#9        =   Key length ]
                      [e#10        =   Key delimiter ]
                      [e#11        =     Log Level ]

                      [a#1        =   Reader Status ]
                      [a#2        =   Code read ]
                      [a#3        =   Code Time ]
                      [a#4        =   Auth OK? ]
                      [a#5        =   Auth Key ]
                      [a#6        =   Auth Time ]
                      [a#7        =   Code List ]
                      [a#8        =   Error ]

                      [v#1        = 0 ]
                      [v#2        = 0 ]
                      [v#100        = 0.2 ]
                      [v#101        = 19000372 ]
                      [v#102        = RSS RFID Reader ]
                      [v#103        = 0 ]


                      ###[/DEF]###


                      ###[HELP]###

                      This LBS integrates the RSS-Systems RFID reader (http://www.rss-systems.de/sr28.pdf)
                      Prerequisites: TCP/IP connection to RFID reader via ser2net or an RS485/232-IP Adapter
                      With E5/E6 you can add/delete RFID transponder IDs. E4 defines a MASTER Trandponder ID.
                      When the reader reads the MASTER transponder, the LBS switches in MASTER mode for 15 seconds.
                      While in MASTER mode and reading another transponder ID, this ID will be added to authorized 
                      transponder list, if it does not exists already. Otherwise it will be deleted from the list
                      of authorized transponders.
                      Sending a 1 on E7 will generate a list of all authorized transonders on A7.
                      E8 specifies the grace period in seconds. After that time receiving the same transponder ID as before 
                      is recognized as a new authorization. All identical IDs before that time period are recognized as duplicates 
                      and will be ignored.

                      E1: Start (1) / Stop (0) RFID Reader 
                      E2: IP Adress of ser2net or RS485/IP Adapter
                      E3: Port used by ser2net or RS485/IP Adapter
                      E4: ID of Master key, which can be used to add/delete transponder 
                      E5: 10 byte code to be added to list of authorized transponder 
                      E6: 10 byte code to be deleted from authorized transponder list  
                      E7: 1 on this inputs generated a full list of authorized codes on A7 
                      E8: Grace period after which a transponder triggers a second event
                      E9: specifies the length of the RFID tag identifier in bytes
                      E10: specifies the character to identify the start of RFID tag identifier (default: space)  
                      E11: Enable Logging (0-none|1-emerg|2-alert|3-crit|4-err|5-warning|6-notice|7-info|8-debug)

                      A1: Status of Reader: 0-Stopped | 1-Normal Operation | 2-Master Mode
                      A2: Last transponder ID received
                      A3: Timestamp when last transponder ID was received
                      A4: Authentication successfull (1) => This signal should trigger e.g. the door opener
                      A5: Authenticated transponder ID
                      A6: Time of last authentication
                      A7: List of valid transponder IDs [[name][ID]][[name][ID]]...[[name][ID]]
                      A8: Last error code (1-mysql connection error)

                      V1  : Indicator whether LBS is running (1) or not (0)
                      V2  : message queue ID

                      V100: Version of LBS
                      V101: LBS Number
                      V102: Name of Custom Log
                      V103: used to store Loglevel

                      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
                      Prerequesite before using this LBS
                      !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

                      - Install php-process 

                      Install php-process extension:
                      ==============================
                      Login in as root to your EDOMI Server and execute the following command:

                          yum install php-process

                      Changelog:
                      ==========
                      v0.1: Initial version
                      v0.2: LBS extended by two inputs to specify length of RFID Code (E9) and delimiter byte to identify start of RFID code (default: space) 

                      ###[/HELP]###


                      ###[LBS]###
                      <?

                      function LB_LBSID_logging($id, $msg, $var = NULL, $priority = 8)
                      {
                          $E = getLogicEingangDataAll($id);
                          $logLevel = getLogicElementVar($id, 103);
                          if (is_int($priority) && $priority <= $logLevel && $priority > 0) {
                              $logLevelNames = array(
                                  'none',
                                  'emerg',
                                  'alert',
                                  'crit',
                                  'err',
                                  'warning',
                                  'notice',
                                  'info',
                                  'debug'
                              );
                              $version = getLogicElementVar($id, 100);
                              $lbsNo = getLogicElementVar($id, 101);
                              $logName = getLogicElementVar($id, 102) . '  ---  LBS' . $lbsNo;
                              strpos($_SERVER['SCRIPT_NAME'], $lbsNo) ? $scriptname = 'EXE' . $lbsNo : $scriptname = 'LBS' . $lbsNo;
                              writeToCustomLog($logName, str_pad($logLevelNames[$logLevel], 7), $scriptname . " [v$version]:\t" . $msg);
                              if (is_array($var))
                                  foreach ($var as $index => $line)
                                      writeToCustomLog($logName, str_pad($logLevelNames[$logLevel], 7), $scriptname . " [v$version]:\t" . $index . " => " . $line);
                              else {
                                  if (is_object($msg))
                                      $var = serialize($var);
                                  if (isset($var))
                                      writeToCustomLog($logName, str_pad($logLevelNames[$logLevel], 7), $scriptname . " [v$version]:\t" . $var);
                              }
                          }
                      }

                      function LB_LBSID($id)
                      {
                          if ($E = getLogicEingangDataAll($id)) {
                              setLogicElementVar($id, 103, $E[11]['value']); // set loglevel to #VAR 103

                              LB_LBSID_logging($id, 'RFID Reader LBS started');

                              // Trigger EXEC daemon start
                              if ($E[1]['value'] != 0 && $E[1]['refresh'] == 1) {

                                  if (getLogicElementVar($id, 1) != 1) { // start EXEC daemon only once
                                      setLogicElementVar($id, 1, 1);
                                      $msg_queue_id = hexdec(uniqid());
                                      setLogicElementVar($id, 2, $msg_queue_id);
                                      callLogicFunctionExec(LBSID, $id);
                                      setLogicLinkAusgang($id, 1, 1);
                                  }

                                  // Trigger EXEC daemon stop
                              } else 
                                  if ($E[1]['value'] == 0 && $E[1]['refresh'] == 1) {
                                      if (getLogicElementVar($id, 1) != 0) { // stop EXEC daemon if running
                                          setLogicElementVar($id, 1, 0);
                                          $msg_queue_id = getLogicElementVar($id, 2);
                                          $msg_queue = msg_get_queue($msg_queue_id);
                                          msg_send($msg_queue, 1, array(
                                              "STOP",
                                              NULL
                                          ), true);
                                          setLogicLinkAusgang($id, 1, 0);
                                      }
                                  }

                              $cmd = array();
                              // handle inputs E4 - E7
                              if (getLogicElementVar($id, 1) == 1) { // if EXEC daemon is running
                                  if ($E[4]['value'] != '' && $E[4]['refresh'] == 1)
                                      $cmd = array(
                                          "MASTER",
                                          $E[4]['value']
                                      );
                                  if ($E[5]['value'] != '' && $E[5]['refresh'] == 1)
                                      $cmd = array(
                                          "ADD",
                                          $E[5]['value']
                                      );
                                  if ($E[6]['value'] != '' && $E[6]['refresh'] == 1)
                                      $cmd = array(
                                          "DEL",
                                          $E[6]['value']
                                      );
                                  if ($E[7]['value'] == 1 && $E[7]['refresh'] == 1)
                                      $cmd = array(
                                          "READ",
                                          NULL
                                      );
                                  if (count($cmd) == 2) {
                                      LB_LBSID_logging($id, 'Command sent to daemon: ' . $cmd[0] . ':' . $cmd[1]);
                                      // Send command via msg queue to EXEC daemon
                                      $msg_queue_id = getLogicElementVar($id, 2);
                                      $msg_queue = msg_get_queue($msg_queue_id);
                                      msg_send($msg_queue, 1, $cmd, true);
                                      unset($cmd);
                                  }
                              }
                              LB_LBSID_logging($id, 'RFID Reader LBS finished');
                          }
                      }

                      ?>
                      ###[/LBS]###


                      ###[EXEC]###
                      <?
                      require (dirname(__FILE__) . "/../../../../main/include/php/incl_lbsexec.php");

                      set_time_limit(0); // script runs as daemon

                      sql_connect();

                      function logging($id, $msg, $var = NULL, $priority = 8)
                      {
                          $E = getLogicEingangDataAll($id);
                          $logLevel = getLogicElementVar($id, 103);
                          if (is_int($priority) && $priority <= $logLevel && $priority > 0) {
                              $logLevelNames = array(
                                  'none',
                                  'emerg',
                                  'alert',
                                  'crit',
                                  'err',
                                  'warning',
                                  'notice',
                                  'info',
                                  'debug'
                              );
                              $version = getLogicElementVar($id, 100);
                              $lbsNo = getLogicElementVar($id, 101);
                              $logName = getLogicElementVar($id, 102) . '  ---  LBS' . $lbsNo;
                              strpos($_SERVER['SCRIPT_NAME'], $lbsNo) ? $scriptname = 'EXE' . $lbsNo : $scriptname = 'LBS' . $lbsNo;
                              writeToCustomLog($logName, str_pad($logLevelNames[$logLevel], 7), $scriptname . " [v$version]:\t" . $msg);
                              if (is_array($var))
                                  foreach ($var as $line)
                                      writeToCustomLog($logName, str_pad($logLevelNames[$logLevel], 7), $scriptname . " [v$version]:\t" . $line);
                              else {
                                  if (is_object($msg))
                                      $var = serialize($var);
                                  if (isset($var))
                                      writeToCustomLog($logName, str_pad($logLevelNames[$logLevel], 7), $scriptname . " [v$version]:\t" . $var);
                              }
                          }
                      }

                      $masterMode = false;
                      $masterStartTime = 0;

                      if ($E = getLogicEingangDataAll($id)) {
                          // read relevant inputs
                          $ip = $E[2]['value'];
                          $port = $E[3]['value'];
                          $master = $E[4]['value'];
                          $gracePeriod = $E[8]['value'];
                          $keyLength = intval($E[9]['value']);
                          $keyDelimiter = $E[10]['value'];
                          if ($keyDelimiter == '') {
                              $keyDelimiter = ' ';
                              logging($id, 'Delimiter SPACE');
                          }

                          logging($id, 'RFID reader daemon started');

                          createDB();
                          $rfid_tags = readTagsFromDB();
                          logging($id, 'Valid IDs:', $rfid_tags);

                          $sock = fsockopen($ip, $port); // open socket to ser2net / serial to ethernet converter
                          stream_set_blocking($sock, false);

                          $last_access_tag = "";
                          $last_access_time = 0;
                          $last_read_time = 0;

                          // Connect to msg queue
                          $msg_queue_id = getLogicElementVar($id, 2);
                          $msg_queue = msg_get_queue($msg_queue_id);

                          while (getSysInfo(1) && ! feof($sock)) { // main loop (will be left when EDOMI ends or STOP
                              usleep(5000);

                              // read next message if avaiable
                              if ($result = msg_receive($msg_queue, 1, $msgtype, 4096, $command, true, MSG_IPC_NOWAIT, $msg_error)) { // handle message received from LBS
                                  $cmd = $command[0];
                                  logging($id, 'Starting command execution: ' . $cmd);

                                  switch ($cmd) {
                                      case "STOP":
                                          // setLogicLinkAusgang($id,1,0);
                                          logging($id, 'Stopping RFID Reader daemon');
                                          break (2);
                                      case "READ":
                                          $list = '';
                                          foreach ($rfid_tags as $name => $key)
                                              $list .= "[[$name][$key]]";
                                          setLogicLinkAusgang($id, 7, $list);
                                          logging($id, 'RFID tag list: ' . $list);

                                          break;
                                      case "ADD":
                                          $key = $command[1];
                                          // add key to known keys if not exists
                                          if (array_search($key, $rfid_tags) === FALSE) {
                                              array_push($rfid_tags, $key);
                                              addTagToDB($key);
                                              logging($id, 'Added RFID tag: ' . $key);
                                          }
                                          break;
                                      case "DEL":
                                          $key = $command[1];
                                          if (array_search($key, $rfid_tags) !== FALSE) {
                                              unset($rfid_tags[array_search($key, $rfid_tags)]);
                                              deleteTagFromDB($key);
                                              logging($id, 'Deleted RFID tag: ' . $key);
                                          }
                                          break;
                                      case "MASTER":
                                          $key = $command[1];
                                          $master = $key;
                                          logging($id, 'New Master RFID tag defined: ' . $key);
                                          break;
                                      default:
                                          break;
                                  }
                              }
                              // read next char
                              $char = fgets($sock);
                      //        $char = fgetc($sock);
                              if ($char === FALSE) {
                                  usleep(5000);
                                  continue;
                              }
                              $data = $char;
                      //         else {
                      //             // remember read time
                                   $read_time = time();
                      //             if ($read_time - $last_read_time > 1) {
                      //                 $i = 0;
                      //                 $last_read_time = $read_time;
                      //             }

                      //             // continue loop until 12 chars have been read starting with an space char
                      //             $str[$i] = $char;
                      //             if ($str[0] != $keyDelimiter)
                      //                 continue;
                      //             $i = ($i + 1) % $keyLength;
                      //             if ($i != 0)
                      //                 continue;
                      //         }

                              // 12 chars have been read => start evaluation
                      //        $data = implode($str);
                              unset($key);
                              $key = trim($data);
                              logging($id, "RFID ID received (HEX/ASC): " . bin2hex($data) . " / " . $key);
                              setLogicLinkAusgang($id, 2, $key);
                              setLogicLinkAusgang($id, 3, $read_time);

                              unset($tag);

                              if ($key === $master) {
                                  // handle master event
                                  logging($id, "MASTER RFID ID recognized");
                                  if (! $masterMode) {
                                      // set master mode
                                      $masterMode = true;
                                      setLogicLinkAusgang($id, 1, 2);
                                      $masterStartTime = time();
                                      logging($id, "MASTER mode enabled");
                                  }
                              } elseif (array_search($key, $rfid_tags) !== FALSE) { // handle known tags
                                  $tag = array_search($key, $rfid_tags);
                                  if ($masterMode) {
                                      // delete tag from allowed tags
                                      unset($rfid_tags[array_search($key, $rfid_tags)]);
                                      deleteTagFromDB($key);
                                      $masterMode = false;
                                      $masterStartTime = 0;
                                      setLogicLinkAusgang($id, 1, 1);
                                      logging($id, 'Deleted tag: ' . $key);
                                      logging($id, 'Master Mode ended');
                                  } else {
                                      $access_time = time();
                                      if (($tag != $last_access_tag) || ($access_time - $last_access_time) > $gracePeriod) {
                                          $last_access_tag = $tag;
                                          $last_access_time = $access_time;
                                          setLogicLinkAusgang($id, 4, 1);
                                          setLogicLinkAusgang($id, 5, $key);
                                          setLogicLinkAusgang($id, 6, $access_time);
                                          logging($id, "Access granted to RFID key (Name/Key): " . $tag . '/' . $key);
                                      } else
                                          logging($id, "Duplicate Transponder ID received (Name/Key): " . $tag . '/' . $key);
                                  }
                              } else { // handle unknown tags
                                  if ($masterMode) { // add new tag to allowed tags
                                      array_push($rfid_tags, $key);
                                      addTagToDB($key);
                                      $masterMode = false;
                                      $masterStartTime = 0;
                                      setLogicLinkAusgang($id, 1, 1);
                                      logging($id, 'Added tag: ' . $key);
                                      logging($id, 'Master Mode ended');
                                  } else {
                                      logging($id, "Access DENIED to unknown RFID key: " . $key);
                                  }
                              }
                              if ($masterMode && (time() - $masterStartTime) > 10) {
                                  $masterMode = false;
                                  $masterStartTime = 0;
                                  setLogicLinkAusgang($id, 1, 1);
                                  logging($id, 'Master Mode ended due to timeout (10 seconds)');
                              }
                          }
                      }

                      function createDB()
                      {
                          global $id;
                          // connect to mysql server
                          $db = mysqli_connect('localhost', 'root', '');
                          if (mysqli_connect_errno()) {
                              setLogicLinkAusgang($id, 8, 1);
                              return false;
                          }

                          // create database
                          $query = "CREATE DATABASE IF NOT EXISTS RFID";
                          logging($id, 'Executing SQL Query: ' . $query);
                          mysqli_query($db, $query);

                          // select database
                          mysqli_select_db($db, 'RFID');

                          // create database table
                          $query = "CREATE TABLE IF NOT EXISTS  `tags` (" . "`no` INT(10) NOT NULL AUTO_INCREMENT COMMENT 'Number of Transponder'," . "`id` CHAR(10) NOT NULL COMMENT 'Unique transponder identifier'," . "`name` CHAR(255) NOT NULL DEFAULT '' COMMENT 'Transponder name'," . "`active` BIT(1) NOT NULL DEFAULT 1 COMMENT 'Active Transponder'," . "PRIMARY KEY (`id`), KEY `no` (`no`), KEY `name` (`name`)" . ") ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci;";
                          logging($id, 'Executing SQL Query: ' . $query);

                          // execute query
                          mysqli_query($db, $query);

                          // close connection
                          mysqli_close($db);
                      }

                      function addTagToDB($key)
                      {
                          global $id;
                          // connect to mysql server and select database
                          $db = mysqli_connect('localhost', 'root', '', 'RFID');
                          if (mysqli_connect_errno()) {
                              setLogicLinkAusgang($id, 8, 1);
                              return false;
                          }

                          // define Query
                          $query = "REPLACE INTO `tags` SET `id`= '" . $key . "', `active`=1;";
                          logging($id, 'Executing SQL Query: ' . $query);
                          // execute query
                          mysqli_query($db, $query);
                          // close connection
                          mysqli_close($db);
                      }

                      function deleteTagFromDB($key)
                      {
                          global $id;
                          // connect to mysql server and select database
                          $db = mysqli_connect('localhost', 'root', '', 'RFID');
                          // define query
                          $query = "DELETE IGNORE FROM `tags` WHERE `id`=`" . $key . "`;";
                          logging($id, 'Executing SQL Query: ' . $query);
                          // execute query
                          mysqli_query($db, $query);
                          // close connection
                          mysqli_close($db);
                      }

                      function readTagsFromDB()
                      {
                          global $id;
                          // connect to mysql server and select database
                          $db = mysqli_connect('localhost', 'root', '', 'RFID');
                          if (mysqli_connect_errno()) {
                              setLogicLinkAusgang($id, 8, 1);
                              return false;
                          }

                          // define query
                          $query = "SELECT * from tags;";
                          logging($id, 'Executing SQL Query: ' . $query);
                          // execute query
                          $result = mysqli_query($db, $query);
                          //
                          $rfid_tags = array();
                          if ($result) {
                              while ($row = mysqli_fetch_assoc($result)) {
                                  $no = $row['no'];
                                  $key = $row['id'];
                                  $name = $row['name'];
                                  $active = $row['active'];
                                  if ($active) {
                                      if ($name != '')
                                          $rfid_tags[$name] = $key;
                                      else
                                          $rfid_tags[$no] = $key;
                                  }
                              }
                          }
                          // close connection
                          mysqli_free_result($result);
                          mysqli_close($db);
                          return $rfid_tags;
                      }

                      msg_remove_queue($msg_queue);
                      sql_disconnect();

                      ?>
                      ###[/EXEC]###

                      Kommentar


                        #26
                        Jow, jetzt hat sich etwas getan. Das freut mich ja schon gewaltig!!!

                        5.png

                        Werde mir morgen nochmal die Anleitung nochmal versuchen zu verstehen.
                        http://www.priority1design.com.au/rfidrw-e-232.pdf
                        Da der Leser scheinbar nach einer Stromunterbrechung auf die zu lesende Einstellung welchen RFID Code er lesen soll eingestellt werden muss habe ich eventuell noch ein Problem....Schaue ich mir aber morgen mal an.

                        Kommentar


                          #27
                          Nur das "Select Tag Type" wird bei Stromunterbrechung zurückgesetzt. Das "Set Default Transponder" nicht.
                          D.h. wenn du einmal mit "Set Default Transponder" deinen Transpondertyp konfiguriert hast, müsste diese Einstellung erhalten bleiben.
                          War denn jetzt auf A2 ein richtiger 10 byte Code? Oder nur Datenmüll?

                          Kommentar


                            #28
                            Auf dem Anhänger steht der Code 010BC61A84 drauf
                            Die Zahlen kommen drin vor aber der gelesene Code scheint immer etwas verschoben zu sein.

                            Ich werde morgen weiter machen wenn ich die Augen auf bekommen (leider ne Bindehautentzündung), aber vieeeeelen Dank schonmal für deine Hilfe. Hoffe wir lesen und Morgen.

                            Kommentar


                              #29
                              Klar. Gute Besserung.

                              Kommentar


                                #30
                                jonofe

                                Gerade mal eine kleine Visuseite erstellt zur besseren Übersicht. Hatte gestern etwas an den Einstellungen vom NPort verstellt, deshalb verschob sich immer der Code um 1. Stelle. Jetzt mit der richtigen Einstellung funktioniert es mit dem RFID Anhänger perfekt.

                                6.png

                                Mal schauen wie es mit dem implantierten Chips klappt, die haben ja 15 Bytes und ich muß den Leser auf FDX-B umstellen.
                                Habe mir aber mal über Ebay Chips zum probieren bestellt. Muß ich ja eh haben zwecks Einbau der ganzen Geschichte in die Katzenklappe.

                                Wie muß ich überhaupt den Code Time verstehen bzw. umrechnen?

                                Ist es nur möglich über 3 Chips (Master, Add und Delete) die Codes in den LBS zu bekommen?

                                Kommentar

                                Lädt...
                                X