[ANNOUNCE] TouchTFT 0.0.3

  • Wie funktioniert das denn? TouchFTF läuft auch ohne GraphTFT und erzeugt lediglich Events? Ich würde mich sehr gerne anbieten, aber das würde bei mir ziemlich lange dauern, da ich zum einen schon seit Jahren nichts mehr in C geschrieben habe (also erstmal wieder alles auffrischen müsste) und zum anderen, habe ich nicht sehr viel Zeit mich um ein eigenes Plugin zu kümmern. Ich komme ja schon kaum dazu meine Distri zu vollenden (Ja an ThinEisVDR wird noch aktiv gearbeitet :)).


    Gruß,
    Sevo

  • Quote

    Original von Sevo
    Wie funktioniert das denn? TouchFTF läuft auch ohne GraphTFT und erzeugt lediglich Events?


    Ja, so ungefähr. Ich kenne mich in den VDR-OSD-Strukturen nicht so gut aus, vermute aber, dass die notwendige Info ähnlich wie beim graphTFT ja auch hinterlegt sein müsste. Im Prinzip ist es ein ablaufen der OSD-Elemente bis man dasjenige gefunden hat, was die Koordinaten des Events einschliesst.


    Aufwändiger wäre vermutlich, dass man einem VDR-Skin dann auch mitteilen muss, was beim jeweiligen Event auf ein Objekt passieren soll.


    Der interessante Nebeneffekt dieser Sache wäre u.U. dass man bei einer Darstellung via X auch direkt mit der Maus im OSD rumklicken könnte :)


    Bzgl. C: Bildung hat noch keinem geschadet :D


    Lars

  • Quote

    Original von LarsAC
    Im Prinzip ist es ein ablaufen der OSD-Elemente bis man dasjenige gefunden hat, was die Koordinaten des Events einschliesst.

    So habe ich mir das jetzt auch gedacht.


    Quote

    Aufwändiger wäre vermutlich, dass man einem VDR-Skin dann auch mitteilen muss, was beim jeweiligen Event auf ein Objekt passieren soll.

    Da könnte man vielleicht FB Events auslösen (Taste hoch, runter, Enter,...)


    Quote

    Der interessante Nebeneffekt dieser Sache wäre u.U. dass man bei einer Darstellung via X auch direkt mit der Maus im OSD rumklicken könnte :)


    Ja, man könnte das auch um Mausevents erweitern (neben Touchscreen).


    Quote

    Bzgl. C: Bildung hat noch keinem geschadet :D

    Naja, ich bin momentan C# verseucht, da ich eine Programmierübung an der Uni betreue und der Prof meint, dass Maschinenbauer auf dem "aktuellsten" Stand der Technik sein sollten. Naja, ich kann nichts versprechen, muss mir mal den Quellcode von GraphTFT mal genauer anschauen. Vielleicht geht ja ein Lämpchen an.


    Gruß,
    Sevo


  • Das Auslösen der Events ist trivial, man muss halt für ein Skin für jedes Element auch definieren welches Event das sein soll, das zu tun (und auch irgendwie einzulesen) ist eher noch die eigentliche Arbeit.


    Schau Dir mal die Routine cGraphTFTDisplay::mouseEvent in display.c in den Sourcen des graphTFT an. Das ist die eigentliche Logik, schwer ist es nicht.


    Lars

  • Quote


    Ja, man könnte das auch um Mausevents erweitern (neben Touchscreen).
    Sevo


    Genau so macht es das X-Frontend des graphTFT's, ggf. kannst du dir dort Anregungen holen.


    horchi

  • Habe mal das Wiki zum Plugin ergänzt. Wurde "lange" nicht gepflegt :)

    VDR1: AMD Sempron 2200+, KT600-A, 2TB HDD, TT DVB-T 1.2, 2x Avermedia AverTV DVB-T 771, Debian Linux etch 2.6.21.4 (ct4), VDR 1.4.7-2 (Tobi/TomG), touchTFT, atmo, Wakü

    VDR2: Intel Celeron Core 440, P5VD2-X, 2.5TB HDD, TT DVB-S 1.5, 3x Avermedia AverTV DVB-T 771, Debian Linux etch 2.6.25.10 (ct6.1), VDR 1.6.0-6 (Tobi/TomG), touchTFT

  • hi,


    habe hier folgendes display von itv-media (4:3, 800x400, 8")


    cat /proc/bus/input/devices


    I: Bus=0003 Vendor=0eef Product=0001 Version=0100
    N: Name="USB Touchscreen 0eef:0001"
    P: Phys=/input0
    S: Sysfs=/class/input/input6
    H: Handlers=mouse1 event5
    B: EV=b
    B: KEY=400 0 0 0 0 0 0 0 0 0 0
    B: ABS=3


    was müßte ich machen damit es mit touchtft funktioniert?
    einfach nur /dev/input/event5 eintragen reichte nicht

  • Quote

    Original von LarsAC
    Kernelmodul geladen?


    Kommt denn was raus aus dem Device wenn Du darauf rumtatscht ?


    Lars


    Mach dazu einfach mal: evtest /dev/input/event5

    VDR1: AMD Sempron 2200+, KT600-A, 2TB HDD, TT DVB-T 1.2, 2x Avermedia AverTV DVB-T 771, Debian Linux etch 2.6.21.4 (ct4), VDR 1.4.7-2 (Tobi/TomG), touchTFT, atmo, Wakü

    VDR2: Intel Celeron Core 440, P5VD2-X, 2.5TB HDD, TT DVB-S 1.5, 3x Avermedia AverTV DVB-T 771, Debian Linux etch 2.6.25.10 (ct6.1), VDR 1.6.0-6 (Tobi/TomG), touchTFT

  • hi,


    > Kernelmodul geladen?
    modprobe touchkitusb wird kommentarlos geschluckt


    habe suse 10.2 und im yast sieht das so aus
    +--Alter eindeutiger Schlüssel: nF+D.k1F8GkSdDk5 ¦
    +--Bus: USB ¦
    +--Eindeutiger Code: KRJj.lRwV_3FQLd1 ¦
    +--Gerätename: /dev/input/mice ¦
    ++-Gerätenummern ¦
    +--Kennung des Geräts: 196609 ¦
    +--Klasse (spec): USB-Maus ¦
    +--Klasse: Maus ¦
    +--Lieferanten-ID: 200431 ¦
    ++-Maus ¦
    +--Modell: USB Mouse ¦
    ++-Ressourcen ¦
    +--Treiber: usbtouchscreen ¦
    +--Version: 1.00 ¦
    +--bus_hwcfg: usb ¦
    +--dev_name2: /dev/input/mouse1 ¦
    +--dev_names -
    ¦+--/dev/input/mice ¦
    ¦+--/dev/input/mouse1 ¦
    ¦+--/dev/input/event3 ¦
    ¦+--/dev/input/by-path/pci-0000:00:1d.1-usb-0:1:1.0-event- ¦
    ¦+--/dev/input/by-path/pci-0000:00:1d.1-usb-0:1:1.0- ¦
    +--driver_module: usbtouchscreen ¦
    +--hotplug: usb ¦
    +--parent_unique_key: uIhY.mBq40AxH_v3 ¦
    +--sysfs_bus_id: 3-1:1.0 ¦
    +--udi: /org/freedesktop/Hal/devices/usb_device_eef_1_noserial_¦
    -+-USB-Controller ¦
    -+-USB-Hub ¦
    ---Version: Nov 27 2006, 22:39:26 ¦
    ---uniqueid: Nein -
    +---------------------------¦------------------------------------+


    (event5 war gestern nach einem hotswap am usb, nach neustart heute steht es wieder auf event3)


    wenn ich calibrate im plugin aufrufe die 4 punkte antippe, dann ende (rot) und ok auf der fb drücke sind werte für min und max eingetragen (funktioniert scheinbar nur nach neustart des vdr?)


    > Kommt denn was raus aus dem Device wenn Du darauf rumtatscht ?


    nach der kalibrierung ja, aber es gibt nicht viel sinn was dann beim antippen passiert (aber ist passiert was)


    Strider


    bei mir gibt s kein evtest, wo kommt das programm her


    edit: habs gefunden input-utils, da kommen sachen rüber

  • mmmh, jetzt bin ich ein wenig verwirrrt, im setup menu meiner version (0.0.3) gibts keinen punkt für loglevel, selbst wenn ich im makefile debug aktiviere sehe ich da nichts


    mit evtest habe ich gesehen das es eigentlich soweit funktioniert
    aufgefallen ist mir nur das die senkrechte achse x ist und die waagerechte y ist, dem habe ich aber mit den werten rechnung getragen (resolution x=600,y=800) - aber möglicherweise ist hier auch das problem (x und y vertauscht - wie ist es den "normal")
    evtest zeigt werte zwischen ~50 und ~1800 für beide achsen an


    mal so allgemein ist mir noch nicht so ganz klar wie ich die reale auflösung meines displays (800x600, vga=0x315) graphtft beibringe, irgenwie verstehe ich noch nicht wie touchtft das mit graphtft ausmacht


    edit: mit modprobe touchkitusb swap_xy=1 ist jetzt x in der horizontalen und y in der vertikalen und ich habe die werte für die auflösung in graphtft und touchtft wieder auf default (720x576)
    hat aber nichts geändert beim calibrate tippe ich in die ecken und die werte für min max sehen ok aus aber die stellen auf dem display wo was passiert wenn ich tippe ergeben keinen sinn (z.b. unten rechts geht das menü auf)

  • Hallo,


    bisher sehe ich mit evtest (ohne vdr etc.) nur dies:
    evtest /dev/input/event4
    Input driver version is 1.0.0
    Input device ID: bus 0x3 vendor 0xeef product 0x1 version 0x100
    Input device name: "USB Touchscreen 0eef:0001"
    Supported events:
    Event type 0 (Sync)
    Event type 1 (Key)
    Event code 330 (Touch)
    Event type 3 (Absolute)
    Event code 0 (X)
    Value 0
    Min 0
    Max 2047
    Event code 1 (Y)
    Value 0
    Min 0
    Max 2047
    Testing ... (interrupt to exit)


    Mein System SuSE10.0, x86_64, TM-868 (von Pollin), Kernel 2.6.16.11-default



    touchkitusb konnte ich laden:
    Mar 2 17:10:30 mardec kernel: input: USB Touchscreen 0eef:0001 as /class/input/input27
    Mar 2 17:10:30 mardec kernel: usbcore: registered new driver touchkitusb


    Beim Verbinden des USB Kabels sehe ich in /var/log/messages ggf einen Fehler:


    Mar 2 17:13:04 mardec kernel: usb 3-1: USB disconnect, address 5
    Mar 2 17:13:10 mardec kernel: usb 3-1: new low speed USB device using uhci_hcd and address 6
    Mar 2 17:13:10 mardec kernel: usb 3-1: string descriptor 0 read error: -32
    Mar 2 17:13:10 mardec kernel: usb 3-1: string descriptor 0 read error: -32
    Mar 2 17:13:10 mardec kernel: usb 3-1: string descriptor 0 read error: -32
    Mar 2 17:13:10 mardec kernel: usb 3-1: configuration #1 chosen from 1 choice
    Mar 2 17:13:10 mardec kernel: usb 3-1: string descriptor 0 read error: -32
    Mar 2 17:13:10 mardec kernel: input: USB Touchscreen 0eef:0001 as /class/input/input28


    cat /proc/bus/input/devices liefert folgendes:
    I: Bus=0003 Vendor=0eef Product=0001 Version=0100
    N: Name="USB Touchscreen 0eef:0001"
    P: Phys=/input0
    S: Sysfs=/class/input/input28
    H: Handlers=mouse1 event4
    B: EV=b
    B: KEY=400 0 0 0 0 0
    B: ABS=3



    Hat jemand eine Idee ?


    Gruß Frank

  • Update:


    ich habe keine Ahnung was ich jetzt anders gemacht habe - aber vdr 1.4.3 läuft nun mit graphtft-0.0.16 und ttouchtft-0.0.4.


    Mit evtest /dev/input/event4 bekomme ich jetzt Events:
    Event: time 1172856449.679559, type 1 (Key), code 330 (Touch), value 1
    Event: time 1172856449.679561, type 3 (Absolute), code 0 (X), value 495
    Event: time 1172856449.679562, type 3 (Absolute), code 1 (Y), value 860
    Event: time 1172856449.679565, -------------- Report Sync ------------
    Event: time 1172856449.719546, type 3 (Absolute), code 1 (Y), value 857
    Event: time 1172856449.719550, -------------- Report Sync ------------
    Event: time 1172856449.739545, type 3 (Absolute), code 0 (X), value 500
    Event: time 1172856449.739546, type 3 (Absolute), code 1 (Y), value 853
    Event: time 1172856449.739551, -------------- Report Sync ------------
    Event: time 1172856449.759543, type 1 (Key), code 330 (Touch), value 0
    Event: time 1172856449.759549, -------------- Report Sync -----------


    Ich hoffe mal, dass das TFT elektrisch OK ist :evil:


    Im Moment bastele ich noch an der Feinjustierung. Nacherfolgem Calibrate (Thema Blue) verwendet. Stimmen die Koordinaten nicht (z.B. Channel Up) liegt links neben dem Record Button.


    Kann mir jemand einen Tip geben?


    Gruß Frank
    :portal4

  • hi,


    soweit wie du jetzt bin ich auch, die werte mit evtest sehen gut aus aber das calibrate im touchtft liefert werte aber die umrechnung auf graphtft scheint nicht so recht zu wollen
    LarsAC meinte man solle das logging des touchtft plugins aktivieren aber da bin ich bisher nicht weiter gekommen, bei der 0.0.4 (die bei mir im vdr als 0.0.3 angezeigt wird) gibts die optionen wird logdevice und debug level garnicht


    habe jetzt downgrade auf touchtft 0.0.3 und graphtft 0.0.15 durchgeführt (da konnte man hier von einem erfolg lesen) aber auch wenn jetzt in touchtft den logtyp file mit hohem loglevel aktiviere wird nichts nach /temp/ geschrieben, wenn ich das in grphtft aktiviere gibts eine schöne log-datei


    wie ist den bei dir X und Y, ist X in der hor. oder vert.?

  • Hi IG88,


    habe das Gefühl, dass das touchtft device im Vergleich zum Display (graphTFT) um 180 Grad (oder aber um 90 Grad) gedreht ist - bin mir aber nicht sicher. Ch Up bzw. Ch Down liegen übereinander :nichtdoof


    Hier mal die relevanten Parts von meiner /video/setup.conf (bzw. /etc/vdr/setup.conf)
    touchtft.entprell_ms = 20
    touchtft.Level = 8
    touchtft.Logger = 0
    touchtft.realx = 720
    touchtft.realy = 576
    touchtft.TouchDevice = /dev/input/event4
    touchtft.xmax = 1541
    touchtft.xmin = 405
    touchtft.ymax = 1624
    touchtft.ymin = 360
    graphtft.DumpImage = 0
    graphtft.DumpImageX = 720
    graphtft.DumpImageY = 576
    graphtft.DumpRefresh = 5
    graphtft.DvbRefresh = 100
    graphtft.HideMainMenu = 0
    graphtft.Iso2Utf = 1
    graphtft.JpegQuality = 100
    graphtft.Level = 1
    graphtft.LogDevice = 1
    graphtft.OSDMessageTime = 30
    graphtft.OSDOffsetX = 0
    graphtft.OSDOffsetY = 0
    graphtft.ScrollCount = 0
    graphtft.ScrollTime = 50
    graphtft.ShowMutePermanent = 1
    graphtft.SpectrumAnalyzer = 0
    graphtft.Theme = Blue
    graphtft.UseStillPicture = 1
    graphtft.VdrHeight = 15
    graphtft.VdrWidht = 9
    graphtft.VdrX = 13
    graphtft.VdrY = 0
    graphtft.ViewLength = 15
    graphtft.ViewType = 0



    Kann es sein, dass das Theme Blue falsch (konfiguriert) ist ??? --- Derzeit flackert mein TFT etwas (source ist meine erste FF C-2300), das TFT schein das Bild nicht komplett darzustellen (die fünf Buttons auf der rechten Seite sind angeschnitten)


    Kann uns jemand die entsprechnden Werte geben? (setup.conf) ??? :portal4


    Gruß Frank

  • bei mir siehts mit evtest so aus (in die untere linke ecke getippt)


    linux:~ # evtest /dev/input/event3
    Input driver version is 1.0.0
    Input device ID: bus 0x3 vendor 0xeef product 0x1 version 0x100
    Input device name: "USB Touchscreen 0eef:0001"
    Supported events:
    Event type 0 (Sync)
    Event type 1 (Key)
    Event code 330 (Touch)
    Event type 3 (Absolute)
    Event code 0 (X)
    Value 1690
    Min 0
    Max 2047
    Event code 1 (Y)
    Value 1648
    Min 0
    Max 2047
    Testing ... (interrupt to exit)
    Event: time 1172866368.839711, type 1 (Key), code 330 (Touch), value 1
    Event: time 1172866368.839716, type 3 (Absolute), code 0 (X), value 1723
    Event: time 1172866368.839717, type 3 (Absolute), code 1 (Y), value 124
    Event: time 1172866368.839718, -------------- Report Sync ------------
    Event: time 1172866368.843704, type 1 (Key), code 330 (Touch), value 0
    Event: time 1172866368.843707, -------------- Report Sync ------------
    Event: time 1172866369.011677, type 1 (Key), code 330 (Touch), value 1
    Event: time 1172866369.011682, type 3 (Absolute), code 0 (X), value 1733
    Event: time 1172866369.011683, type 3 (Absolute), code 1 (Y), value 116
    Event: time 1172866369.011684, -------------- Report Sync ------------
    Event: time 1172866369.191632, type 3 (Absolute), code 1 (Y), value 115
    Event: time 1172866369.191636, -------------- Report Sync ------------
    Event: time 1172866369.231629, type 3 (Absolute), code 0 (X), value 1734
    Event: time 1172866369.231633, -------------- Report Sync ------------
    Event: time 1172866369.251625, type 3 (Absolute), code 0 (X), value 1736
    Event: time 1172866369.251628, type 3 (Absolute), code 1 (Y), value 114
    Event: time 1172866369.251629, -------------- Report Sync ------------
    Event: time 1172866369.255620, type 1 (Key), code 330 (Touch), value 0
    Event: time 1172866369.255624, -------------- Report Sync ------------

  • unten links liefert bei mir


    Event: time 1172866867.944139, type 1 (Key), code 330 (Touch), value 1
    Event: time 1172866867.944140, type 3 (Absolute), code 0 (X), value 1902
    Event: time 1172866867.944141, type 3 (Absolute), code 1 (Y), value 1728
    Event: time 1172866867.944144, -------------- Report Sync ------------
    Event: time 1172866868.004130, type 3 (Absolute), code 0 (X), value 1901
    Event: time 1172866868.004135, -------------- Report Sync ------------
    Event: time 1172866868.008127, type 1 (Key), code 330 (Touch), value 0
    Event: time 1172866868.008131, -------------- Report Sync ------------


    Bei Dir:
    Event: time 1172866368.839711, type 1 (Key), code 330 (Touch), value 1
    Event: time 1172866368.839716, type 3 (Absolute), code 0 (X), value 1723
    Event: time 1172866368.839717, type 3 (Absolute), code 1 (Y), value 124
    Event: time 1172866368.839718, -------------- Report Sync ------------
    Event: time 1172866368.843704, type 1 (Key), code 330 (Touch), value 0
    Event: time 1172866368.843707, -------------- Report Sync ------------


    Den auffälligsten Unterschied habe ich mal Rot markiert - da stimmt doch bei mir oder Dir was nicht.


    Gruß FRank

  • da ich mitlerweile zu dem schluß gekommen bin das es an der umrechnung der koordinaten liegt habe ich ein wenig gesucht


    TouchTFT-Plugin: Lassen wirs raus...


    hier gab es die gleichen probleme (auch mit dem pollin display)
    ich werde mir das jetzt mal etwas durchdenken um zu sehen wo beim display des coders 0,0 und wie x,y liegen (abszisse, ordinate) und dann versuchen ob ich durch tauschen der min,max und mit swap_xy was erreichen kann