Anzeige:
Ergebnis 1 bis 9 von 9

Thema: lirc mit perl

  1. #1
    Registrierter Benutzer
    Registriert seit
    15.04.2005
    Beiträge
    105

    Question lirc mit perl

    hallo ich bin der neue,:)
    und hab gleich mal eine frage

    folgendes: wie kann ich mit perl den eingegebenen tastendruck von lirc erfahren, um diesen in einem script zu verwenden; lirc-perl.sourceforge.net hat mir auch net geholfen??
    mit googeln und SuFu hab i leider nichts gefunden

  2. #2
    Registrierter Benutzer
    Registriert seit
    15.04.2005
    Beiträge
    105
    hallo

    hab schon die lösung, und zwar muss man eine socketverbindung mit der gerätedatei /dev/lircd herstellen.

    my $socket = new IO::Socket::UNIX( '/dev/lircd' );

  3. #3
    xdr
    Gast

    Brauche Informationen zum Thema Lirc mit Perl...

    Hallo baumgartner
    Ich bin verzweifelt auf der Suche nach Informationen zum Thema Lirc/Perl. Leider lässt sich per Google nicht wirklich viel finden. Wie hast du es genau geschafft, dass bei laufendem Lirc die Fernbedienungssignale in einem Perl-Script abgefangen werden können?
    Bin gespannt auf deine Antworten...
    -xdr-

  4. #4
    Registrierter Benutzer
    Registriert seit
    15.04.2005
    Beiträge
    105
    also den ganzen audioplayer findest du unter www.8ung.at/rap

    also man muss einfach nur ne socketverbindung mit dem lirc deviece herstellen

    Code:
    # stellt eine socketverbindung mit /dev/lircd her
        # bei einem tastendruck wird folgendes zurückgegeben 
        # 0000000000001020 00 CH+ Hauppauge
        # 0000000000001020 01 CH+ Hauppauge
        # 0000000000001020 02 CH+ Hauppauge
        # 0000000000001020 03 CH+ Hauppauge
        # 0000000000001020 04 CH+ Hauppauge
        # (natürlich zeile für zeile)
        
        # /^\w*\s+(\w*)\s+(\w*[+-]{0,1})/
        # $1 wird hier zum ersten klammernausdruck somit 00 01 02 03   
        #(wiederholrate ist hexadezimal
        # und $2 wird zu der eingegebenen taste -->CH+
        # es wird nur jeder einzelner Tastendruck verarbeitet 
    
    
        $socket = new IO::Socket::UNIX( '/dev/lircd' );
     
        while (1) {
          $| = 1;
          $data= <$socket>;
          $data =~ /^\w*\s+(\w*)\s+(\w*[+-]{0,1})/;
    
          $wh=hex($1);
          if ($wh == 0){      #es wird nur der erste tastendruck ausgewertet
            print  "$2\n";   #sprich "dauerfeuer" ist abgeschalten
          }
        }
    Noch Fragen??

    mfg baumi

    ps: daran bin ich auch lange gesessen lol
    sorry dass so lang gedauert hat, war das wochenende am novarock :)
    Geändert von baumgartner (14-06-2005 um 21:54 Uhr)

  5. #5
    xdr
    Gast
    Vielen Dank! Das ist genau das was ich gesucht habe.
    Ich hatte es mit dem Lirc::Client auch geschafft, aber deine Lösung ist wesentlich komfortabler...
    Ciao, Alex

  6. #6
    Registrierter Benutzer
    Registriert seit
    15.04.2005
    Beiträge
    105
    was willst du damit eigentlich machen??

    mfg baumi

  7. #7
    Registrierter Benutzer
    Registriert seit
    21.06.2003
    Ort
    Kulmbach
    Beiträge
    19

    auhc fuer c?

    hi

    im prinzip will ich genau das gleiche, nur fuer c/c++
    kennt jemand ne lib dafuer?
    mfg Knallerbse
    registered Linux user #296907

  8. #8
    Registrierter Benutzer
    Registriert seit
    15.04.2005
    Beiträge
    105
    da bruachst keine eigene lib sondern du musst nur eine socketverbindung mit /dev/lircd herstellen. alles klar???

    such mal unter dem stichwort socketverbindung, bei c wird das glaube ich auch als datei zur kommunikation genannt oda sowas

    mfg

  9. #9
    Registrierter Benutzer
    Registriert seit
    27.07.2000
    Beiträge
    123
    Zitat Zitat von knallerbse
    hi

    im prinzip will ich genau das gleiche, nur fuer c/c++
    kennt jemand ne lib dafuer?

    mmh unter c findest du die header in socket.h
    anleitungen zur socket programmierung findest du auch online ... dann hast du die qual der wahl ;-)
    für c++ habe ich auch mal irgendwo code gefunden. nur nicht auf anhieb verstanden.
    oder du steigst in qt ein, die haben ihre eigenen libs .. auch eine qsocket ...
    das tu ich mir gerade an, da mein prof ne oberfläche mit qt sehen möchte ....

    gruesse

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •