3S design GmbH

Technik

Software Treiber (jetzt auch für Linux)

Die Lesemodule lassen sich auch als "dumme" Terminals betreiben. Sie senden dann die ID jedes detektierten Transponders über dem Bus zum PC der dann entscheidet ob das Relais zu betätigen ist. Die eingebaute Entscheidungslogi des Lesemoduls ist dabei völlig abgeschaltet, es folgt nur noch den Befehlen die via Bus eintreffen.

Damit lassen sich schnell selbstgeschneiderte Anwendungen (in C, Pascal, Basic, Perl etc) erstellen. Sie rufen in Ihrer Software Funktionen unserer TermTalk.dll auf, die die gesamte Kommunikation übernimmt und erhalten somit in kurzer Zeit  eine lauffähige Lösung ohne sich um viele kleine Details kümmern zu müssen.

Egal, ob tausend oder nur zwei Lesemodule, die gleichzeitig am lokalen Bus oder an Bussen mit Ethernet Adaptern angeschlossen sind, alle werden über eine einzige TermTalk.dll angesprochen

Noch schneller & eleganter geht's mit der Scriptsprache Perl, die ihrerseits die DLL einsetzt. Mit wenigen Zeilen haben Sie Ihre Anwendungen fertig.

Perl-Beispiel: Transponder-1 betätigt Relais-1,  Transponder-2 betätigt Relais-2

while (1)

{

#--- warte auf Transponder-ID von irgendeinem Lesemodul

$getXpID->Call($FromAdr, $terminalType, $state, $XpCount, $XpIDs, $ZusatzInfo);

$XpID1 = substr($XpIDs, 0, 8);

($XpID)= unpack( 'H*', $XpID1 );

$Msg="";

$Msg= $RELAIS1_EIN if ($XpID eq "000000000073bbad");  #--- Transponder-1

$Msg= $RELAIS2_EIN if ($XpID eq "0000000000826593");  #--- Transponder-2

if ($Msg){

  $SendMsg->Call(chr(ord($FromAdr)), substr($FromAdr,1), 'O', $Msg, chr(1)) or die "Fehler\n";

}

last if ($XpID eq "000000000073bc50"); #--- beende mit Transponder-3

}

 

Linux-Beispiel in C: Transponder-1 betätigt Relais-1,  Transponder-2 betätigt Relais-2

while (1)

{

//--- warte auf Transponder-ID von irgendeinem Lesemodul

getXpID(adr, &terminalType, &state, &XpCount, XpIDs, ZusatzInfo);

sprintf(XpID, "%02X%02X%02X%02X%02X%02X%02X%02X", XpIDs[0], XpIDs[1], XpIDs[2], XpIDs[3],XpIDs[4],  XpIDs[5], XpIDs[6], XpIDs[7]);

 

if(strcasecmp(XpID, "000000000073BBAD") == 0)   //--- Transponder-1

SendMsg(RelaisAdr, RelaisIpAdr, 'O', "1", 1);

 

if(strcasecmp(XpID, "0000000000826593") == 0)   //--- Transponder-2

SendMsg(RelaisAdr, RelaisIpAdr, 'O', "2", 1);

 

if(strcasecmp(XpID, "000000000073bc50") == 0)   //--- beende mit Transponder-3

break;

}

 

Linux benutzt statt TermTalk.dll die libtermtalk, (als 32- / 64-Bit und AVR32-Variante )

Die Linux Variante libtermtalk können Sie kostenfrei bei der Lesemodul-Bestellung mitbestellen.

TermTalk.dll bzw. libtermtalk kann nicht die Lesemodule für den autarken Normalbetrieb programmieren. Dazu dient das Paket Keymanager