1,触摸屏校准通用方法
主要采用以下公式,实现触摸屏校正,其中XL, YL是显示屏坐标,XT, YT是触摸屏坐标,
XL = XT*A+YT*B+C;
YL = XT*D+YT*E+F; 公式(1)
由于具体计算是希望是整数运算,所以实际中保存的ABCDEF为整数,而增加一个参数Div, 由以下公式实现:
XL = (XT*A+YT*B+C) / Div;
YL = (XT*D+YT*E+F) / Div; 公式(2)
因此通常保存的参数是七个。
一般通过3个采样点就可以实现校准,tslib则使用了5个采样点,可实现更准确的校准。
2,用Linux的proc文件系统实现触摸屏校正
Android本身并不带触摸屏校准,因此要校准触摸屏最好完全在底层驱动完成,而Android获取到的数据直接将是校准后的坐标数据。
1) 首先在touchscreen的驱动加载时,创建一个proc文件,如:
ts_proc_entry = create_proc_entry("driver/micc_ts", 0, NULL);
if (ts_proc_entry) {
ts_proc_entry->write_proc = ts_proc_write;
}
可在ts_proc_write()定义自己的proc数据传递格式。
2) 在touchscreen驱动用默认参数,完成校准,如果不用校准,则设置为:
A=1, B=0, C=0, D=0, E=1, F=0, Div=1
3) 修改tslib—ts_calibrate获得需要的参数A,B,C,D,E,F,Div;
注意要在运行前改为如下参数:
A=1, B=0, C=0, D=0, E=1, F=0, Div=1
如:
echo +a 1 > /proc/driver/micc_ts
echo +b 0 > /proc/driver/micc_ts
echo +c 0 > /proc/driver/micc_ts
echo +d 0 > /proc/driver/micc_ts
echo +e 1 > /proc/driver/micc_ts
echo +f 0 > /proc/driver/micc_ts
echo +g 1 > /proc/driver/micc_ts
保证ts_calibrate获得的是没有校准过的数据,并拷贝至/etc/目录下。
4) 将参数传入内核。
ts_calibrate运行后会输出一个pointercal文件,最好简单修改一下输出格式,如运行一下:
cat $TSLIB_CALIBFILE > /proc/driver/micc_ts,
即可一次性输入七个参数。
当然也可以一个一个地输入,有点太麻烦,
5) 用ts_test测试校准效果。
注意:ts_test默认驱动输出的数据是未校准的,会另外再进行一次校准,需将main()函数中ts_read()改为ts_read_raw(),运行后,可看到校准后的效果。
6) Linux内核启动时,将校准参数传入内核。
修改/etc/init.d/rcS,加入如下行,在启动加载校准数据:
cat /etc/pointercal > /proc/driver/micc_ts
这样通过直接读取触摸屏数据即可获得校准后数据。
分享到:
相关推荐
此外,如果需要更深入地控制触摸屏行为,可以通过修改tslib源码并重新编译来实现。 总之,tslib是Android系统中不可或缺的一部分,它确保了触摸屏输入的可靠性和一致性。通过理解tslib的工作原理和使用方法,开发者...
tslib是一个开源的触摸屏库,它提供了对触摸屏输入设备的抽象化处理,包括校准、滤波等功能。本文将详细讲解如何在Android 6.0系统中移植tslib库,以满足对触摸屏事件处理的需求。 一、理解tslib库 tslib的核心...
在 Android 操作系统中移植 tslib(Touchscreen Library)是一项关键的任务,尤其对于那些需要对触摸屏输入进行精确处理的开发者来说。tslib 是一个开源库,用于处理来自触摸屏设备的原始数据,提供校准、平滑和滤波...
本文将深入探讨Smart210触摸屏与TSlib的移植过程,旨在帮助开发者理解和实现这一关键的技术步骤。 1. **Smart210触摸屏概述** Smart210是一款常见的嵌入式设备用触摸屏,具备良好的响应速度和稳定性。它适用于多种...
Android系统中的触摸屏驱动移植和校准是一个复杂的过程,涉及到内核驱动的修改、tslib库的使用以及硬件特性的理解。通过校验和校准两个步骤,可以确保触摸屏在各种条件下提供准确的输入,从而提升用户的交互体验。在...
【Android tslib】是Android系统中用于触摸屏(Touch Screen)驱动和处理的库,它主要负责将硬件层面的触控事件转化为操作系统可识别的输入事件。这个源码包的使用非常简单,通过执行"MM"命令即可完成编译。本文将...
`android-tslib.zip` 是一个针对Android平台的触摸屏(Touchscreen)库,主要功能是为设备提供触摸事件的处理和校准服务。在Android系统中,触摸屏是用户与设备交互的重要输入设备,因此`tslib`扮演了关键角色。下面...
在Linux和Android系统中,tslib可以通过内核驱动程序或用户空间应用程序来调用,以实现触摸屏的校准和数据处理。 “运维”和“服务器”这两个标签暗示了tslib在系统管理和服务器维护中的重要性。在企业环境中,特别...
2. **校准**:由于触摸屏的实际坐标与屏幕坐标可能存在偏差,tslib提供了校准功能,允许开发者或用户调整触摸屏的输入映射,确保准确无误的触控体验。 3. **滤波和处理**:原始触摸数据可能存在噪声或不稳定性,...
`tslib`是一个开源的触摸屏校准库,主要用于处理和校准来自各种触摸设备的输入数据。版本1.21是该库的一个更新,提供了稳定性和兼容性的改进。在这个版本中,开发者可能已经修复了一些已知问题,并可能引入了新的...
7. **测试工具**:`tslib` 包含了一些命令行工具,如 `ts_calibrate`,用于校准触摸屏,以及 `ts_test`,用于测试触摸屏的输入和输出,帮助开发者调试和优化触摸屏性能。 8. **库的集成**:在开发过程中,`tslib` ...
TSLIB的设计使得开发者无需关心底层触摸屏驱动的具体实现细节,从而极大地简化了触摸屏应用程序的开发流程。 #### 3. ARMEasy6410开发板介绍 ARMEasy6410是一款基于ARM架构的高性能开发板,采用了S3C6410处理器,...
3. **校准触摸屏**:利用tslib提供的工具进行屏幕校准,以修正硬件可能存在的偏移或比例问题。 4. **处理触摸事件**:在QT应用中捕获QTouchEvent,通过中间驱动转发给tslib,然后将处理后的结果返回给应用。 5. **...
而tslib则是与QT紧密配合的库,专门处理触摸屏输入,提供了从原始触摸数据到可操作事件的转换。 tslib1.4版本的特性包括: 1. **兼容性**:tslib1.4对多种触控技术有良好的支持,如电阻式、电容式、红外线等,能够...
6. **配置文件**:在 tslib-master 中,通常会有一个名为 `ts.conf` 的配置文件,用于定义使用的插件、参数以及触摸屏的校准数据。这个文件可以根据不同设备的硬件特性进行定制。 7. **编译与安装**:解压 tslib-...
- tslib(Touch Screen Library)是Linux平台下处理触摸屏输入的库,它包含了一些基本的触摸屏校准和坐标转换功能。 2. **XPT7603触摸屏控制器** - XPT7603是一款常见的电阻式触摸屏控制器,用于处理电阻屏的触控...
标题“tslibonandroid”指的是在Android设备上使用TSlib(触摸屏库)进行屏幕校准的技术。TSlib是一个开源的库,专门用于处理来自触摸屏的原始输入数据,优化和校准触摸输入,以提高触摸操作的准确性和响应性。在...
`tslib`(Touchscreen Library)是用于Linux平台的开源库,专门设计用于处理触摸屏输入数据的校准和滤波。本文将深入探讨`tslib`的工作原理、功能,以及如何在实际应用中进行触摸屏校正。 `tslib`的主要目标是提供...
在Android系统中,TsCalibrate项目可能实现了`ts_calibrator`服务,用于检测和调整触摸屏的坐标映射,确保用户手指触摸的位置与屏幕上显示的点一致。 3. **Android APK**: APK(Android Package)是Android应用的二...