[erledigt] LIRC+VDR es kommen zu viele Tastendrücke an

  • Hallo,


    VDR2.0.5 liefert mir von lirc zu viele Tastendrücke. Drücke ich wirklich nur kurz auf z.B. die "1" will VDR auf Kanal "111" oder gar "1111" umschalten.
    Zur Kontrolle habe ich dann ein zweites Programm zusätzlich zum VDR mit LIRCD verbunden, so dass ich beides gleichzeitig sehen kann.


    Das Kontrollprogramm meldet bei so einem kurzen Tastendruck auch nur einen Tastendruck:

    Code
    0000000000001781 00 KEY_1 hauppauge.conf


    Nur wenn ich die Taste deutlich länger drücke wiederholt LIRCD den Tastencode:

    Code
    0000000000001781 00 KEY_1 hauppauge.conf
    0000000000001781 01 KEY_1 hauppauge.conf
    0000000000001781 02 KEY_1 hauppauge.conf
    0000000000001781 03 KEY_1 hauppauge.conf
    u.s.w


    Frage: kann LIRCD auf unterschiedliche Weise ausgelesen werden, weil beide Programme nicht gleich reagieren?
    Kann das mit RcRepeatDelay RcRepeatDelta ausgeglichen werden? Das sollte sich doch aber erst auswirken wenn tatsächlich der Tastencode wiederholt wird.


    Gruß Sig

    EasyStream 0.6 Der VDR Streamingclient für Windows,Linux und MacOSX

    Einmal editiert, zuletzt von SigVDR ()

  • VDR2.0.5 liefert mir von lirc zu viele Tastendrücke.

    Beim VDR kommen zuviele Tasten-Codes an, der VDR liefert diese nicht, sondern reagiert nur darauf.


    Das Kontrollprogramm ...

    ist irw und absolut kein Geheimnis. Das zeigt Dir auch, das aus Lirc zuviele Tastencodes kommen.


    Aber LIRC ist nur noch bedingt der richtige Weg, seit geraumer Zeit ist "rc-core" das Ding für Remote Control und die Services inputlirc oder eventlirc, nicht mehr lircd.


    Erzähl mal was zu Deinem System, Basis-OS, Distro ...


    Regards
    fnu

    HowTo: APT pinning

  • Und Infos zu den Argumenten mit denen lircd gestartet wurde sind auch nicht verkehrt (nicht dass da -u bzw. --uinput oder sowas dabei ist):

    Code
    ps aux | grep lirc

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • An irw habe ich gar nicht mehr gedacht, das gibt es ja auch noch;

    Zitat

    Beim VDR kommen zuviele Tasten-Codes an

    Genau das ist nicht der Fall, auch irw zeigt mir (genau so wie mein Kontrollprogramm) nur einen Tastendruck wo VDR gleich 3 daraus macht.


    OS = Raspian


    Code
    ps aux | grep lirc
    root   	897  0.0  0.1   3636   708 ?    	Ss   17:23   0:00 /usr/sbin/lircd --driver=default --device=/dev/lirc0 --uinput


    Gruß Sig

    EasyStream 0.6 Der VDR Streamingclient für Windows,Linux und MacOSX

  • Code
    root   	897  0.0  0.1   3636   708 ?    	Ss   17:23   0:00 /usr/sbin/lircd --driver=default --device=/dev/lirc0 --uinput


    Also ist --uinput aktiv und damit füttert er ein Virtuelles Kernel Input Device, das zusätzlich Tastendrücke generiert - mit evtest solltest du sehen können, was das so von sich gibt.
    Bei yaVDR hatten wir das für die Vorabversionen der 0.4 auch genutzt, aber leider gibt es da ein merkwürdiges Prell-Verhalten bei den generierten Tastendrücken, daher habe ich für yaVDR lircd2uinput geschrieben, das die Tastendrücke brauchbar auf ein Kernel input device umsetzt.


    BTW:
    Wenn dein VDR sowohl vom tty als auch vom Lircd-Socket liest, wäre das auch noch eine mögliche Erklärung weshalb da mehrfache Tastendrücke ankommen.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • nur einen Tastendruck wo VDR gleich 3 daraus macht.

    Ok, jetzt hab ich Dein Problem verstanden.

    HowTo: APT pinning

  • Zitat

    Also ist --uinput aktiv und damit füttert er ein Virtuelles Kernel Input Device, das zusätzlich Tastendrücke generiert

    Ist das aber nicht auf dem Weg von "Hardware" zu lirc? Der ist bei mir doch in Ordnung!

    Zitat

    Wenn dein VDR sowohl vom tty als auch vom Lircd-Socket liest,

    VDR liest von Keybord und Lirc, wo ist da die mögliche Fehlerquelle?


    Gruß Sig

    EasyStream 0.6 Der VDR Streamingclient für Windows,Linux und MacOSX

  • Halt stop: habs nochmal gelesen:

    Zitat

    Also ist --uinput aktiv und damit füttert er ein Virtuelles Kernel Input Device, das zusätzlich Tastendrücke generiert

    Das kommt also möglicherweise über "Tastatur" nochmal in den VDR?

    EasyStream 0.6 Der VDR Streamingclient für Windows,Linux und MacOSX

  • Ist das aber nicht auf dem Weg von "Hardware" zu lirc? Der ist bei mir doch in Ordnung!

    Nein, der Lirc-Daemon generiert dann nochmal extra Tastendrücke, siehe Manpage:

    On Linux systems the --uinput option will enable automatic generation of Linux input events. lircd will open /dev/input/uinput and inject key events to the Linux kernel. The key code depends on the name that was given a button in the lircd config file, e.g. if the button is named KEY_1, the '1' key code will be generated. You will find a complete list of possible button names in /usr/include/linux/input.h.


    Das kommt also möglicherweise über "Tastatur" nochmal in den VDR?


    Genau.


    Die Frage ist eigentlich, ob du lircd überhaupt mit --uinput starten willst - der VDR und XBMC können ja vom ganz normalen Lircd-Sockel lesen.

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

  • Zitat

    Aber LIRC ist nur noch bedingt der richtige Weg, seit geraumer Zeit ist
    "rc-core" das Ding für Remote Control und die Services inputlirc oder
    eventlirc, nicht mehr lircd.

    Das läuft dann aber noch über die lirc Schnittstelle vom VDR also z.B. über /var/run/lirc/lircd oder gibt das dann ein "rc-core" VDR-Plugin?


    Gruß Sig

    EasyStream 0.6 Der VDR Streamingclient für Windows,Linux und MacOSX

  • SigVDR


    Ja, läuft weiterhin über diesen Socket, daran ändert sich nichts. Irgendwo wird definiert was durch diesen am VDR ankommt und dieser reagiert per remote.conf dann drauf.


    Das vor dem Socket hat sich geändert, welche Kernelmodule, wie antworten und wo diese gemappt werden, alles Event-basiert. Man muß z.B. keine lircd.conf mehr anlernen und könnte theoretisch mit null Konfigurationsaufwand die FBs zum laufen bewegen. Praktisch liegt der Teufel wie immer im Detail ...


    inputlirc haben vmtl. alle Linux-Distros an Board, eventlirc bietet eine paar AddOns dazu, ist aber nicht Standard.


    Regards
    fnu

    HowTo: APT pinning

    Einmal editiert, zuletzt von fnu ()

  • Um welchen Empfänger geht es denn konkret? Es gibt ja immer noch reine Lirc-Empfänger (z-B- lirc_rpi, yaUsbIR, der kommende Atric IR-WakeupUSB) - es macht die Entwicklung halt ein bisschen einfacher wenn man bestehende Treiber und Decoder nutzen kann oder einen Userspace-Treiber für USB-Geräte baut als gleich ein neues Modul in den Kernel zu bringen...


    Bei den aktuellen Lirc Debian-Paketen sollte es wie bei Ubuntu auch nur noch Userspace-Treiber geben (und der Kernel bringt noch für ein paar Empfänger Lirc-Treibermodule mit):

    Zitat von debian/rules vom lircd-Paket
    Code
    configure_flags := \
    		--prefix=/usr \
    		--mandir=\$${prefix}/share/man \
    		--infodir=\$${prefix}/share/info \
    		--libdir=\$${prefix}/lib \
    		--sysconfdir=/etc/lirc/ \
    		--with-driver=userspace \
    		--with-syslog=LOG_DAEMON \
    		--enable-sandboxed \
    		--build=$(DEB_BUILD_GNU_TYPE)

    yaVDR-Dokumentation (Ceterum censeo enchiridia esse lectitanda.)

    Einmal editiert, zuletzt von seahawk1986 ()

  • Dieses Problem hatte ich mit einem IR Empfänger (TSOP) direkt am GPIO des Raspberry und damit lirc_rpi.
    Ein USB Receiver am Raspberry macht wenig Sinn.


    Die Frage nach der Weiterverwendung der LIRC Schnittstele bezog sich dann auf meine Standard VDR Geräte, an denen eine Eigenbau USB Gerät als Empfänger läuft, ohne LIRC aber über die LIRC Schnittstelle des VDR.



    Gruß Sig

    EasyStream 0.6 Der VDR Streamingclient für Windows,Linux und MacOSX

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!