Qt Android 在平板中使用 SocketCan

        最近因为工作需要,要在一个安卓工业平板中使用socketCan。发现qt自带的有socketcan,但是需要平台支撑,需要在Linux内核中提前配好(猜测),具体参考qt帮助手册,关键词Using SocketCAN Plugin,记录一下我的摸索历程。

1.准备工作

1.我手中的一个工业安卓平板,已内置socketcan

2.qt serialbus源码,qt默认不安装

2.编译qt serialbus源码

官方源码github:https://github.com/qt/qtserialbus

在windows平台下,安装目录中能找到QtSerialBus

 但是在android的include下,却没有这个模块,查阅官方资料,发现不能在android平台使用socketcan插件,但是qt帮助手册里却说socketcan需要linux内核支持什么的,我寻思安卓不就是linux吗,为什么不能用,就开始尝试编译官方源码。

 下载解压后,就长这个样子,打开顶层pro,添加一个安卓构建,我这边的qt版本是5.15.2

 

 直接编译会有很多错误,找到错误一个个解决就ok了,基本上都是找不到头文件,在源码中找相应的头文件即可,最后,只剩下最后一个错误,make install,不用管,这时打开dubug目录,就已经看到编译好的文件了,一个个复制到qt安装目录即可,

注意:mkspecs目录下有两个子目录,module 和module-inst,qt目录下没有module-inst,所以我就复制了前者,但是后来发现前者引用的文件是我debug里面的文件,后者才是正解,怪不得我修改了debug的目录名,编译就不通过了。打开pri文件一看便知。

其实我一开始就采取编译源码的解决方案,也不知道哪里操作不对,serialbus模块还是无法使用,最后Google什么的折腾一大圈,就在要放弃的时候,想着再试最后一次,不行只好放弃了,然后就成功了。。。

所有复制完之后,就可以开始使用了,使用起来就很简单了,参考qt帮助手册,pro文件添加serialbus

 到这里终于能够检测到插件了,并且连接没有报错,感觉事情就已经成了!

但是,下面的编译信息却报错,无法加载库,socketcan!

好在我之前搜谷歌的时候,发现有个老外说,显示无法加载,但实际可以读写,我就有了个心理准备,不然,看到这样的报错,心得凉一半。。

关于qt的文章,国内还是太少太少了,特别是这种冷门的问题,我在百度是一个都搜不到,唉,还是得看Google。

 到这里就已经大功告成了,注册到qml,就可以开始写界面了。这里点击按钮发送56789

 接收也正常

 

难的在于对qt模块的理解和源码编译,我也是在不断的尝试中,对qt的理解越来越深,再次感叹qt的强大!

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值