测试程序实现功能:在触摸屏上,使用两个触点来放大缩小图片,不断打印两个触点之间的距离。
1. 函数解析
ts_read_mt
是 tslib 库中用于读取多点触控(Multi-Touch)数据的核心函数。它允许应用程序获取多个触控点的实时状态(如坐标、压力等)
int ts_read_mt( struct tsdev *ts, // 触摸屏设备句柄 struct ts_sample_mt **samp, // 存储触控数据的结构体数组指针 int max_slots, // 设备支持的最大触控点数 int nr // 读取的样本数量(通常为1));
struct tsdev *ts
:指向已初始化的触摸屏设备句柄,通过 ts_open
或 ts_setup
函数获取。
struct ts_sample_mt **samp
:用于接收触控数据的 二级指针。函数会填充一个 ts_sample_mt
结构体数组,每个元素对应一个触控点的状态。
int max_slots
:指定设备支持的最大触控点数(即硬件能力)。需与硬件实际支持的触控点数一致(如 5
表示5点触控)。
int nr
:指定要读取的触控事件样本数量。通常设置为 1
,表示读取当前最新的触控状态。
2. 测试程序
(1)触点之间距离
(2)结构体
(3)打开设备,获取信息
(4)指针的指针,手动分配数组
(5)while循环,读取数据,更新数据,打印触点距离
3. 测试结果
-lts
是 GCC等编译器的一个选项,用于指定链接名为 libts.so
(动态库)或 libts.a
(静态库)的 tslib 触摸屏支持库。告诉编译器在链接阶段查找并链接 libts
库,以使用 tslib 提供的 API(如 ts_read()
, ts_open()
等)。