I have a Qt project running on a icoremx6solo with linux. I've setted up the graphics and run the code, but i can't handle touch inputs. Enabling the input logging with
export QT_LOGGING_RULES="qt.qpa.input=true"
i discovered that the coordinates ar not setted, i think that this is the main problem with that:
qt.qpa.input: evdevtouch: /dev/input/event0: Protocol type B (multi)
qt.qpa.input: evdevtouch: /dev/input/event0: min X: 0 max X: -1
qt.qpa.input: evdevtouch: /dev/input/event0: min Y: 0 max Y: -1
qt.qpa.input: evdevtouch: /dev/input/event0: min pressure: 0 max pressure: 0
qt.qpa.input: evdevtouch: /dev/input/event0: device name: EP0790M09
but i can't find a way to calibrate that evdevtouch.
I tried runnin the executable with -plugin tslib attribute after executing the ts_calibrate command but the output is the same.
so, how can i fix that having a running touchscreen?
Looking at QT's source (qevdevtouchhandler.cpp) the calibration values (min, max, pressure…) are obtained directly from the device ioctl.
There doesn't seem to be a way in Qt to change these values.
Looking at the kernel source for my controller (ADS7843 on Atmel spi) there doesn't seem to a way to change the values from user space (/proc, /sys).
The following snippet seems to do the job – reading and writing the calibration values: