Plug and Play Fernbedienung

  • Und was spricht dagegen eine Tastatur in die Form einer Fernbedienung zu packen und mit den passenden Keysignalen zu belegen so dass das System eben nur eine Tastatur sieht ? Sowas muss es doch eigentlich schon längst geben und das ist genau das was gesucht wird

    Klar gibt es die, hier wurden ja schon einige Beispiele benannt.


    Aber die Erwartung, dass dies besser und einfacher als andere Lösungen funktioniert, ist falsch. Auch wenn Viele das glauben.

    Was stimmt ist, dass es universeller ist. Einmal eingerichtet, kann man es irgendwo anstecken und geht. Aber eben mir den beschriebenen Nebenwirkungen.


    Wenn man die Nebenwirkungen durch Zusatzsoftware kompensiert, ist es aber nicht mehr universeller.


    Für einen perfekt funktionierenden Empfänger braucht man Zusatzsoftware.

    ootb geht nur mit Nebenwirkungen.

    Unkompliziert und optimal geht leider nicht zusammen.


    Und damit will ich gar nichts gegen die Tastaturfernbedienungsempfänger sagen.

    Nur gegen die falsche Erwartung.

  • Von optimalen Fernbedienungslösungen hab ich mich seit Abschied von der Activy leider auch verabschieden müssen. Der Empfänger war perfekt und wird auch noch von einigen genutzt. Sämtliche anderen Lösungen die ich seitdem getestet habe (die Anzahl ist sicher zweistellig) kommt nicht annähernd an den Komfort heran, aber man hat sich daran gewöhnt ;) Mit dem irmplircd geht es auch recht gut und wenigstens kann ich die FB noch nutzen :)

  • Wenn ich das richtig verstanden habe, dann verhält sich mein Projekt und das von jrie dann unterschiedlich.


    Während jrie bei jedem IR-Code ein "Press" und ein "Release" schickt warte ich ab ob weitere Codes kommen.

    Eine gedrückt gehaltene Taste erzeugt beim STM32-Projekt also mehrere Press/Release folgen während es bei mir genau ein "Press" und ein "Release" gibt.


    Wie aber löst du das mit den langen Tastendrücken? Solange du nicht gewartet hast ob ein weiterer Code kommt kannst du die Taste doch auch nicht loslassen, oder?

  • Während jrie bei jedem IR-Code ein "Press" und ein "Release" schickt warte ich ab ob weitere Codes kommen.

    Eine gedrückt gehaltene Taste erzeugt beim STM32-Projekt also mehrere Press/Release folgen während es bei mir genau ein "Press" und ein "Release" gibt.

    Nein. Bei mir ist das einstellbar.

    Wie aber löst du das mit den langen Tastendrücken? Solange du nicht gewartet hast ob ein weiterer Code kommt kannst du die Taste doch auch nicht loslassen, oder?

    Je nach dem wie der repeat_timeout eingestellt ist, ist das Verhalten unterschiedlich.

    Ohne Zusatzsoftware wird der repeat_timeout auf 15 ms eingestellt, dadurch sind alle Tastendrücke neu, und lange Tastendrücke gehen nicht (da der VDR keine langen Tastendrücke kennt, läßt sich der VDR damit perfekt bedienen).

    Mit Zusatzsoftware gehen auch die langen Tastendrücke (das ist für Kodi wichtig).

    stm32kbd2uinput filtert die weitergegebenen Tastendrücke auf User-Ebene, indem es sich zwischen Empfänger und uinput einklinkt. Das ist ein bisschen umständlich, funktioniert aber gut.

    Der Kernel Treiber macht das auf Kernel-Ebene, das finde ich eleganter und sauberer, aber dazu muss man mittels Kernelpatch selber den Treiber bauen (solange der Patch nicht aufgenommen wird).

    Für die Distributionen dürfte stm32kbd2uinput einfacher zu integrieren sein (außer wenn sie einen eigenen Kernel haben).


    Der Flirc hat das übrigens im Lauf der Zeit unterschiedlich gemacht.

  • Die wesentliche Frage ist aber wie deine "PC-Seitige Software" (sei es nun Kernel oder Usermode) das mit den langen Tastendrücken macht ohne dabei einen Nachlauf zu bekommen? Den müsstest du doch im Prinzip auch dort haben. Ein Tastendruck ist also auch dort mindestens so lang wie nötig um sicher zu wissen das die Taste der Fernbedienung losgelassen ist.

  • Ich bin gerade dabei, in der Ecke was zu fixen. Probleme können auftreten, wenn das Wiederhol-Intervall der Tastatur kleiner ist als die in cKbdRemote::ReadKey() fest verdrahteten 50ms, und eine durch einen langen Tastendruck ausgelöste Aktion (z.B. Scrollen im EPG-Menü mit "All events - all channels") etwas länger dauert. Es wird die Tage einen Fix dafür geben.


    Das vaapidevice-Plugin liefert immer nur "normale" Tastendrücke, weder Repeat noch Release. Auch dafür wird es bald einen Patch geben.


    Klaus

  • Die wesentliche Frage ist aber wie deine "PC-Seitige Software" (sei es nun Kernel oder Usermode) das mit den langen Tastendrücken macht ohne dabei einen Nachlauf zu bekommen?

    Der Sourcecode ist öffentlich ... Kannst du nachlesen.


    Den müsstest du doch im Prinzip auch dort haben.

    Nein. Erklär mal, wieso du das glaubst.


    Ein Tastendruck ist also auch dort mindestens so lang wie nötig um sicher zu wissen das die Taste der Fernbedienung losgelassen ist.

    Ja. Nur dass das keinen Nachlauf erzeugt.


    Die Zusatzsoftware stellt den Autorepeat ab, so dass der nicht dazwischen funkt.

    Bei normalen Tastaturen wird die Wiederholung nicht in der Tastatur sondern vom Autorepeat erzeugt. Nach Press kommen so lange Autorepeats bis zum Release.

    Bei einer Fernbedienung gibt es kein Autorepat, da sendet die Fernbedienung periodisch ein Signal. Das ist der entscheidende Unterschied.

    Wenn die Zusatzsoftware merkt, dass kein weiteres Signal kommt, macht sie einen Release.

    Und zwar ohne in der Zwischenzeit eine Wiederholung zu generieren.


    Man muss das einfach einmal sauber durchdenken.

    Tastaturen und Fernbedienungen funktionieren nach anderen Grundregeln.

    Und wenn ein Fernbedienungsempfänger sich als Tastatur ausgibt, muss man diese berücksichtigen.

  • Das gilt übrigens nicht nur für Tastaturfernbedienungsempfänger.

    Auch Software wie seahawk1986's lircd2uinput und lircd-uinput, die Fernbedienungen als Tastaturen anmelden, berücksichtigen das.


    (In lircd-uinput habe ich das eingebaut.)

  • Ich habe etwas Seltsames beobachtet:

    Wenn ich den X-Server mit der Option '-ar2 N' starte, dann beträgt die Zeit zwischen zwei generierten Repeat-Tastendruck-Events (bei gedrückt gehaltener Taste) nur dann immer N Millisekunden, wenn N 20, 40, 60 oder 80 ist. Für Werte von 10, 30, 50, 70 oder 90 sind die Abstände immer abwechselnd N+10 und N-10. Also z.B. für N=30 sind die Zeiten 20, 40, 20, 40, 20, 40...

    Im Mittel also schon 30, aber warum dieses Alternieren?

    Ist das normal? Das sieht irgendwie nach Bug aus...