问题描述:
使用usb触摸屏作为输入型号eGalax的控制器 ,使用ts_test命令进行测试,坐标很稳定很正常。Qt运行起来后,点击按压时坐标很正常很准、灵敏,但是坐标立马飘向了0,0点,现象就是有按压,没有抬起的动作。
排查问题思路:
1、首先考虑是驱动问题,查阅资料指向的也是出现输入事件编号,目前系统已经识别可以查询到事件编号。由此大概率不是驱动问题
2、考虑是tslib库的原因,经过查阅资料得知默认不支持galax,但是ts_test命令进行测试,坐标很稳定很正常,因此改原因暂时搁置
3、考虑是ts.conf配置文件导致坐标出现漂移,修改以下参数后,发现ts_test命令进行测试都不正常了,最后修改为默认值
pthres 为Tslib 提供的触摸屏灵敏度门槛插件 默认参数为pmin=1;
variance 为Tslib提供的触摸屏滤波算法插件 默认参数为delta=30;
dejitter 为Tslib 提供的触摸屏去噪算法插件 默认参数为delta=100;
linear为Tslib 提供的触摸屏坐标变换插件。
4、考虑Qt调用tslib库出现问题,经过多个网页的搜索,关注到
https://cloud.tencent.com/developer/ask/sof/112281322
里面提到tslib与qt自带的库相互干扰这一细节。
很是怀疑是Qt调用tslib库出现问题,最后定位到配置出现问题,
结果:
最后通过查询Qt的输入设备的资料,明白Qt有自带的libinput或是使用第三方的输入设备库,也就有其中的tslib,修改Qt配置
export QT_QPA_FB_TSLIB=1
export QT_QPA_EGLFS_DISABLE_INPUT=1
export QT_QPA_FB_DISABLE_INPUT=1
离线