zoukankan      html  css  js  c++  java
  • QTE 触控屏支持

    QTE触摸屏加载有两种方法:

    (1)QTE本身触摸屏加载;

    主要注意三个内容:

    编译QTE时,在其自定义配置文件(位于QTDIR/src/tools/qconfig-XXX.h,其XXX为自定义的名字,该特征字可以在configure时用-qconfig XXX指定)所应加的内容:

    #define QT_QWS_IPAQ

    #define QT_QWS_IPAQ_RAW

    去掉鼠标自动识别功能 :#define QT_NO_QWS_MOUSE_AUTO

    去掉不用的鼠标驱动,(在实际中,这一步可以不要,但对于缩减QTE的大小很有帮助),方法主要是在configure时设置配置参数为-no-mouse-pc -no-mouse-bus -no-mouse-yopy -no-mouse-vr41xx 。

    以该编译好的QTE库为基础,编译应用程序;

    在目标机上,要将触摸屏驱动链接好。在QTE3.0的版本中,如果定义了上述的两个IPAQ相关的宏,其默认打开设备文件/dev/h3600_tsraw。如果只定义QT_QWS_IPAQ,则打开设备文件为/dev/h3600_ts。

    在目标机上,设定环境变量:QWS_MOUSE_PROTO=linuxtp:/dev/h3600_tsraw。


    (2)使用tslib方法;

    编译TSLIB1.3:

    进行如下操作

    #./autogen.sh #生成configure文件

    CC= $ARM_TOOL_PATH/arm-linux-gcc

    CXX= $ARM_TOOL_PATH/arm-linux-g++

    ./configure --host=arm-linux --target=arm-linux --disable-inputapi --prefix=$PWD/build

    make

    make install

    将build的整个目录拷贝到目标机,然后在目标机做如下设定,修改/etc/profile文件,在其中加入以下环境变量的设置

    export V_ROOT=/xxx/xxx/build #目标机上build所在的路径

    export TSLIB_TSEVENTTYPE=H3600 #设定类型为H3600,其主要是对着tslib中的设备结构体定义,该定义要与触摸屏驱动中的一致

    export TSLIB_CONSOLEDEVICE=none #设定控制台设备为none,否则默认为/dev/tty。在tslib1.3源码中,只要不是none,它就会打开$ (TSLIB_CONSOLEDEVICE)1,默认的为/dev/tty1的设备,然后从中读取console的可用设置。这样可以避免出现“open consoledevice: No such file or directory KDSETMODE: Bad file descriptor”的错误

    export TSLIB_FBDEVICE=/dev/fb0 #指定帧缓冲设备

    export TSLIB_TSDEVICE=/dev/touchscreen/0raw #指定触摸屏设备节点文件

    export TSLIB_CALIBFILE=$V_ROOT/etc/pointercal #指定触摸屏校准文件pintercal的存放位置

    export TSLIB_CONFFILE=$V_ROOT/etc/ts.conf #指定TSLIB配置文件的位置

    export TSLIB_PLUGINDIR=$V_ROOT/share/ts/plugins #指定触摸屏插件所在路径

    编译TSLIB1.4(TSLIB07072006)

    进行如下操作:

    echo "ac_cv_func_malloc_0_nonnull=yes" > tslib/arm-linux.autogen #为了防止出现undefined reference to `rpl_malloc' 错误

    CONFIG_SITE=arm-linux.autogen ./configure CC=arm-linux-gcc CXX=arm-linux-g++ --host=arm-s3c2410-linux-gnu --target=arm-s3c2410-linux-gnu --disable-input --disable-arctic2 --disable-mk712 --disable-collie --disable-corgi --disable-ucb1x00 --disable-linear-h2200 --with-gnu-ld --prefix=$PWD/build

    make

    make install

    将build的整个目录拷贝到目标机,然后在目标机做如下设定,修改/etc/profile文件,在其中加入以下环境变量的设置。其解释类上,不同于TSLIB1.3的是,TLIB1.4通过配置文件ts.conf中module_raw h3600语句来加载对应的设备结构体定义。已废除了TSLIB_TSEVENTTYPE宏。

    export V_ROOT=/xxx/xxx/build

    export TSLIB_TSDEVICE=/dev/touchscreen/0raw

    export TSLIB_CALIBFILE=/etc/pointercal

    export TSLIB_CONFFILE=$V_ROOT/etc/ts.conf

    export TSLIB_PLUGINDIR=$V_ROOT/lib/ts

    export TSLIB_CONSOLEDEVICE=none

    export TSLIB_FBDEVICE=/dev/fb0

    一个值得注意的问题是:TSLIB1.4在ts_config函数中通过while((p=fgets(buf,BUFF_SIZE,f))!=NULL)来加载ts.conf中的语句,而buf只有512byte。所以对于ts.conf没有用的定义语句,请将其删除,以防止误发生段错误。

    以TSLIB库为基础,编译QTE。

  • 相关阅读:
    Django 点滴
    Django 用 userena 做用户注册验证登陆
    screen 基础用法(转)
    yum 常用命令
    利用 awk 将当前的链接按端口汇总倒排序
    Django 的逆向解析url(转)
    Ubuntu 安装 setuptools
    支付宝 python alipay 集成(转)
    linux 下批量在多文件中替换字符串
    springmvc进阶
  • 原文地址:https://www.cnblogs.com/buffer/p/1488607.html
Copyright © 2011-2022 走看看