[Interest] QT Touch handling bug

Görling, Per per.gorling at crosscontrol.com
Fri Nov 17 09:11:55 CET 2017


Hello!

I am not sure how to contact you in the correct way or if I need to subscribe/join
to your organization, before asking questions about QT...

But I have the same problem with the qevdevtouch-handler, as described below.
I found this post, when googling the Net for info on the problem!

My question is, have anyone looked at this and is there a recommended
solution/work-around to solve this issue?

We are currently using the Qt version 5.6.2 and 5.7.1, but have not got around
to test this on the 5.7 version.
We have customers using the 5.6 version and they have the touch-problem...

Any information would be helpful!

The following was found at:
http://lists.qt-project.org/pipermail/development/2016-August/026786.html

Regards
Per


Per Görling

Field Application Engineer
Office: +46(0)21 40 32 18
Cell: +46(0) 702 488 087
Address: CrossControl AB
Varmvalsvägen 13
721 30 Västerås, SWEDEN

www.crosscontrol.com<http://www.crosscontrol.com/>

CrossControl
Making machines smart, safe and productive

Meet us at Agritechnica 2017
you find us in Hall 15, booth K08



FROM: Rob Martens
Mon Aug 8 16:04:10 CEST 2016



I'm relatively sure this problem exposes a bug in qevdevtouchhandler.cpp. I

sometimes get a 0 reported from a touch event when I know the locations

from the driver never included a 0. I hope someone with experience

in QEvdevTouchScreenData::processInputEvent would look at it and see if

this isn't the case.

Thanks,

Rob



Problem Summary



Driver:



FocalTech ft5x06 TouchScreen driver.



ft5x06_ts.c



QT Code:



qevdevtouchhandler.cpp, within libQt5EglDeviceIntegration.so.5.5.0



Configuration:



type A processing (or not B type)



single touch is true



Description of problem:



When QEvdevTouchScreenData::processInputEvent gets the following (see

below) set of events an invalid touch location (always zero) is reported to

the qt Window. You can see below the full output trace (no other events

occurred).  When QT is processing the input events the second touch up

reports the y as 0, which is wrong.



The patterns seems to be the following. When QT doesn't get a ABS_Y

location after the last BTN_TOUCH Down, it reports y as 0 which is

incorrect. This always happens when y or x does not change between touches.

So if a user happens to touch in the same spot (like on a button) the

second click may not register.



Is this a problem with QT not keeping the previous Y or X location and

using that or is it a problem with the driver not reporting the X or Y

location after the touch down event? This is an annoying problem because it

means that on screens button presses are randomly missed.



QEvdevTouchScreenData::processInputEvent EV_KEY, BTN_TOUCH, 1 DOWN ******

QEvdevTouchScreenData::processInputEvent EV_ABS, ABS_X, 334

QEvdevTouchScreenData::processInputEvent EV_ABS, ABS_Y, 174

QEvdevTouchScreenData::processInputEvent EV_ABS, ABS_PRESSURE, 100

QEvdevTouchScreenData::processInputEvent EV_SYN, SYN_REPORT, 0

QEvdevTouchScreenData::addTouchPoint tp.rawPositions.append(QPointF(334,

174));

QEvdevTouchScreenData::processInputEvent reportPoints()

QWindowSystemInterface::handleTouchEvent m_touchPoints.count()=1 1

x=0.695833 y=0.639706

QEvdevTouchScreenData::processInputEvent EV_KEY, BTN_TOUCH, 0   UP

QEvdevTouchScreenData::processInputEvent EV_ABS, ABS_PRESSURE, 0

QEvdevTouchScreenData::processInputEvent EV_SYN, SYN_REPORT, 0

QEvdevTouchScreenData::addTouchPoint tp.rawPositions.append(QPointF(334,

174));

QEvdevTouchScreenData::processInputEvent reportPoints()

QWindowSystemInterface::handleTouchEvent m_touchPoints.count()=1 1

x=0.695833 y=0.639706

QEvdevTouchScreenData::processInputEvent EV_KEY, BTN_TOUCH, 1 DOWN

***************

QEvdevTouchScreenData::processInputEvent EV_ABS, ABS_X, 336



>>>>>>>>>>>>>>>>>>>>>>>>>> NOTICE Y not reported because it is the same

location as before

QEvdevTouchScreenData::processInputEvent EV_ABS, ABS_PRESSURE, 100

QEvdevTouchScreenData::processInputEvent EV_SYN, SYN_REPORT, 0

QEvdevTouchScreenData::addTouchPoint tp.rawPositions.append(QPointF(336, 0

));

QEvdevTouchScreenData::processInputEvent reportPoints()

QWindowSystemInterface::handleTouchEvent m_touchPoints.count()=1 1 0.700000

0.000000

QEvdevTouchScreenData::processInputEvent EV_KEY, BTN_TOUCH, 0   UP

QEvdevTouchScreenData::processInputEvent EV_ABS, ABS_PRESSURE, 0

QEvdevTouchScreenData::processInputEvent EV_SYN, SYN_REPORT, 0

QEvdevTouchScreenData::addTouchPoint  tp.rawPositions.append(QPointF(336, 0

));

QWindowSystemInterface::handleTouchEvent m_touchPoints.count()=1 1

x=0.700000 y=0.000000



DTS for ft5x06



dts



  ft5x06_ts at 38<http://lists.qt-project.org/mailman/listinfo/development> {



   compatible = "focaltech,5x06";



   reg = <0x38>;



   focaltech,family-id = <0x55>;



   pinctrl-names = "default";



   pinctrl-0 = <&ctw6120_pins>;



   interrupt-parent = <&gpio0>;



   interrupts = <3 IRQ_TYPE_EDGE_FALLING>;



   vdd-supply = <&touch_3v3_regulator>;



   vcc_i2c-supply = <&touch_3v3_regulator>;



   focaltech,irq-gpio = <&gpio0 3 0x00>;



   focaltech,display-coords = <0 0 480 272>;



   focaltech,name = "ft6x06";



   focaltech,no-force-update;



   focaltech,group-id = <1>;



   focaltech,hard-reset-delay-ms = <20>;



   focaltech,soft-reset-delay-ms = <150>;



   focaltech,num-max-touches = <1>;



   focaltech,fw-name = "ft_8610_qrd_fw.bin";



   focaltech,fw-delay-aa-ms = <100>;



   focaltech,fw-delay-55-ms = <30>;



   focaltech,fw-upgrade-id1 = <0x79>;



   focaltech,fw-upgrade-id2 = <0x08>;



   focaltech,fw-delay-readid-ms = <10>;



   focaltech,fw-delay-era-flsh-ms = <2000>;



   focaltech,fw-auto-cal;



   //focaltech,mirror_h;



   //focaltech,mirror_v;



   };

--

Rob Martens





________________________________

Actuant Corporation Email Notice

This message is intended only for the use of the Addressee and may contain information that is PRIVILEGED and/or CONFIDENTIAL.
This email is intended only for the personal and confidential use of the recipient(s) named above. If the reader of this email is not an intended recipient, you have received this email in error and any review, dissemination, distribution or copying is strictly prohibited.
If you have received this email in error, please notify the sender immediately by return mail and permanently delete the copy you received.

Thank you.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20171117/5e7de68c/attachment.html>


More information about the Interest mailing list