您的位置首页>企业动态>

英创信息技术EM9280 Linux触摸屏应用开发简介

导读 大家好,我是极客范的本期栏目编辑小友,现在为大家讲解英创信息技术EM9280 Linux触摸屏应用开发简介问题。1 简要描述。触摸屏是覆盖在显

大家好,我是极客范的本期栏目编辑小友,现在为大家讲解英创信息技术EM9280 Linux触摸屏应用开发简介问题。

1.简要描述。

触摸屏是覆盖在显示屏表面的薄层。当触控笔触摸触摸屏时,系统中相应的驱动程序会得到触控笔点击的位置并通知应用程序,从而实现人机交互的功能。电阻式触摸屏是常见的触摸屏,EM9280提供了对4线电阻式触摸屏的支持,已经在定制的Linux内核中全面驱动。

在EM9280中,触摸屏作为输入设备,其设备文件为“/dev/input/event0”。

在本文中,我们将介绍如何在EM9280 Linux环境中使用触摸屏设备进行应用。

2.移植tslib。

在带触摸屏的移动终端中,触摸屏性能的调试是重要问题之一。由于电磁噪声,触摸屏容易出现点击不准、抖动等问题。Tslib是一个开源程序,可以提供过滤、去抖、校准等功能。对于触摸屏驱动程序获得的样本。通常作为触摸屏驱动的适配层,为上层应用提供统一的接口。

Tslib是触摸屏驱动和应用层之间的适配层,从驱动中获取原始设备坐标数据,通过去噪、抖动、坐标变换等一系列操作,去除噪声,将原始设备坐标转换为对应的屏幕坐标。

tslib的移植过程:

1.下载源代码:https://github.com/kergoth/tslib.

2.转到工作目录:cd tslib。

3.生成配置:/autogen.sh。

4.配置并生成Makefile。/configure-host=arm-none-Linux-gnueabi(平台)-prefix=/(安装目录)。

-启用-调试=否

5.编译制作。

6.安装安装。

在指定的安装目录下生成/bin /etc /lib /include文件夹。然后将相应目录中的文件复制到EM9280的根文件系统中的相应目录中。

有些参数需要配置。

/etc目录中的配置文件需要指定tslib的设备和路径:

导出集TCLIB _ TSDEVICe=/dev/input/event 0

导出集TCLIB _ CALIBFILE=/etc/pointer cal

导出集TCLIB _ CONFILE=/etc/ts . conf

导出集TCLIB_PLUGINDIR=/lib/ts

tslib包括触摸屏测试程序ts_test。在运行ts_test之前,需要运行ts _ calibrate来校准触摸屏。

3.触摸屏的应用发展。

为了方便客户开发触摸屏应用,我们从tslib导出测试程序ts_test,利用tslib的动态库文件libts.so,在Innolux提供的应用开发工具eclipse上直接编译ts_test,生成功能相同的触摸屏测试程序。这种方法的优点是应用程序可以直接使用tslib提供的界面功能,获取触摸屏操作后得到的x、y坐标值,客户可以在此基础上方便地实现人机交互界面的需求。

在ec lipse环境下设置一个CP project:ts _ test,并将以下文件导入到这个项目文件中:

Ts_test.c //触摸屏测试主程序。

Tslib.h //定义操作ts的接口函数。

lib.so//dynamic库,即tslib.h文件中各个接口函数的具体实现。

Fbutils.c fbutils.h //定义与屏幕显示相关的界面功能。

Font.h font_8x16.c font_8x8.c //定义显示字符的字体。

tyle="text-indent: 2em;">从上述说明可以看出,和ts接口相关的主要函数定义在tslib.h libts.so这个两个文件中。

该工程文件中用到专用的动态库libts.so,在eclipse环境对此程序编译时,需要设置相应的编译属性。在Project Explorer视窗下,选择需要设置的工程文件,然后点击鼠标右键,选择 Properties项,在窗口中选择C/C++ Build -> Settings -> Tool Settings -> Sourcery G++ C++ Linker ->Libraries,如下图所示。其中的一个窗口用于指定库文件的名称,一个用于指定库文件的路径。

1、简述

触摸屏是覆盖在显示屏表面的一层薄片,当有触摸笔接触到触摸屏时,系统中相应的驱动会得到触摸笔点击的位置,并可通知应用程序,从而实现人机交互的功能。电阻式触摸屏是比较常见的触摸屏,EM9280提供对于4线制电阻式触摸屏的支持,在定制的Linux内核中已完全实现了该触摸屏的驱动支持。

在EM9280中,触摸屏作为输入设备其设备文件为:“/dev/input/event0”。

本文将介绍EM9280 Linux环境下应用程序如何使用触摸屏设备。

2、tslib移植

在采用触摸屏的移动终端中,触摸屏性能的调试是个重要问题之一,因为电磁噪声的缘故,触摸屏容易存在点击不准确、有抖动等问题。tslib是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波、去抖、校准等功能,通常作为触摸屏驱动的适配层,为上层的应用提供了一个统一的接口。

tslib 为触摸屏驱动和应用层之间的适配层,其从驱动处获得原始的设备坐标数据,通过一系列的去噪、去抖、坐标变换等操作,来去除噪声并将原始的设备坐标转换为相应的屏幕坐标。

tslib的移植过程:

1、下载源码:git clone https://github.com/kergoth/tslib

2、转入工作目录:cd tslib

3、生成configure:./autogen.sh

4、配置,生成Makefile

./configure --host=arm-none-linux-gnueabi(平台) --prefix=/(安装目录)

--enable-debug=no

5、编译 make

6、安装 make install

在指定的安装目录下生成/bin /etc /lib /include文件夹。然后将相应目录下的文件分别复制到EM9280的根文件系统中对应目录中。

还需要进行一些参数的配置。

/etc目录下的profile需要指定 tslib的设备及路径: export set TCLIB_TSDEVICE=/dev/input/event0 export set TCLIB_CALIBFILE=/etc/pointercal export set TCLIB_CONFFILE=/etc/ts.conf export set TCLIB_PLUGINDIR=/lib/ts

tslib中包括有触摸屏测试程序ts_test ,运行ts_test之前,需要先运行ts_calibrate对触摸屏进行校准。

3、触摸屏的应用程序开发

为了方便客户触摸屏应用程序开发,我们将tslib中的测试程序ts_test程序导出,利用tslib的动态库文件libts.so,可直接在英创公司提供的应用开发工具 eclipse上进行ts_test直接编译,生成具有同样功能的触摸屏测试程序。这种方式的好处是应用程序可直接利用tslib所提供的接口函数,获取到触摸屏操作后所得到的x、y坐标值,客户可方便地在此基础实现人机交互操作界面的需求。

在ec++lipse环境下建立一个c++ project:ts_test,该工程文件中需要导入以下文件: ts_test.c //触摸屏测试主程序 tslib.h //定义操作ts的接口函数libts.so //动态库,即tslib.h文件各个接口函数的具体实现 fbutils.c fbutils.h //定义和屏幕显示相关的接口函数 font.h font_8x16.c font_8x8.c //定义显示字符的font

从上述说明可以看出,和ts接口相关的主要函数定义在tslib.h libts.so这个两个文件中。

该工程文件中用到专用的动态库libts.so,在eclipse环境对此程序编译时,需要设置相应的编译属性。在Project Explorer视窗下,选择需要设置的工程文件,然后点击鼠标右键,选择 Properties项,在窗口中选择C/C++ Build -> Settings -> Tool Settings -> Sourcery G++ C++ Linker ->Libraries,如下图所示。其中的一个窗口用于指定库文件的名称,一个用于指定库文件的路径。

.dfma { position: relative; width: 1000px; margin: 0 auto; } .dfma a::after { position: absolute; left: 0; bottom: 0; width: 30px; line-height: 1.4; text-align: center; background-color: rgba(0, 0, 0, .5); color: #fff; font-size: 12px; content:"广告"; } .dfma img { display: block; }
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。