FHEM Forum

FHEM - Hardware => Einplatinencomputer => Thema gestartet von: Holger S am 04 Mai 2014, 17:33:09

Titel: NFC UID an Perl übergeben
Beitrag von: Holger S am 04 Mai 2014, 17:33:09
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
Titel: Antw:NFC UID an Perl übergeben
Beitrag von: betateilchen am 04 Mai 2014, 17:45:31
my $nfcuid = qx(sudo /home/pi/card_polling/build/card_polling);
Titel: Antw:NFC UID an Perl übergeben
Beitrag von: Holger S am 04 Mai 2014, 19:07:59
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




Titel: Antw:NFC UID an Perl übergeben
Beitrag von: betateilchen am 04 Mai 2014, 19:44:44
klar, per telnet.
Titel: Antw:NFC UID an Perl übergeben
Beitrag von: Holger S am 04 Mai 2014, 21:31:19
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
Titel: Antw:NFC UID an Perl übergeben
Beitrag von: Holger S am 04 Mai 2014, 22:30:24
Problem erkannt:

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