• 4946阅读
  • 2回复

[提问]ARM QT5.3.2 蓝牙listen失败 [复制链接]

上一主题 下一主题
离线wangqj
 

只看楼主 倒序阅读 楼主  发表于: 2015-04-16
最近在做一个Freescale imx.6Q的项目,运行一个基于QT5.3.2的程序,遇到了一些问题。这两天从论坛看到jnny_cn、feiyuneiio等老师的帖子,很受启发,但是我的问题很棘手,思虑很久了还是没有思路,请各位老师帮忙分析一下!问题描述如下:

硬件平台: Freescale I.MX6Q (硬件带图形加速器,支持OpenGL ES2.0)
OS: Ubuntu 12.04 armel for ARM, linux内核版本是3.0.35
QT版本:5.3.2

我在Ubuntu12.04 Host上交叉编译了Qt5.3.2,配置参数为:
./configure -opensource -confirm-license -make libs -device imx6 -no-xcb -no-c++11 -no-sse2  \
    -make example -device-option CROSS_COMPILE=/opt/freescale/usr/local/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/fsl-linaro-toolchain/bin/arm-fsl-linux-gnueabi- \
    -sysroot /home/wangqj/freescale_i.mx6/ltib/rootfs -no-gcc-sysroot \

    -prefix /usr/local/Qt-5.3.2-imx6
QT5.3.2对Freescale imx6支持很好,在qtbase/mkspecs/devices/linux-imx6-g++/qmake.conf有相关的配置参数。
把编译后得到的Qt-5.3.2-imx6拷贝到开发板上,利用自己写的qtNovaBlueCommunication程序来测试,发现有两个问题:
1、执行./qtNovaBlueCommunication -platform linuxfb  有鼠标的位置,QT界面花屏
执行./qtNovaBlueCommunication -platform eglfs 显示正常,不花屏
2、当执行./qtNovaBlueCommunication -platform eglfs (或执行./qtNovaBlueCommunication ,platform参数默认就是eglfs)时,出现蓝牙listen错误。应用程序执行qtNovaBlueCommunication,定位在“connect(rfcommServer,SIGNAL(newConnection()),this, SLOT(clientConnected()));
bool result = rfcommServer->listen(localAdapter);”result值为0。


第2个问题的情况:rfcommServer->listen(localAdapter);需要用到RFCOMM或L2CAP协议。测试时我的imx6Q开发板可以与手机通过蓝牙收发图片,linux3.0.35配置时已经有了RFCOMM和L2CAP协议的支持;
QT Bluetooth API支持Bluez4或Bluez5,经查我的开发板的Bluez4.98;
jnny_cn在他的帖子里提到QT Bluetooth需要dbus的支持,我的开发板上已经安装了dbus的;
蓝牙设备是以主模式工作,imx6Q开发板蓝牙只能被动接收数据


请各位老师帮忙看看以上这两个问题,该怎么解决!谢谢!
第1个问题,使用eglfs后,QT界面已经不花屏,这个问题可以暂时不讨论。第2个问题是重点。


再一次感谢大家的关注!
随贴附上qtNovaBlueCommunication源码,该代码在X86上运行正常。
附件: qtNovaBlueCommunication0204.tar.bz2 (10 K) 下载次数:17
离线wangqj

只看该作者 1楼 发表于: 2015-04-17

大家帮忙看看啊
离线wangqj

只看该作者 2楼 发表于: 2015-04-17

各位老师帮帮忙啊!
本帖提到的人: @jnny_cn @feiyuneiio
快速回复
限100 字节
 
上一个 下一个