Registervariable

Hallo,

ich brauche euere Hilfe.

Ich habe ein RFID-Leser an der Com-Schnittstelle, jetzt würde ich gerne den gelb makierten Wert ( Transponder ID) in eine Variable schreiben.

Ich habe hierzu eine Registervariable angelegt.

Aber wie greife ich jetz genau diesen String heraus bzw. wie ist das

das mit HEx oder Ascii oder Char.

Ich würde das gerne verstehen .:confused:

Ich kann auch noch gerne die Protokoll-Beschreibung posten.

Gruß JÜrgen

reg1.png

Ich bin schon mal einen grossen Schritt weiter:


$from_com=GetValueString("reg1");

echo GetValueString("reg1");
if ($from_com == "" )
{
return;
}

$TransId =substr("$from_com",5,10);
$UhrZeit =substr("$from_com",17,2).substr("$from_com",15,2);
$Jahr =substr("$from_com",23,2);
SetValueString("reg1","");
SetValueString("Transponder","$TransId");
//Echo "Zeit".$UhrZeit." Jahr ".$Jahr;

  SetValueString("reg1","");
  

        // Transponder Uhrzeit      Jahr  crc
  //99EM 2041A6010A   4204    8649 06    1F  99EM 2041A6010A 4204 8689 06 23
  //99EM 2041A6010A   4404    8649 06    21  99EM 2041A6010A 4404 8689 06 25

Jetzt habe ich folgendes Problem, wenn ich dieses Script manuell ausführe ist alles bestens. Wenn ich jedoch das Script mit der Registervariable ( „OnChange“ ) triggere wird meine Variable (Transponder) nicht mit dem richtigen Wert gefüllt.

Wo ist mein Fehler:confused:
Viele Grüsse Jürgen

So wie ich das sehe, hast du am Anfang und Ende Steuerzeichen (diese Kästchen in Debug Fenster). Wenn du mal Doppelt draufklickst, kannst du sehen welche es sind (in HEX). Dann kannst du diese im ComPort Modul als CutChars für LINKS und RECHTS eintragen. Dadurch wird dir immer der ganze String übergeben „99 EM … 0623“.

paresy

Wollte ich auch vorslagen, aber wegens zeitmängels kein bericht geschrieben.

Hallo paresy,

die Software und der Support ist genial…:slight_smile:

Danke, damit ist alles Okay.

Jürgen