I.MX6 linux Qt 同时支持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
    ......
        

 

时间: 2024-10-09 06:57:05

I.MX6 linux Qt 同时支持Touch、mouse的相关文章

I.MX6 Linux Qt 启动流程跟踪

/************************************************************************** * I.MX6 Linux Qt 启动流程跟踪 * 声明: * 1. 源代码来源MY-I.MX6: * 2. 本文仅仅是对启动流程的解析,没有解释启动流程为什么是这样的问题. * * 2015-6-13 深圳 晴 南山平山村 曾剑锋 *********************************************************

I.MX6 Linux eGTouch TouchScreen porting

I.MX6 Linux eGTouch TouchScreen porting 一.Download Driver: http://www.eeti.com.tw/drivers_Linux.html 二.阅读:EETI eGTouch Linux Programming Guide 三.系统启动配置: ...... # 本人直接将驱动放在内核里了,并没有做成模块 # insmod /module/hid-multitouch.ko # 使用eGTouch_v2.5.4330.L-ma/eGTo

I.MX6 linux kernel编译错误处理

/******************************************************************************** * I.MX6 linux kernel编译错误处理 * 声明: * 本文仅仅是对I.MX6的linux内核编译出错,记录其对应的处理方法. * * 2015-10-15 晴 深圳 南山平山村 曾剑锋 *******************************************************************

I.MX6 Linux udev porting

/*********************************************************************** * I.MX6 Linux udev porting * 声明: * 在嵌入式产品上,我们可以使用mdev来解决热插拔的问题,同时也经常看到 * udev,所以尝试来移植一下,但是最终发现她会丢失内核阶段产生的uevent, * 这导致无法生成内核阶段产生的设备节点,目前采用了mdev来做完成内核阶段的 * 设备节点生成,之后使用udev完成热插拔,这

I.MX6 Linux kernel LVDS backlight enable

/*************************************************************************** * I.MX6 Linux kernel LVDS backlight enable * 说明: * 由于目前U-boot阶段屏出现反白的现象,所以在U-boot阶段关闭了背光,之前 * 尝试在板级文件中打开背光,但由于那个地方Linux LVDS驱动还没有工作,导致 * 反白的现象还是存在,仅仅是时间变短了,于是最后将enable信号放在驱动

I.MX6 linux eGalaxTouch 自动获取设备节点

I.MX6 linux eGalaxTouch 自动获取设备节点 \\\\\\\\\\\\\\-*- 目录 -*-///////////// | 一. 需求: | 二. /proc/bus/input/devices 内容: | 三. 解决方法: | 四. 实际应用: -------------------------------------- 一. 需求: 获取eGalaxTouch的输入设备节点 二. /proc/bus/input/devices 内容: root@freescale /p

I.MX6 Linux Serial Baud Rate hacking

/******************************************************************************** * I.MX6 Linux Serial Baud Rate hacking * 声明: * 1. 本文的源代码来自:myzr_android4_2_2_1_1_0.tar.bz2: * 2. 本文的目的是为了知道I.MX6串口支持的波特率有哪些,最大是多大, * 并加以验证,因为IMX6DQRM_revC.pdf数据手册上说能达到5

I.MX6 Linux 自动获取AR1020 event input节点

/*********************************************************************** * I.MX6 Linux 自动获取AR1020 event input节点 * 说明: * 本文主要记录如何自动获取AR1020 SPI电阻Touch产生的设备节点. * * 2016-4-5 深圳 南山平山村 曾剑锋 ******************************************************************

在Linux上架设支持JSP+PHP的Web服务器

js|web|web服务|web服务器 近年来Linux在服务器市场占有比例日渐攀升,除了缘于Linux的免费和安全性之外,还因为Linux上的应用服务日益丰富.大部分常见的服务都在Linux上有了较好的解决方案.而对于Intenet上应用最广泛的Web服务来说,Linux的表现就更为出色.谁也无法说 清Internet上究竟有多少个网站,但在众多网站中,采用PHP和JSP开发的网站无疑占居了极大的市场份额.下面就介绍一下如何在Linux上架设支持JSP+PHP+MySQL的Web服务器. 对于