Touchtft-plugin

Aus VDR Wiki
(Unterschied zwischen Versionen)
Wechseln zu: Navigation, Suche
(Links)
 
(35 dazwischenliegende Versionen von 14 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 
==Beschreibung==
 
==Beschreibung==
'''Autor(en):'''
+
'''Autoren:''' Frank Simon, Joerg Wendel, Lars von Wedel
  
 +
Bei diesem Plugin handelt es sich um eine Ergänzung des [[Graphtft-plugin|graphTFT-Plugins bis Version 0.2.x]] um eine TouchTFT-Schnittstelle für den eGalax-{{wikipedia|Touchscreen}}. Dieser ist unter anderem verbaut im TM868 (erhältlich bei Pollin). Da die Schnittstelle auf eine event aufgesetzt ist, sollte es aber auch mit anderen Eingabegeräten funktionieren.
 +
 +
Das Plugin wird gemeinsam mit [[Graphtft-plugin|graphTFT-Plugin]] bis Version 0.2.x eingesetzt, welches über ein [[Framebuffer]]-Device die passenden grafischen Informationen ausgibt.
 +
 +
'''Ab der graphTFT Version 0.3.0 verfügt das [[Graphtft-plugin|graphTFT-Plugin]] über eine eigene Touchscreen-Schnittstelle. In der Kombination mit graphTFT >= 0.3.0 wird das touchTFT Plugin nicht mehr benötigt.'''
 +
===Status===
 +
Veraltet.
 +
==Funktionsweise==
 +
Das Plugin instanziiert einen Thread, welcher einen event-device (/dev/input/eventX) öffnet und dort auf Ereignisse wartet. Handelt es sich um einen Touch-Event, so wird ein Touchereignis an einen beliebigen Empfänger mittels der SERVICE-Schnittstelle gesendet. Der Empfänger der Events muss dann für die korrekte Umsetzung der Events sorgen. Dies geschieht hier im [[Graphtft-plugin|graphTFT-Plugin]]. Ab Version 0.0.14c enthält dieses eine entsprechende Gegenstelle als SERVICE-Schnittstelle.
 +
 +
Der Touchscreen-Event beinhaltet immer Koordinaten und Touch-Ereignis in Form von zwei Events. Sind die Events komplett, kommt ein SYNC-Signal im Gerät an und der cTouchDriver::Action setzt das Ereignis über die Methode ProcessInputEvent ab. Dort wird das Signal entprellt und an das Plugin in Person des cTouchScreenEnhancer weitergegeben. Dieser skaliert den Event um und sendet das Ereignis über die Serviceschnittstelle an das [[Graphtft-plugin|graphTFT-Plugin]].
 +
 +
Das [[Graphtft-plugin|graphTFT-Plugin]] wiederum kann im Theme jedes Objekt mit einem Key belegen entsprechend der Remote-Befehle. Empfängt das [[Graphtft-plugin|graphTFT-Plugin]] ein Touchereignis und findet ein Objekt mit einem hinterlegten Key (z.B. POWER), wird der key als cRemote::Put() abgesetzt, als käme er von der Fernbedienung.
 
==Bilder==
 
==Bilder==
 +
Theme: Blue
 
{|
 
{|
|[[Bild:touchtft-plugin-00.jpg|thumb|none|''kurze beschreibung'']]
+
|[[Bild:touchtft-plugin-00.jpg|thumb|none|''Bild 1'']]
|[[Bild:touchtft-plugin-01.jpg|thumb|none|''kurze beschreibung'']]
+
|[[Bild:touchtft-plugin-01.jpg|thumb|none|''Bild 2'']]
 +
|[[Bild:touchtft-plugin-02.jpg|thumb|none|''Bild 3'']]
 +
|[[Bild:touchtft-plugin-03.jpg|thumb|none|''Bild 4'']]
 +
|}
 +
Theme DeepBlueTouch 0.0.1 auf Basis von DeepBlue 0.0.5
 +
{|
 +
|[[Bild:touchtft-plugin-tv.png|thumb|none|''Normal TV'']]
 +
|[[Bild:touchtft-plugin-menu.png|thumb|none|''Menu'']]
 +
|[[Bild:touchtft-plugin-schedule.png|thumb|none|''Schedule'']]
 +
|[[Bild:touchtft-plugin-replay.png|thumb|none|''Replay'']]
 +
|}
 +
{|
 +
|[[Bild:touchtft-plugin-dvd.png|thumb|none|''DVD'']]
 +
|[[Bild:touchtft-plugin-sysinfo.png|thumb|none|''Sysinfo'']]
 +
|[[Bild:touchtft-plugin-clock.png|thumb|none|''Clock'']]
 +
|[[Bild:touchtft-plugin-osd.jpg|thumb|none|''OSD'']]
 
|}
 
|}
 +
 +
<!-- ==Bedienung== -->
 +
<!-- ===[[SVDRP]] Befehle=== -->
  
 
==Hardwareanforderungen==
 
==Hardwareanforderungen==
 
* {{wikipedia|TFT-Display}} mit {{wikipedia|Touchscreen}}
 
* {{wikipedia|TFT-Display}} mit {{wikipedia|Touchscreen}}
 +
Das in den Bildern 1 bis 4 abgebildete TFT-Display gibt es z. B. bei Pollin Elektronic unter der Best. Nr. 600 080. http://www.pollin.de
  
 
==Softwareanforderungen==
 
==Softwareanforderungen==
 
* {{wikipedia|FFmpeg}}
 
* {{wikipedia|FFmpeg}}
 
* imlib2
 
* imlib2
* fonts (vera)
+
* [[Graphtft-plugin|graphTFT-Plugin]] in Version 0.0.14c oder höher bis max. Version 0.2.x
 
+
==Installation==
+
===Source===
+
<pre>
+
cd $SOURCEDIR
+
tar xvzf imlib2-<VERSION>.tar.gz
+
cd imlib2-<VERSION>
+
./configure --prefix=/usr/local
+
make
+
make install
+
ldconfig
+
cd -
+
 
+
tar xvzf ffmpeg-<VERSION>.tar.gz
+
ln -s ffmpeg-<VERSION> ffmpeg
+
cd ffmpeg
+
./configure --prefix=/usr/local \
+
            --enable-shared
+
make
+
make install
+
ldconfig
+
</pre>
+
 
+
===[[Arch-Linux]]===
+
pacman -S imlib2 ffmpeg
+
 
+
===[[Crux]]===
+
prt-get depinst imlib2 ffmpeg
+
 
+
===[[Debian]]===
+
Quelle: http://www.vdrwiki.com/index.php/M%C3%B3dulo_osdpip
+
apt-get install libimlib2-dev ffmpeg libavcodeccvs libavcodeccvs-dev
+
 
+
===[[Gentoo]]===
+
emerge a52dec imlib2 ffmpeg
+
 
+
===[[SuSE]]===
+
yast -i imlib2-devel <BITTE ERGÄNZEN>
+
 
+
<!-- ==Optionen== -->
+
<!-- ==Patches== -->
+
 
+
 
==Konfiguration==
 
==Konfiguration==
Das Plugin benötigt Fonts, laut README -> Vera.ttf
+
cp -r $SOURCEDIR/VDR/PLUGINS/src/touchtft/touchTFT $VDRCONFIG/plugins
  
mkdir -p [[Struktur|$VDRCONFIG]]/plugins/touchTFT/fonts
+
Der eGalax-Treiber muss im Kernel zugeschaltet werden (als Modul reicht) falls nicht bereits vorhanden wie in z.B. x-vdr.<br>
locate Vera.ttf
+
Dazu muss ggf. (abhänging von der verwendeten Distribution) der Kernel neu übersetzt werden.<br>
  /usr/X11R6/lib/X11/fonts/truetype/Vera.ttf
+
Auszug aus der .config:
  cp /usr/X11R6/lib/X11/fonts/truetype/Vera.ttf [[Struktur|$VDRCONFIG]]/plugins/touchTFT/fonts
+
#
 +
# USB HID Boot Protocol drivers
 +
#
 +
  ...
 +
  CONFIG_USB_TOUCHSCREEN=m
 +
CONFIG_USB_TOUCHSCREEN_EGALAX=y
 +
...
  
Findet Ihr mit dem Suchtool (locate) keine Fonts auf dem System, kann man sie auch nachinstallieren.
+
Folgende Kernelmodule müssen letzendlich vorhanden sein und sich mittels modprobe laden lassen:
 +
modprobe evdev
 +
modprobe touchkitusb
  
Debian -> apt-get install bitstream-vera
+
Ermitteln des entsprechenden events des Touchscreens wenn per USB angeschlossen.<br>
SuSE  -> yast -i bitstream-vera
+
Die Zeile H: Handlers=event4 ist wichtig und ergibt dann den benötigten Pfad wie z.B. "/dev/input/event4"<br>
  Gentoo -> emerge ttf-bitstream-vera
+
Als Name schaut man nach z.B. N: Name="eGalax Inc."
 +
  cat /proc/bus/input/devices
 +
...
 +
I: Bus=0003 Vendor=0eef Product=0001 Version=0100
 +
N: Name="eGalax Inc."
 +
P: Phys=/input0
 +
S: Sysfs=/class/input/input10
 +
H: Handlers=event4
 +
B: EV=b
 +
B: KEY=400 0 0 0 0 0 0 0 0 0 0
 +
B: ABS=3
 +
...
  
Oder mal google bemühen... danach die Schritte oben erneut ausführen.
+
<!-- ===Einstellungen=== -->
 
+
===Parameter===
Zu den Themes, diese sind unterhalb von '''[[struktur|../plugins/touchTFT/themes]]''' zu entpacken.
+
{| class="wikitable"
 
+
|-
mkdir -p [[Struktur|$VDRCONFIG]]/plugins/touchTFT/themes
+
tar jxvf /wo/auch/immer/standart-theme-<VERSION>.tar.bz2 -C [[Struktur|$VDRCONFIG]]/plugins/touchTFT/themes
+
 
+
<!-- ==Einstellungen== -->
+
 
+
==Parameter==
+
{| border=1 cellpadding=2 cellspacing=0
+
|- bgcolor=#efefef
+
 
!Parameter (kurz)
 
!Parameter (kurz)
 
!Parameter (lang)
 
!Parameter (lang)
 
!Beschreibung
 
!Beschreibung
 
|-
 
|-
| -d DEV || --device=DEV || sets the device i.e.: '''/dev/fb0''' or for VDR-Dev.:  '''vdr/1'''
+
| -d ''<DEV>'' || --device=''<DEV>'' || Gerätedatei z.B.: ''/dev/fb0'' oder für VDR-Dev.:  ''vdr/1''
 
|}
 
|}
 +
==Sonstiges==
 +
Testen ob der Touchscreen und die Treiber erfolgreich funktionieren:
 +
evtest /dev/input/event4
 +
<!-- ===Probleme=== -->
 +
===Tipps===
 +
Sollten die Treiber geladen sein aber der Test dennoch fehlschlagen, dann kann es helfen, einen anderen USB-Port zu probieren.
 +
<!-- ===Wunschliste=== -->
 +
<!-- ===Snapshot=== -->
  
<!-- ==Bedienung== -->
+
===Aktuelle Version===
<!-- ==[[SVDRP]] Befehle== -->
+
[http://www.striderai.de/vdr/vdrdown.php/vdr-touchtft-0.0.4.tar.gz 0.0.4]
<!-- ==Probleme== -->
+
===Links===
<!-- ==Tipps== -->
+
<!-- ==Wunschliste== -->
+
<!-- ==Snapshot== -->
+
 
+
==Links==
+
# [http://enlightenment.org Imlib2]
+
# {{wikipedia|FFmpeg}}
+
# [http://home.arcor.de/franksimonbs Homepage des Plugins]
+
 
# {{spiegel 1|vdr-touchtft}}
 
# {{spiegel 1|vdr-touchtft}}
# {{spiegel 2|vdr-touchtft}}
+
# [http://www.striderai.de/vdr/ Spiegel 2]
  
[[Kategorie:Plugins]]
+
[[Kategorie:Veraltete Plugins]]
 
[[Kategorie:Externe Anzeige]]
 
[[Kategorie:Externe Anzeige]]
 
{{i18n|touchtft-plugin}}
 
{{i18n|touchtft-plugin}}

Aktuelle Version vom 4. August 2013, 19:05 Uhr

Inhaltsverzeichnis

[Bearbeiten] Beschreibung

Autoren: Frank Simon, Joerg Wendel, Lars von Wedel

Bei diesem Plugin handelt es sich um eine Ergänzung des graphTFT-Plugins bis Version 0.2.x um eine TouchTFT-Schnittstelle für den eGalax-Touchscreen. Dieser ist unter anderem verbaut im TM868 (erhältlich bei Pollin). Da die Schnittstelle auf eine event aufgesetzt ist, sollte es aber auch mit anderen Eingabegeräten funktionieren.

Das Plugin wird gemeinsam mit graphTFT-Plugin bis Version 0.2.x eingesetzt, welches über ein Framebuffer-Device die passenden grafischen Informationen ausgibt.

Ab der graphTFT Version 0.3.0 verfügt das graphTFT-Plugin über eine eigene Touchscreen-Schnittstelle. In der Kombination mit graphTFT >= 0.3.0 wird das touchTFT Plugin nicht mehr benötigt.

[Bearbeiten] Status

Veraltet.

[Bearbeiten] Funktionsweise

Das Plugin instanziiert einen Thread, welcher einen event-device (/dev/input/eventX) öffnet und dort auf Ereignisse wartet. Handelt es sich um einen Touch-Event, so wird ein Touchereignis an einen beliebigen Empfänger mittels der SERVICE-Schnittstelle gesendet. Der Empfänger der Events muss dann für die korrekte Umsetzung der Events sorgen. Dies geschieht hier im graphTFT-Plugin. Ab Version 0.0.14c enthält dieses eine entsprechende Gegenstelle als SERVICE-Schnittstelle.

Der Touchscreen-Event beinhaltet immer Koordinaten und Touch-Ereignis in Form von zwei Events. Sind die Events komplett, kommt ein SYNC-Signal im Gerät an und der cTouchDriver::Action setzt das Ereignis über die Methode ProcessInputEvent ab. Dort wird das Signal entprellt und an das Plugin in Person des cTouchScreenEnhancer weitergegeben. Dieser skaliert den Event um und sendet das Ereignis über die Serviceschnittstelle an das graphTFT-Plugin.

Das graphTFT-Plugin wiederum kann im Theme jedes Objekt mit einem Key belegen entsprechend der Remote-Befehle. Empfängt das graphTFT-Plugin ein Touchereignis und findet ein Objekt mit einem hinterlegten Key (z.B. POWER), wird der key als cRemote::Put() abgesetzt, als käme er von der Fernbedienung.

[Bearbeiten] Bilder

Theme: Blue

Bild 1
Bild 2
Bild 3
Bild 4

Theme DeepBlueTouch 0.0.1 auf Basis von DeepBlue 0.0.5

Normal TV
Menu
Schedule
Replay
DVD
Sysinfo
Clock
OSD


[Bearbeiten] Hardwareanforderungen

Das in den Bildern 1 bis 4 abgebildete TFT-Display gibt es z. B. bei Pollin Elektronic unter der Best. Nr. 600 080. http://www.pollin.de

[Bearbeiten] Softwareanforderungen

[Bearbeiten] Konfiguration

cp -r $SOURCEDIR/VDR/PLUGINS/src/touchtft/touchTFT $VDRCONFIG/plugins

Der eGalax-Treiber muss im Kernel zugeschaltet werden (als Modul reicht) falls nicht bereits vorhanden wie in z.B. x-vdr.
Dazu muss ggf. (abhänging von der verwendeten Distribution) der Kernel neu übersetzt werden.
Auszug aus der .config:

#
# USB HID Boot Protocol drivers
#
...
CONFIG_USB_TOUCHSCREEN=m
CONFIG_USB_TOUCHSCREEN_EGALAX=y
...

Folgende Kernelmodule müssen letzendlich vorhanden sein und sich mittels modprobe laden lassen:

modprobe evdev
modprobe touchkitusb

Ermitteln des entsprechenden events des Touchscreens wenn per USB angeschlossen.
Die Zeile H: Handlers=event4 ist wichtig und ergibt dann den benötigten Pfad wie z.B. "/dev/input/event4"
Als Name schaut man nach z.B. N: Name="eGalax Inc."

cat /proc/bus/input/devices
...
I: Bus=0003 Vendor=0eef Product=0001 Version=0100
N: Name="eGalax Inc."
P: Phys=/input0
S: Sysfs=/class/input/input10
H: Handlers=event4 
B: EV=b
B: KEY=400 0 0 0 0 0 0 0 0 0 0
B: ABS=3
...

[Bearbeiten] Parameter

Parameter (kurz) Parameter (lang) Beschreibung
-d <DEV> --device=<DEV> Gerätedatei z.B.: /dev/fb0 oder für VDR-Dev.: vdr/1

[Bearbeiten] Sonstiges

Testen ob der Touchscreen und die Treiber erfolgreich funktionieren:

evtest /dev/input/event4

[Bearbeiten] Tipps

Sollten die Treiber geladen sein aber der Test dennoch fehlschlagen, dann kann es helfen, einen anderen USB-Port zu probieren.

[Bearbeiten] Aktuelle Version

0.0.4

[Bearbeiten] Links

  1. Spiegel 2
In anderen Sprachen