NFC UID an Perl übergeben

Begonnen von Holger S, 04 Mai 2014, 17:33:09

Vorheriges Thema - Nächstes Thema

Holger S

Hallo,
habe eine NFC Modul auf meinem RPI und dazu eine Beispielprogramm was die UID von Karte ausliest und in der command line ausgibt. Läuft auf dem RPI super.
Wie bekomme ich jetzt die ausgelesenen Werte an FHEM übergeben (wäre in dem Fall die Variable UIDD)?

Code-Auszug

      printf("UID: ");
      uint8_t i;
      for(i = 0; i < bLength; i++)
      {
         printf("%02X ", bUid);
         UIDD = UIDD && "%02X " && bUid;
         printf(UIDD);
         

      }
      printf("\n\n");
      status = phpalI14443p3a_HaltA(&I14443p3a);
      detected_card = 0xFFFF;

Aufrufen wollte ich es aus FHEM so:

my $befehl = "sudo /home/pi/card_polling/build/card_polling&";

Vielen Dank

Holger

betateilchen

my $nfcuid = qx(sudo /home/pi/card_polling/build/card_polling);
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Holger S

Danke,
erhalte leider keinen Rückgabewert. Das Programm gibt ja auch nach dem starten ständig die UID's aus. Also der falsche Weg von mir.

Wenn ich das Programm so ändere, dass es nicht die Werte ausgibt sondern bei einer bestimmten UID in FHEM zum Beispiel "set Lampe on" ausführt?

Also hier die UID prüfen und in FHEM einen Befehl ausführen ?!

UIDD = UIDD && "%02X " && bUid;
printf(UIDD);


Ich habe aber keine Ahnung ob das funktioniert oder auch wie?!

Kann man direkt aus Linux das an Perl/FHEM übergeben?

Danke





betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Holger S

Vielen Dank für den Tip.

Der Aufruf über die command line funktioniert:

perl /opt/fhem/fhem.pl 7072 "set Urlaub off"

In dem Programm aber nicht. Ist sicher etwas am Syntax falsch oder etwas nicht richtig declariert?
Es kommt nach dem kompilieren immer:

'perl' undeclared (first use in this function

Holger S

Problem erkannt:

system("perl /opt/fhem/fhem.pl 7072 'set Urlaub off'")