PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : lirc mit perl



baumgartner
15-04-2005, 10:50
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

baumgartner
20-04-2005, 12:31
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' );

xdr
09-06-2005, 17:36
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-

baumgartner
14-06-2005, 21:46
also den ganzen audioplayer findest du unter www.8ung.at/rap

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


# 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 :)

xdr
15-06-2005, 10:17
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

baumgartner
23-06-2005, 21:48
was willst du damit eigentlich machen??

mfg baumi

knallerbse
30-07-2005, 19:32
hi

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

baumgartner
01-08-2005, 09:25
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

pucki
24-11-2005, 17:14
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