觸控式螢幕驅動分析之——tslib概覽
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外掛運用 。而咱們 每次的觸控的操作都實行 多次觸控座標變換。