I.MX6 linux Qt 同时支持Touch、mouse

简介: /***************************************************************************** * I.MX6 linux Qt 同时支持Touch、mouse * 声明: * 在Qt上,有时候当没有Touch的时候,我们会希望鼠标还是能够使用的,于是乎 * 这又变成了一个看上去必须的需求了,所以这也就变成了一个需要解决的问题,当然 * 这又解决Touch存在还是不存在的问题,以及如何跟mouse共存的问题。
/*****************************************************************************
 *                  I.MX6 linux Qt 同时支持Touch、mouse
 * 声明:
 *     在Qt上,有时候当没有Touch的时候,我们会希望鼠标还是能够使用的,于是乎
 * 这又变成了一个看上去必须的需求了,所以这也就变成了一个需要解决的问题,当然
 * 这又解决Touch存在还是不存在的问题,以及如何跟mouse共存的问题。
 *
 *                                          2016-1-13 深圳 南山平山村 曾剑锋
 ****************************************************************************/


一、参考文档:
    1. Qt移植对USB鼠标键盘、触摸屏的支持
        http://blog.csdn.net/sno_guo/article/details/16897577
    2. QT 同时支持鼠标和触摸屏
        http://www.cnblogs.com/leaven/archive/2010/11/24/1886774.html

二、/etc/profile修改:
    ......
    # 计数值的上限,仅仅是为了方便修改,不用到代码里去修改这个值
    limitForWaitTime=80
    # 循环计数
    waitTimeCount=0
    while [ -z $touchEvent ]
    do
        inputCheckLine=`cat /proc/bus/input/devices | grep -n "Vendor=0eef" | grep "Product=0020 Version=0001"| awk -F: '{print $1}'`
        touchEvent=`sed -n "$((${inputCheckLine}+5))p" /proc/bus/input/devices | grep -o "event."`
        echo "please hang up USB TOUCH !"
        waitTimeCount=$((waitTimeCount+1))
        if [ $waitTimeCount -gt $limitForWaitTime ]; then
            break
        fi
        usleep 1000
    done
    
    ......
    
    export TSLIB_ROOT=/usr/local/tslib-instal
    export TSLIB_CALIBFILE=/etc/pointercal   
    export TSLIB_CONFFILE=$TSLIB_ROOT/etc/ts.conf    
    export TSLIB_PLUGINDIR=$TSLIB_ROOT/lib/ts 
    export TSLIB_FBDEVICE=/dev/fb0   
    export PATH=/usr/local/tslib-instal:$PATH
    export LD_LIBRARY_PATH=/usr/local/Trolltech/QtEmbedded-4.8.5-arm/lib
    export QT_QWS_FONTDIR=/usr/local/Trolltech/QtEmbedded-4.8.5-arm/lib/fonts
    
    # 注释掉的内容,会导致如下错误:
    #     -sh: [: argument expected
    #if [ -f /etc/pointercal -o -z $touchEvent ];then
    if [ -f /etc/pointercal ] || [ -z $touchEvent ];then
        echo "MXS touchscreen have calibrate!"
    else 
        # 这里一定不能用注释的这两行,否则会导致ts_calibrate闪退
        #export TSLIB_TSDEVICE="tslib:/dev/input/${touchEvent}"
        #export QWS_MOUSE_PROTO="tslib:/dev/input/${touchEvent}"
        export TSLIB_TSDEVICE=/dev/input/${touchEvent}
        export QWS_MOUSE_PROTO=/dev/input/${touchEvent}
        /usr/local/tslib-instal/bin/ts_calibrate
        sync
    fi
    
    # 注释掉的内容,如果系统运行起来之后,还没有插入鼠标,会导致如下错误:
    #     Error opening mouse device '/dev/input/mouse0': No such file or directory
    # ts_devices="mouseman:/dev/input/mouse0"
    ts_devices="mouseman:/dev/input/mice"
    if [ ! -z $touchEvent ]; then

        export TSLIB_TSDEVICE=/dev/input/${touchEvent}

        # 注释掉的内容写法会导致如下错误:
        #     -sh: ts_devices+= tslib:/dev/input/event4: No such file or directory
        #ts_devices+=" tslib:/dev/input/${touchEvent}"

        # 注释掉的内容,如果系统运行起来之后,还没有插入鼠标,会导致如下错误:
        #     Error opening mouse device '/dev/input/mouse0': No such file or directory
# 看到有些地方写:MouseMan
# 有些地方写:tslib MouseMan #ts_devices
="mouseman:/dev/input/mouse0 tslib:/dev/input/${touchEvent}" ts_devices="mouseman:/dev/input/mice tslib:/dev/input/${touchEvent}" fi export QWS_MOUSE_PROTO=$ts_devices ......

 

目录
相关文章
|
1月前
|
Linux 数据处理 C++
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用(一)
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用
77 0
|
1月前
|
算法 Unix Linux
Linux与Qt线程优先级的对应关系:一次全面解析
Linux与Qt线程优先级的对应关系:一次全面解析
23 0
|
1月前
|
存储 Linux API
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用(三)
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用
31 1
|
1月前
|
消息中间件 Linux 数据处理
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用(二)
Linux系统编程 C/C++ 以及Qt 中的零拷贝技术: 从底层原理到高级应用
32 1
|
1月前
|
Linux
Linux系统之touch命令的基本使用
Linux系统之touch命令的基本使用
62 1
|
6月前
|
数据采集 监控 网络协议
linux系统中利用QT实现视频监控的基本方法
linux系统中利用QT实现视频监控的基本方法
183 0
|
6月前
|
人工智能 文字识别 算法
linux系统中利用QT实现车牌识别的方法
linux系统中利用QT实现车牌识别的方法
70 0
|
13天前
|
Linux
Linux简单指令|cd|touch|mkdir|rmdir|rm
Linux简单指令|cd|touch|mkdir|rmdir|rm
|
30天前
|
开发框架 算法 Linux
【知识点回顾 】Qt信号槽与Linux信号处理 的处理机制 深入探讨
【知识点回顾 】Qt信号槽与Linux信号处理 的处理机制 深入探讨
33 0
|
1月前
|
Shell Linux C语言
【Shell 命令集合 文件管理】Linux 创建一个空的文件或者更新文件的访问和修改时间戳 touch命令使用指南
【Shell 命令集合 文件管理】Linux 创建一个空的文件或者更新文件的访问和修改时间戳 touch命令使用指南
38 0