您尚未登录。

楼主 #1 2019-08-13 10:33:36

无情一刀
会员
注册时间: 2018-09-04
已发帖子: 723
积分: 690

hy46系列的触摸 能读取到了坐标 也执行到上报坐标函数 但是好像Qt没有接受到 也就是可能没有上报成功

hy46系列的触摸 能读取到了坐标 也执行到上报坐标函数 我在触摸的屏幕的时候 在内核驱动能打印出触摸的坐标,但是就是好像没有上报成功样

下面是打印的坐标数据
[ 518.357043] event->touch_point == 1
[ 518.360605] x ==358 y = 255,pressure = 5
[ 518.368459] id=0 event=2 x=358 y=255
[ 518.372045] event->touch_point == 1
[ 518.375532] x ==358 y = 255,pressure = 5
[ 518.383471] id=0 event=2 x=354 y=259
[ 518.387064] event->touch_point == 1
[ 518.390631] x ==354 y = 259,pressure = 5
[ 518.398486] id=0 event=2 x=354 y=259
[ 518.402073] event->touch_point == 1
[ 518.405560] x ==354 y = 259,pressure = 5
[ 518.413428] id=0 event=2 x=352 y=262
[ 518.417021] event->touch_point == 1
[ 518.420581] x ==352 y = 262,pressure = 5
[ 518.428386] id=0 event=2 x=352 y=262
[ 518.431970] event->touch_point == 1
[ 518.435465] x ==352 y = 262,pressure = 5
[ 518.443339] id=0 event=2 x=350 y=265
[ 518.446934] event->touch_point == 1
[ 518.450518] x ==350 y = 265,pressure

离线

楼主 #3 2019-08-13 10:51:59

无情一刀
会员
注册时间: 2018-09-04
已发帖子: 723
积分: 690

Re: hy46系列的触摸 能读取到了坐标 也执行到上报坐标函数 但是好像Qt没有接受到 也就是可能没有上报成功

晕哥 wrote:

怎么判断没有上报成功的?

我以前的触摸是可以的 就是在屏幕上双击会跳转到其他页面 但是这个hy的没有反应

离线

楼主 #5 2019-08-13 18:42:00

无情一刀
会员
注册时间: 2018-09-04
已发帖子: 723
积分: 690

Re: hy46系列的触摸 能读取到了坐标 也执行到上报坐标函数 但是好像Qt没有接受到 也就是可能没有上报成功

晕哥 wrote:

用 evtest 测试

这个evtest忘记了怎么测试了 晕哥有帖子吗 参考吗

离线

楼主 #7 2019-08-14 08:39:05

无情一刀
会员
注册时间: 2018-09-04
已发帖子: 723
积分: 690

Re: hy46系列的触摸 能读取到了坐标 也执行到上报坐标函数 但是好像Qt没有接受到 也就是可能没有上报成功

是这个吗

离线

楼主 #8 2019-08-14 09:15:46

无情一刀
会员
注册时间: 2018-09-04
已发帖子: 723
积分: 690

Re: hy46系列的触摸 能读取到了坐标 也执行到上报坐标函数 但是好像Qt没有接受到 也就是可能没有上报成功

怎么我输入evtest没有哦哦

离线

楼主 #11 2019-08-14 10:35:10

无情一刀
会员
注册时间: 2018-09-04
已发帖子: 723
积分: 690

Re: hy46系列的触摸 能读取到了坐标 也执行到上报坐标函数 但是好像Qt没有接受到 也就是可能没有上报成功

出现这样的 但是我看了下 QT这一块还是没有跳转

evtest event0
Input driver version is 1.0.1
Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0
Input device name: "hy46xx_ts"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 325 (BTN_TOOL_FINGER)
Event code 328 (BTN_TOOL_QUINTTAP)
Event code 330 (BTN_TOUCH)
Event code 333 (BTN_TOOL_DOUBLETAP)
Event code 334 (BTN_TOOL_TRIPLETAP)
Event code 335 (BTN_TOOL_QUADTAP)
Event type 3 (EV_ABS)
Event code 47 (ABS_MT_SLOT)
Value 0
Min 0
Max 4
Event code 48 (ABS_MT_TOUCH_MAJOR)
Value 0
Min 0
Max 255
Event code 53 (ABS_MT_POSITION_X)
Value 0
Min 0
Max 799
Event code 54 (ABS_MT_POSITION_Y)
Value 0
Min 0
Max 1279
Event code 57 (ABS_MT_TRACKING_ID)
Value 0
Min 0
Max 65535
Properties:
Property type 0 (INPUT_PROP_POINTER)
Property type 3 (INPUT_PROP_SEMI_MT)
Testing ... (interrupt to exit)
[ 198.325866] id=0 event=0 x=448 y=258
[ 198.329494] event->touch_point == 1
[ 198.332986] x ==448 y = 258,pressure = 5
Event: time 5464.167411, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value 10
Event: time 5464.167411, type 3 (EV_ABS), code 53 (ABS_MT_POSITION_X), value 448
Event: time 5464.167411, type 3 (EV_ABS), code 54 (ABS_MT_POSITION_Y), value 258
Event: tim[ 198.355623] id=0 event=2 x=448 y=258
e 5464.167411, ++++++++++++++ SYN_MT_REPORT ++++++++++++
Event:[ 198.362928] event->touch_point == 1
time 5464.167411, type 1 (EV_KEY), code 330 (BTN_TOUCH), value [ 198.371959] x ==448 y = 258,pressure = 5
1
Event: time 5464.167411, -------------- SYN_REPORT ----------[ 198.384905] id=0 event=2 x=448 y=258
--
Event: time 5464.211917, ++++++++++++++ SYN_MT_REPORT ++++++[ 198.390644] event->touch_point == 1
++++++
Event: time 5464.211917, -------------- SYN_REPORT -----[ 198.399665] x ==448 y = 258,pressure = 5
-------
Event: time 5464.239598, ++++++++++++++ SYN_MT_REPORT ++++++++++[ 198.412649] id=0 event=1 x=448 y=258
++
Event: time 5464.239598, -------------- SYN_REPORT ---------[ 198.419058] event->touch_point == 1
---
[ 198.428209] uppoint ==0
Event: time 5464.261470, type 3 (EV_ABS), code 57 (ABS_MT_TRACKING_ID), value -1
Event: time 5464.261470, ++++++++++++++ SYN_MT_REPORT ++++++++++++
Event: time 5464.261470, type 1 (EV_KEY), code 330 (BTN_TOUCH), value 0
Event: time 5464.261470, -------------- SYN_REPORT ------------

离线

楼主 #13 2019-08-14 11:01:28

无情一刀
会员
注册时间: 2018-09-04
已发帖子: 723
积分: 690

Re: hy46系列的触摸 能读取到了坐标 也执行到上报坐标函数 但是好像Qt没有接受到 也就是可能没有上报成功

晕哥 wrote:

分别按下 四个角和正中间,看输出的 xy 坐标是不是正确的,如果不对

你得找厂家要固件,看下手册,看选择硬烧还是软件更新

再不行就通过tslib 流程使用电容屏吧
ts_calibrate
ts_test

我用extest测试了坐标都是对的 ,
但是我用ts_test 打印出说没有这个文件

离线

楼主 #15 2019-08-14 11:12:20

无情一刀
会员
注册时间: 2018-09-04
已发帖子: 723
积分: 690

Re: hy46系列的触摸 能读取到了坐标 也执行到上报坐标函数 但是好像Qt没有接受到 也就是可能没有上报成功

晕哥 wrote:

没有哪个文件?

ts_test event0

ts_open: No such file or directory

ts_test

ts_open: No such file or directory

离线

楼主 #16 2019-08-14 11:49:00

无情一刀
会员
注册时间: 2018-09-04
已发帖子: 723
积分: 690

Re: hy46系列的触摸 能读取到了坐标 也执行到上报坐标函数 但是好像Qt没有接受到 也就是可能没有上报成功

晕哥 wrote:

没有哪个文件?

用evtest测试了坐标也对了 这说明是驱动没有问题

离线

楼主 #18 2019-08-14 11:56:08

无情一刀
会员
注册时间: 2018-09-04
已发帖子: 723
积分: 690

Re: hy46系列的触摸 能读取到了坐标 也执行到上报坐标函数 但是好像Qt没有接受到 也就是可能没有上报成功

Input device ID: bus 0x0 vendor 0x0 product 0x0 version 0x0
这个这里bus是0 对比下了ft5x06的是0x18会有影响吗
Input device ID: bus 0x18 vendor 0x0 product 0x0 version 0x0

离线

楼主 #20 2019-08-14 13:50:04

无情一刀
会员
注册时间: 2018-09-04
已发帖子: 723
积分: 690

Re: hy46系列的触摸 能读取到了坐标 也执行到上报坐标函数 但是好像Qt没有接受到 也就是可能没有上报成功

晕哥 wrote:

这个应该没有影响,你看下 ts_test 不能画线,如果可以说明触摸没有问题。

ts_calibrate
ts_test
我这里用ts_test event0 触摸了有数据返回 但是没有你说的画线,是不可以的啊
ts_calibrate event0 就有数据出来 但是为什么是1024和600l 我的屏幕大小是800*480

ts_calibrate event0

xres = 1024, yres = 600

离线

楼主 #22 2019-08-14 14:25:59

无情一刀
会员
注册时间: 2018-09-04
已发帖子: 723
积分: 690

Re: hy46系列的触摸 能读取到了坐标 也执行到上报坐标函数 但是好像Qt没有接受到 也就是可能没有上报成功

当我使用ts_test event0 这个的时候比如打印出来出 842 87 255 和我在内核里面打印读取到的坐标不一样
ts_calibrate event0 这个校正 只要执行了就可以了吗啊 要不要在屏幕上点击 主要是没有看到需要校正的地方
ts_calibrate event0
xres = 1024, yres = 600
^Csignal 2 caught

ts_calibrate event0^C

ts_test event0

[ 72.746494] id=0 event=0 x=86 y=46
[ 72.749945] event->touch_point == 1
[ 72.753434] x ==86 y = 46,pressure = 5
19123.588199: 842 87 255
[ 72.776197] id=0 event=2 x=86 y=46
[ 72.779670] event->touch_point == 1
[ 72.783159] x ==86 y = 46,pressure = 5
19123.617915: 842 87 0
[ 72.790433] id=0 event=2 x=86 y=46
[ 72.793843] event->touch_point == 1
[ 72.797329] x ==86 y = 46,pressure = 5
[ 72.805772] id=0 event=1 x=86 y=46
[ 72.809258] event->touch_point == 1
[ 72.812745] uppoint ==0
[ 76.760685] id=0 event=0 x=277 y=64
[ 76.764188] event->touch_point == 1
[ 76.767716] x ==277 y = 64,pressure = 5
19127.602569: 791 200 255
[ 76.790343] id=0 event=2 x=277 y=64
[ 76.793850] event->touch_point == 1
[ 76.797339] x ==277 y = 64,pressure = 5
19127.632232: 791 200 0[ 76.804705] id=0 event=2 x=277 y=64

[ 76.808370] event->touch_point == 1
[ 76.811988] x ==277 y = 64,pressure = 5

离线

楼主 #24 2019-08-14 14:39:24

无情一刀
会员
注册时间: 2018-09-04
已发帖子: 723
积分: 690

Re: hy46系列的触摸 能读取到了坐标 也执行到上报坐标函数 但是好像Qt没有接受到 也就是可能没有上报成功

晕哥 wrote:

校正之后, 和原数据有线性关系。

ts_test 先点击中间那个按钮, 然后能在屏幕画线, 说明就正常了。

主要是我屏幕上没有任何的按钮 就是一个企鹅启动的界面

离线

楼主 #26 2019-08-14 14:46:22

无情一刀
会员
注册时间: 2018-09-04
已发帖子: 723
积分: 690

Re: hy46系列的触摸 能读取到了坐标 也执行到上报坐标函数 但是好像Qt没有接受到 也就是可能没有上报成功

晕哥 wrote:

运行 ts_test 也没有按钮?

不管运行那个都是这个界面

离线

楼主 #28 2019-08-14 14:56:54

无情一刀
会员
注册时间: 2018-09-04
已发帖子: 723
积分: 690

Re: hy46系列的触摸 能读取到了坐标 也执行到上报坐标函数 但是好像Qt没有接受到 也就是可能没有上报成功

晕哥 wrote:

这不说明你有 fb0, fb1 ... 嘛

https://whycan.cn/t_2758.html#p22291

是有两个屏幕 因为以前是用的ft5x06触摸芯片运行QT没有问题 另外一个屏幕就是上次用的SPIlt7381的 现在要用hy46触摸芯片

离线

楼主 #29 2019-08-14 15:02:45

无情一刀
会员
注册时间: 2018-09-04
已发帖子: 723
积分: 690

Re: hy46系列的触摸 能读取到了坐标 也执行到上报坐标函数 但是好像Qt没有接受到 也就是可能没有上报成功

晕哥 我接上另外一个快屏幕后 那个按钮在那个屏幕上了 这个要怎么弄过来哦哦 另外一块是不带触摸的 就是显示的

最近编辑记录 无情一刀 (2019-08-14 15:04:50)

离线

楼主 #31 2019-08-14 15:18:54

无情一刀
会员
注册时间: 2018-09-04
已发帖子: 723
积分: 690

Re: hy46系列的触摸 能读取到了坐标 也执行到上报坐标函数 但是好像Qt没有接受到 也就是可能没有上报成功

晕哥 wrote:

https://whycan.cn/t_2758.html#p22291

这个链接没看吗?

###根据实际情况填写###
export TSLIB_CALIBFILE='/etc/pointercal'
export TSLIB_CONFFILE='/etc/ts.conf'
export TSLIB_FBDEVICE='/dev/fb0'
export TSLIB_PLUGINDIR='/usr/lib/ts'
export TSLIB_TSDEVICE='/dev/input/event0'

ts_calibrate
ts_test

看了啊 我现在是要只要校正和ts_test所以我就添加了 这两个,
export TSLIB_CALIBFILE='/etc/pointercal'
export TSLIB_TSDEVICE='/dev/input/event0'

离线

楼主 #32 2019-08-14 15:25:37

无情一刀
会员
注册时间: 2018-09-04
已发帖子: 723
积分: 690

Re: hy46系列的触摸 能读取到了坐标 也执行到上报坐标函数 但是好像Qt没有接受到 也就是可能没有上报成功

无情一刀 wrote:

晕哥 wrote:

https://whycan.cn/t_2758.html#p22291

这个链接没看吗?

###根据实际情况填写###
export TSLIB_CALIBFILE='/etc/pointercal'
export TSLIB_CONFFILE='/etc/ts.conf'
export TSLIB_FBDEVICE='/dev/fb0'
export TSLIB_PLUGINDIR='/usr/lib/ts'
export TSLIB_TSDEVICE='/dev/input/event0'

ts_calibrate
ts_test

看了啊 我现在是要只要校正和ts_test所以我就添加了 这两个,
export TSLIB_CALIBFILE='/etc/pointercal'
export TSLIB_TSDEVICE='/dev/input/event0'

改了fb1了

离线

楼主 #33 2019-08-14 15:29:42

无情一刀
会员
注册时间: 2018-09-04
已发帖子: 723
积分: 690

Re: hy46系列的触摸 能读取到了坐标 也执行到上报坐标函数 但是好像Qt没有接受到 也就是可能没有上报成功

我现在用ts_test 可以拖动中间的那个箭头
但是当我点击了那个draw 去画的时候不能画线 我触摸屏幕 拖动了很长只有一个小点点

最近编辑记录 无情一刀 (2019-08-14 15:31:08)

离线

楼主 #35 2019-08-14 16:06:41

无情一刀
会员
注册时间: 2018-09-04
已发帖子: 723
积分: 690

Re: hy46系列的触摸 能读取到了坐标 也执行到上报坐标函数 但是好像Qt没有接受到 也就是可能没有上报成功

QT 是可以运行起来 就是点击屏幕没有反应
在触摸驱动中读取到了触摸的数据 但是好像中断里面上报的时候有些不成功
下面是中断上报数据函数

离线

楼主 #37 2019-08-14 16:25:16

无情一刀
会员
注册时间: 2018-09-04
已发帖子: 723
积分: 690

Re: hy46系列的触摸 能读取到了坐标 也执行到上报坐标函数 但是好像Qt没有接受到 也就是可能没有上报成功

晕哥 wrote:

驱动自己写的?感觉驱动有问题, ts_test 画不了线条。

是的 人家给驱动不是Linux下面的 是高通 然后移植到Linux下了

离线

楼主 #39 2019-08-14 16:35:26

无情一刀
会员
注册时间: 2018-09-04
已发帖子: 723
积分: 690

Re: hy46系列的触摸 能读取到了坐标 也执行到上报坐标函数 但是好像Qt没有接受到 也就是可能没有上报成功

晕哥 wrote:

高通跑什么系统?

从文档里面来看应该也是linux的
只是直接复制到里面去不管用 所以就移植了下

离线

楼主 #41 2019-08-14 17:55:54

无情一刀
会员
注册时间: 2018-09-04
已发帖子: 723
积分: 690

Re: hy46系列的触摸 能读取到了坐标 也执行到上报坐标函数 但是好像Qt没有接受到 也就是可能没有上报成功

我现在是驱动可以了 但是不知道为什么最左上角出现了一个鼠标箭头标志

离线

楼主 #44 2019-08-14 18:04:03

无情一刀
会员
注册时间: 2018-09-04
已发帖子: 723
积分: 690

Re: hy46系列的触摸 能读取到了坐标 也执行到上报坐标函数 但是好像Qt没有接受到 也就是可能没有上报成功

主要是下面这个中断 他们是先读取完了后
另外一个函数/hy46xx_report_value(hy46xx_ts)去上报坐标点,所以我吧这个函数屏蔽了
static irqreturn_t hy46xx_ts_interrupt(int irq, void *dev_id)
{
struct hy46xx_ts_data *hy46xx_ts = dev_id;
disable_irq_nosync(hy46xx_ts->irq);
hy46xx_read_Touchdata(hy46xx_ts);
//hy46xx_report_value(hy46xx_ts);
enable_irq(hy46xx_ts->irq);
return IRQ_HANDLED;
}

在hy46xx_read_Touchdata里面直接读取到了一个坐标点我就上报如下图
出现的可能性 一直点着不动的时候 不断数据上报不及时 ,
现在虽然可以跑起来了 但是不不知道为什么左上角总有一个鼠标箭头标志

离线

楼主 #45 2019-08-14 18:05:41

无情一刀
会员
注册时间: 2018-09-04
已发帖子: 723
积分: 690

Re: hy46系列的触摸 能读取到了坐标 也执行到上报坐标函数 但是好像Qt没有接受到 也就是可能没有上报成功

晕哥 wrote:

https://stackoverflow.com/questions/18053330/qt-for-embedded-linux-hide-cursor-on-startup

Qt4 用这个方法试一试 :

QWSServer *server = QWSServer::instance();
if(server) {
    server->setCursorVisible(false);
}

我的是Qt5的版本 关键是我用ft5x06的触摸不会出现 就是用hy46的就会有鼠标箭头 所以我觉得跟QT没有关心 应该是内核里面的鼠标箭头

最近编辑记录 无情一刀 (2019-08-14 18:07:38)

离线

楼主 #48 2019-08-14 18:12:00

无情一刀
会员
注册时间: 2018-09-04
已发帖子: 723
积分: 690

Re: hy46系列的触摸 能读取到了坐标 也执行到上报坐标函数 但是好像Qt没有接受到 也就是可能没有上报成功

晕哥 wrote:

感觉这个和触摸芯片没有关系, 应该是 Qt 软件的事情, 搜了一圈, 没发现Qt5 怎么处理的。

但是在启动界面 就是有企鹅的时候 不会出现,用了hy46的触摸芯片启动QT就有, 但是 ft5x06启动QT工程都没有 很奇怪,

离线

楼主 #49 2019-08-14 18:14:14

无情一刀
会员
注册时间: 2018-09-04
已发帖子: 723
积分: 690

Re: hy46系列的触摸 能读取到了坐标 也执行到上报坐标函数 但是好像Qt没有接受到 也就是可能没有上报成功

晕哥 wrote:

晕哥 wrote:

感觉这个和触摸芯片没有关系, 应该是 Qt 软件的事情, 搜了一圈, 没发现Qt5 怎么处理的。

export QT_QPA_FB_HIDECURSOR=1
./qtapp -platform linuxfb

试一试上面酱紫看看

export QT_QPA_FB_HIDECURSOR=1
./TableMeet_GUI -platform linuxfb:fb=/dev/fb1

这样QT工程会出现断错误 哈哈

离线

楼主 #50 2019-08-14 18:27:21

无情一刀
会员
注册时间: 2018-09-04
已发帖子: 723
积分: 690

Re: hy46系列的触摸 能读取到了坐标 也执行到上报坐标函数 但是好像Qt没有接受到 也就是可能没有上报成功

this->setCursor(Qt::BlankCursor);
用了这个函数可以去除掉了 但是不清楚的是为什么用这个触摸后就会出来箭头

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn


东莞哇酷科技有限公司开发