Unsolved RPi Touch - Rotate touch events
-
I'm having problem using the touchscreen with Qt. I have set up the touch as you said on the wiki however when I run a Qt application the touch doesn't seem to respect the configs.
https://www.youtube.com/watch?v=OYeByglJ8sY
What should I do?
I cross compiled Qt using this tutorial https://wiki.qt.io/RaspberryPi2EGLFS
Thank you
-
Did you try to rotate coordinates as described in documentation: doc, by setting QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS?
-
@tomasz3dk said:
Did you try to rotate coordinates as described in documentation: doc, by setting QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS?
I did read that but I don't know where can I set these values :s
-
Some more information:
pi@raspberrypi:~/untitled13/bin $ ./untitled13 QML debugging is enabled. Only use this in a safe environment. Unable to query physical screen size, defaulting to 100 dpi. To override, set QT_QPA_EGLFS_PHYSICAL_WIDTH and QT_QPA_EGLFS_PHYSICAL_HEIGHT (in millimeters). qt.qpa.input: libinput: input device 'Intelligent Agent CDC and Digitizer', /dev/input/event0 is a touch device qt.qpa.input: Using xkbcommon for key mapping Created context for format QSurfaceFormat(version 2.0, options QFlags(), depthBufferSize 24, redBufferSize -1, greenBufferSize -1, blueBufferSize -1, alphaBufferSize -1, stencilBufferSize 8, samples -1, swapBehavior 2, swapInterval 1, profile 0) with config: EGL_BUFFER_SIZE: 16 EGL_ALPHA_SIZE: 0 EGL_BLUE_SIZE: 5 EGL_GREEN_SIZE: 6 EGL_RED_SIZE: 5 EGL_DEPTH_SIZE: 24 EGL_STENCIL_SIZE: 8 EGL_CONFIG_CAVEAT: 12344 EGL_CONFIG_ID: 17 EGL_LEVEL: 0 EGL_MAX_PBUFFER_HEIGHT: 2048 EGL_MAX_PBUFFER_PIXELS: 4194304 EGL_MAX_PBUFFER_WIDTH: 2048 EGL_NATIVE_RENDERABLE: 1 EGL_NATIVE_VISUAL_ID: 107544 EGL_NATIVE_VISUAL_TYPE: 12344 EGL_SAMPLES: 0 EGL_SAMPLE_BUFFERS: 0 EGL_SURFACE_TYPE: 1639 EGL_TRANSPARENT_TYPE: 12344 EGL_TRANSPARENT_BLUE_VALUE: 0 EGL_TRANSPARENT_GREEN_VALUE: 0 EGL_TRANSPARENT_RED_VALUE: 0 EGL_BIND_TO_TEXTURE_RGB: 1 EGL_BIND_TO_TEXTURE_RGBA: 1 EGL_MIN_SWAP_INTERVAL: 0 EGL_MAX_SWAP_INTERVAL: 2147483647
-
I was able to make it work using the following:
pi@raspberrypi:~/untitled13/bin $ ./untitled13 -plugin evdevtouch QML debugging is enabled. Only use this in a safe environment. Unable to query physical screen size, defaulting to 100 dpi. To override, set QT_QPA_EGLFS_PHYSICAL_WIDTH and QT_QPA_EGLFS_PHYSICAL_HEIGHT (in millimeters). qt.qpa.input: libinput: input device 'Intelligent Agent CDC and Digitizer', /dev/input/event0 is a touch device qt.qpa.input: Using xkbcommon for key mapping qt.qpa.input: evdevtouch: Using device discovery qt.qpa.input: udev device discovery for type QFlags(0x2|0x4) qt.qpa.input: Found matching devices ("/dev/input/event0") qt.qpa.input: evdevtouch: Adding device at "/dev/input/event0" qt.qpa.input: evdevtouch: Using device /dev/input/event0 qt.qpa.input: evdevtouch: /dev/input/event0: Protocol type B (mtdev) (multi) qt.qpa.input: evdevtouch: /dev/input/event0: min X: 0 max X: 480 qt.qpa.input: evdevtouch: /dev/input/event0: min Y: 0 max Y: 800 qt.qpa.input: evdevtouch: /dev/input/event0: min pressure: 0 max pressure: 1 qt.qpa.input: evdevtouch: /dev/input/event0: device name: Intelligent Agent CDC and Digitizer Created context for format QSurfaceFormat(version 2.0, options QFlags(), depthBufferSize 24, redBufferSize -1, greenBufferSize -1, blueBufferSize -1, alphaBufferSize -1, stencilBufferSize 8, samples -1, swapBehavior 2, swapInterval 1, profile 0) with config: EGL_BUFFER_SIZE: 16 EGL_ALPHA_SIZE: 0 EGL_BLUE_SIZE: 5 EGL_GREEN_SIZE: 6 EGL_RED_SIZE: 5 EGL_DEPTH_SIZE: 24 EGL_STENCIL_SIZE: 8 EGL_CONFIG_CAVEAT: 12344 EGL_CONFIG_ID: 17 EGL_LEVEL: 0 EGL_MAX_PBUFFER_HEIGHT: 2048 EGL_MAX_PBUFFER_PIXELS: 4194304 EGL_MAX_PBUFFER_WIDTH: 2048 EGL_NATIVE_RENDERABLE: 1 EGL_NATIVE_VISUAL_ID: 107544 EGL_NATIVE_VISUAL_TYPE: 12344 EGL_SAMPLES: 0 EGL_SAMPLE_BUFFERS: 0 EGL_SURFACE_TYPE: 1639 EGL_TRANSPARENT_TYPE: 12344 EGL_TRANSPARENT_BLUE_VALUE: 0 EGL_TRANSPARENT_GREEN_VALUE: 0 EGL_TRANSPARENT_RED_VALUE: 0 EGL_BIND_TO_TEXTURE_RGB: 1 EGL_BIND_TO_TEXTURE_RGBA: 1 EGL_MIN_SWAP_INTERVAL: 0 EGL_MAX_SWAP_INTERVAL: 2147483647 qt.qpa.input: evdevtouch: Updating QInputDeviceManager device count: 1 touch devices, 0 pending handler(s)
However I would like to know the diference between evtouch and libinput and which one is better?
-
@metRo_ You can add this to /etc/environment, and make this permanent (even after reset), or just export it in console before running your app, but it only will works in console where you exported this, and after reset it backs to default. But as you wrote, that using evdevtouch works, so you don't need this for now. For second question, i always use evdevtouch, and don't know which one is better ;).
-
@tomasz3dk said:
But as you wrote, that using evdevtouch works, so you don't need this for now.
I didn't understand what you mean, what I don't need?
All the documentation said that by default it should use evdevtouch but in my case by default it use libinput and I need to specify that I want to use evdevtouch, any clue on it?
-
@metRo_ said:
@tomasz3dk said:
But as you wrote, that using evdevtouch works, so you don't need this for now.
I didn't understand what you mean, what I don't need?
I mean, that you don't need overwrite QT_QPA_EVDEV_TOUCHSCREEN_PARAMETERS to ratate coordinates. Correct me if i'm wrong, but i assumed that, when you use evdevtouch plugin touchscreen works, as it should be? Unfortunately i don't know why it doesn't use evdevtouch by default.