搜索
bottom↓
回复: 44

嵌入式Linux应用程序开发-(10)i.MX6UL基于嵌入式QT实现电容...

[复制链接]

出0入0汤圆

发表于 2019-6-13 20:10:34 | 显示全部楼层 |阅读模式
i.MX6UL基于嵌入式QT实现电容屏多点触控
基于i.MX6UL平台,使用嵌入式QT实现电容屏的多点触控,前提是开发板的电容触摸屏驱动已经支持多点触控,并且驱动程序能通过事件方式向应用程序上报触控数据。关于电容触摸屏多点触控驱动程序的介绍,不在本章节描述之列。本章节重在实现多点触控的QT应用程序。
嵌入式QT电容屏多点触控应用程序,是基于qTUIO库和mtdev库来实现的。qTUIO是国外一位开发者编写的第三方库,这个第三方库在本地UDP套接字上实现了一个基于TUIO协议的监听器,然后把监听到的事件转发到QT的内部事件系统。
mtdev是一个独立的库,它可以将来自内核的MT事件转换为时隙类型的B协议,这些MT事件可能来自内核中所有的MT设备。
总的来说,mtdev库可以把内核上报的多点触摸事件,通过mtdev2tuio后台应用程序(后面会讲到这个应用程序的移植),转换为TUIO协议,然后QT应用程序可以使用qTUIO库对内核上报的触摸事件进行处理。

以下是多点触控应用程序(涂鸦画板)运行时的界面:

界面描述:
(1)手写板界面,可以用多个手指同时涂鸦,最多支持5点同时触摸。
(2)Options里面有clear screen按钮,可以进行清屏。

本章节主要分以下两个步骤进行讲述:
(1) 在i.MX6UL开发板上移植qTUIO库,使其支持嵌入式QT多点触摸应用程序开发。
(2) 基于qTUIO库,编写一个QT多点触控应用程序。(手写板应用程序)

具体的移植和开发过程,请点击这里

应用程序在开发板上运行的界面,如下图所示:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2019-6-13 22:23:28 | 显示全部楼层
帮顶                     

出0入0汤圆

 楼主| 发表于 2019-6-14 08:17:22 | 显示全部楼层

感谢支持

出0入0汤圆

发表于 2019-6-14 20:32:32 来自手机 | 显示全部楼层
这个不错,感谢楼主,有空学学

出0入0汤圆

发表于 2019-6-14 20:59:37 | 显示全部楼层
谢谢分享,以后会用到

出0入0汤圆

 楼主| 发表于 2019-6-15 09:08:56 | 显示全部楼层
donglaile 发表于 2019-6-14 20:32
这个不错,感谢楼主,有空学学

感谢关注

出0入0汤圆

 楼主| 发表于 2019-6-15 09:09:17 | 显示全部楼层
flash3g 发表于 2019-6-14 20:59
谢谢分享,以后会用到

感谢关注

出0入0汤圆

发表于 2019-6-15 13:38:37 | 显示全部楼层
支持一下,这块一直很想入坑,但苦于没时间和精力

出0入0汤圆

 楼主| 发表于 2019-6-15 13:47:30 | 显示全部楼层
NIC 发表于 2019-6-15 13:38
支持一下,这块一直很想入坑,但苦于没时间和精力

时间就像rugou,挤挤就会有了,精力呢,需要靠锻炼

出0入0汤圆

发表于 2019-6-15 14:45:04 来自手机 | 显示全部楼层
请教下楼主,QT的触控程序我之前有移植到树莓派上做些测试,类似在界面上增加按钮测试,发现触控位置不准确,前后左右都是反着的。不清楚怎么回事。只有在qt上触控是反着的,其他界面触控位置正常

出0入0汤圆

 楼主| 发表于 2019-6-15 15:11:42 | 显示全部楼层
ziziy 发表于 2019-6-15 14:45
请教下楼主,QT的触控程序我之前有移植到树莓派上做些测试,类似在界面上增加按钮测试,发现触控位置不准确 ...

是不是QT的环境变量没有配置好,建议检查一下呢

出0入0汤圆

发表于 2019-6-16 16:29:56 | 显示全部楼层
广轻电气091 发表于 2019-6-15 15:11
是不是QT的环境变量没有配置好,建议检查一下呢

环境变量应该是配置好的,编译出的程序可以使用,但是以QT的语法写触摸类程序,就会出现触摸点的坐标上下左右是反着的,不清楚Qt有没有设置校准方向的程序。同一个程序在pc上运行,触控点都正常

出0入0汤圆

发表于 2019-6-18 09:06:20 | 显示全部楼层
支持一下,QT已入坑

出0入0汤圆

 楼主| 发表于 2019-6-18 09:30:36 | 显示全部楼层
ziziy 发表于 2019-6-16 16:29
环境变量应该是配置好的,编译出的程序可以使用,但是以QT的语法写触摸类程序,就会出现触摸点的坐标上下 ...

暂时没有碰到这类问题呢

出0入0汤圆

 楼主| 发表于 2019-6-18 09:30:53 | 显示全部楼层
Llinuxu 发表于 2019-6-18 09:06
支持一下,QT已入坑

感谢支持,祝早日出坑

出0入0汤圆

发表于 2019-6-20 08:40:03 | 显示全部楼层
ziziy 发表于 2019-6-16 16:29
环境变量应该是配置好的,编译出的程序可以使用,但是以QT的语法写触摸类程序,就会出现触摸点的坐标上下 ...

你可以直接hexdump  /dev/input/event*  查看上报的位置是否反了。
一般这个情况,通过更新屏的固件可以解决。

出0入0汤圆

发表于 2019-6-20 09:35:15 | 显示全部楼层
没有pdf格式了

出0入0汤圆

 楼主| 发表于 2019-6-20 09:54:55 | 显示全部楼层

有的,到blog找联系方式

出0入0汤圆

 楼主| 发表于 2019-6-20 17:01:03 | 显示全部楼层
元器件及PCB销售 发表于 2019-6-20 14:38
一巧不通的我,看不懂。

学习一下,就懂了

出0入0汤圆

发表于 2019-6-23 14:00:14 | 显示全部楼层
学习学习

出0入0汤圆

 楼主| 发表于 2019-6-24 08:53:42 | 显示全部楼层

感谢关注

出100入0汤圆

发表于 2019-6-24 11:30:09 来自手机 | 显示全部楼层
学习了,楼主加油

出0入0汤圆

 楼主| 发表于 2019-6-24 11:36:34 | 显示全部楼层
linhuaou 发表于 2019-6-24 11:30
学习了,楼主加油

一起学习,一起进步

出0入0汤圆

发表于 2019-7-6 14:25:40 来自手机 | 显示全部楼层
imx6ul跑qt5以上的版本,流畅吗?最近在6q和6ul之间考虑中,下一代产品打算换成linux + qt,目前是wince + qt 、winform

出0入0汤圆

发表于 2019-7-6 14:26:43 来自手机 | 显示全部楼层
产品软件还需要3D模型绘制

出0入0汤圆

 楼主| 发表于 2019-7-7 10:14:18 | 显示全部楼层
hyf88 发表于 2019-7-6 14:25
imx6ul跑qt5以上的版本,流畅吗?最近在6q和6ul之间考虑中,下一代产品打算换成linux + qt,目前是wince +  ...

imx6ul跑Qt5还是比较流畅的

出0入0汤圆

 楼主| 发表于 2019-7-7 10:15:23 | 显示全部楼层
hyf88 发表于 2019-7-6 14:26
产品软件还需要3D模型绘制

还没研究过3D图形绘制,3D渲染方面,imx6ul可能稍有逊色,建议使用imx6q

出0入0汤圆

发表于 2019-7-7 12:17:05 来自手机 | 显示全部楼层
广轻电气091 发表于 2019-7-7 10:14
imx6ul跑Qt5还是比较流畅的

好的,谢谢

出0入0汤圆

 楼主| 发表于 2019-7-18 21:35:01 | 显示全部楼层
有时间就聊聊技术,谈谈人生,欢迎关注公众号 【微联智控】

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2019-8-1 22:06:03 | 显示全部楼层
楼主到10就没有了吗?建议pdf和源码都放在这个网站,跳来点去的别的网站也麻烦,csdn我一直都不喜欢!正打算入手一块6ul呢,楼主给力!不知道我入坑能否成功!
能不能来个CAN通讯方面的撸一章!

出0入0汤圆

 楼主| 发表于 2019-8-2 08:15:21 | 显示全部楼层
jiang887786 发表于 2019-8-1 22:06
楼主到10就没有了吗?建议pdf和源码都放在这个网站,跳来点去的别的网站也麻烦,csdn我一直都不喜欢!正打 ...

感谢建议,后面会有CAN通信的章节

出0入0汤圆

发表于 2019-8-18 00:45:46 | 显示全部楼层
已经关注!!!

出0入0汤圆

 楼主| 发表于 2019-8-18 18:27:26 | 显示全部楼层

感谢关注!

出0入0汤圆

发表于 2019-8-19 11:06:39 | 显示全部楼层
楼主,我也使用yoctc构建工程,配置如下:
Build Configuration:
BB_VERSION        = "1.30.0"
BUILD_SYS         = "x86_64-linux"
NATIVELSBSTRING   = "Ubuntu-16.04"
TARGET_SYS        = "arm-poky-linux-gnueabi"
MACHINE           = "imx6dlsabreauto"
DISTRO            = "fsl-imx-wayland"
DISTRO_VERSION    = "4.1.15-2.1.0"
TUNE_FEATURES     = "arm armv7a vfp  neon        callconvention-hard        cortexa9"
TARGET_FPU        = "hard"
meta              
meta-poky         = "HEAD:f5da2a5913319ad6ac2141438ba1aa17576326ab"
meta-oe           
meta-multimedia   = "HEAD:247b1267bbe95719cd4877d2d3cfbaf2a2f4865a"
meta-fsl-arm      = "HEAD:be78894e4682f111575470fb23e51e6ba523508d"
meta-fsl-arm-extra = "HEAD:3dfb82fc7e703eae9891b3ffda0e9393701f2396"
meta-fsl-demos    = "HEAD:a165068f8a0d1cf29aabe4b4053f28be1c2aa492"
meta-bsp         
meta-sdk          = "HEAD:823b26a67261270d2bf22d511e6190641a8a90cf"
meta-browser      = "HEAD:77736988073a5d90fcff9d0005c8477332ede387"
meta-gnome        
meta-networking   
meta-python      
meta-filesystems  = "HEAD:247b1267bbe95719cd4877d2d3cfbaf2a2f4865a"
meta-qt5          = "HEAD:ccae79be69c5268df3b47e4e14cea0591c39a531"

错误如下:
| ...skipped <p/home/xialixin/workspace/fsl-release-bsp/build-wayland/tmp/work/cortexa9hf-neon-poky-linux-gnueabi/boost/1.60.0-r0/boost_1_60_0/arm-poky-linux-gnueabi/boost/bin.v2/libs/log/build/8208f58b5e252bb068de8fecdebc659d>libboost_log_setup.so.1.60.0 for lack of <p/home/xialixin/workspace/fsl-release-bsp/build-wayland/tmp/work/cortexa9hf-neon-poky-linux-gnueabi/boost/1.60.0-r0/boost_1_60_0/arm-poky-linux-gnueabi/boost/bin.v2/libs/log/build/8208f58b5e252bb068de8fecdebc659d>init_from_settings.o...
| ...failed updating 1 target...
| + bb_exit_handler
| + ret=1
| + echo WARNING: exit code 1 from a shell command.
| WARNING: exit code 1 from a shell command.
| + exit 1
| ERROR: Function failed: do_compile (log file is located at /home/xialixin/workspace/fsl-release-bsp/build-wayland/tmp/work/cortexa9hf-neon-poky-linux-gnueabi/boost/1.60.0-r0/temp/log.do_compile.38778)
ERROR: Task 4600 (/home/xialixin/workspace/fsl-release-bsp/sources/poky/meta/recipes-support/boost/boost_1.60.0.bb, do_compile) failed with exit code '1'

然后就卡死在这儿了,请教一下楼主怎么解决?

出0入0汤圆

 楼主| 发表于 2019-8-19 11:19:42 | 显示全部楼层
LingYi 发表于 2019-8-19 11:06
楼主,我也使用yoctc构建工程,配置如下:
Build Configuration:
BB_VERSION        = "1.30.0"

你好,目前没有遇到过类似的问题,从错误提示看,是编译wayland源码的时候出现错误,可查看一下log文件,检查一下wayland相关的源码及依赖库有没有下载完整。

出0入0汤圆

发表于 2019-8-19 11:37:46 | 显示全部楼层
广轻电气091 发表于 2019-8-19 11:19
你好,目前没有遇到过类似的问题,从错误提示看,是编译wayland源码的时候出现错误,可查看一下log文件, ...

应该是有1个目标文件没能更新到本地,为啥会这样,不清楚

出0入0汤圆

 楼主| 发表于 2019-8-19 11:44:09 | 显示全部楼层
LingYi 发表于 2019-8-19 11:37
应该是有1个目标文件没能更新到本地,为啥会这样,不清楚

因为不可描述的因素,访问国外服务器下载源码的时候,可能会出现问题

出0入0汤圆

发表于 2019-8-26 16:19:15 | 显示全部楼层
广轻电气091 发表于 2019-8-19 11:44
因为不可描述的因素,访问国外服务器下载源码的时候,可能会出现问题

楼主,用的是ubuntu 16.4  64位的吗?

出0入0汤圆

 楼主| 发表于 2019-8-26 16:31:55 | 显示全部楼层
LingYi 发表于 2019-8-26 16:19
楼主,用的是ubuntu 16.4  64位的吗?

是的,教程用的是ubuntu16.04.2,镜像源是使用 ubuntu 的官方源

出0入0汤圆

发表于 2019-8-26 16:33:28 | 显示全部楼层
广轻电气091 发表于 2019-8-26 16:31
是的,教程用的是ubuntu16.04.2,镜像源是使用 ubuntu 的官方源

谢谢!似乎卡死在这儿了!
头像被屏蔽

出0入0汤圆

发表于 2019-8-26 17:09:22 来自手机 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

 楼主| 发表于 2019-8-26 17:10:36 | 显示全部楼层
18501501628 发表于 2019-8-26 17:09
yocto从入门到放弃,劝退很多人

yocto的坑,挺深的
头像被屏蔽

出0入0汤圆

发表于 2019-8-27 15:18:46 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

 楼主| 发表于 2019-8-28 10:36:46 | 显示全部楼层
你好,建议你阅读一下yocto的官方文档。

出0入0汤圆

发表于 2019-9-11 17:55:43 | 显示全部楼层
广轻电气091 发表于 2019-8-28 10:36
你好,建议你阅读一下yocto的官方文档。

楼主你编译的内核代码怎么精准导入到source insight的?
我按照:http://www.pianshen.com/article/9213120160/ 这个可以实现uboot的导入。
但是 使用yocto编译生成的.config文件,从build/.config  拷贝到 ./git 再使用make 进行编译,最终也生成了vmlinux
在使用脚本 PF_Prj_Gen.sh  去解析的时候,生成不了list文件。不知道你怎么弄 的
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-19 15:07

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表