Tslib 是触摸屏驱动和运用 层之间的适配层,它从触摸屏驱动处取得 原始的装备 坐标数据,经过 一系列的去噪、去抖、坐标变换等操作,来去除噪声并将原始的装备 坐标转换为相应的屏幕坐标。从 tslib/src/tslib.h文件能够 看出,在tslib中为应用 层提供了2个首要 的接口:
ts_open(),ts_close();
ts_read()和ts_read_raw();
其中ts_read()为正常情况下的接口,ts_read_raw()为校准情况下运用 的接口。从tslib默认的ts.conf文件中能够 看出包含 如下基本插件:
pthres 为Tslib 提供的触摸屏灵敏度门槛插件;
variance 为Tslib提供的触摸屏滤波算法插件;
dejitter 为Tslib 提供的触摸屏去噪算法插件;
linear为Tslib 提供的触摸屏坐标变换插件。
tslib 从触摸屏驱动采样到的装备 坐标实行 处理再提供给运用 端的流程 大体如下:
raw device --> variance --> dejitter --> linear --> application
module module module module
再来看看ts_calibrate首要 做了哪些事情,校准情况下,tslib对驱动采样到的数据实行 处理的通常 流程 如下:
1。读取屏上5个点的坐标(Top Left,Top Right,Bottom Left,Bottom Right,Center),在实行 一系列的变换,取样的5个点,实际上是包含3个不一样 的X值,3个不一样 的Y值。和scaling 值一共7个值,一起保存到/etc/pointercal中.
2.这个/etc/pointercal文件首要 是供linear插件运用 。而咱们 每次的触摸的操作都实行 多次触摸坐标变换。