extp - 触摸系统拓展库#
示例
本文件为触摸系统拓展库,核心业务逻辑为:
1、初始化触摸设备,支持多种触摸芯片
2、处理原始触摸数据并解析为各种手势事件
3、通过统一消息接口发布触摸事件
4、提供消息发布控制功能
5、提供滑动和长按阈值配置功能
支持的触摸事件类型包括:
RAW_DATA、TOUCH_DOWN、MOVE_X、MOVE_Y、SWIPE_LEFT、SWIPE_RIGHT、
SWIPE_UP、SWIPE_DOWN、SINGLE_TAP、LONG_PRESS
本文件的对外接口有5个:
1、extp.init(param):触摸设备初始化函数
2、extp.set_publish_enabled(msg_type, enabled):设置消息发布状态
3、extp.get_publish_enable(msg_type):获取消息发布状态
4、extp.set_swipe_threshold(threshold):设置滑动判定阈值
5、extp.set_long_press_threshold(threshold):设置长按判定阈值
所有触摸事件均通过sys.publish("BASE_TOUCH_EVENT", event_type, ...)发布
extp.set_publish_enabled(msg_type, enabled)#
设置消息发布状态
参数
传入值类型 |
解释 |
|---|---|
string |
msg_type 消息类型,支持”ALL”或具体事件类型 |
bool |
enabled 是否启用发布 |
返回值
返回值类型 |
解释 |
|---|---|
bool |
操作成功返回true,失败返回false |
例子
-- 启用单击事件
extp.set_publish_enabled("SINGLE_TAP", true)
-- 禁用所有消息发布
extp.set_publish_enabled("ALL", false)
extp.get_publish_enable(msg_type)#
获取消息发布状态
参数
传入值类型 |
解释 |
|---|---|
string |
msg_type 消息类型,”ALL”或具体事件类型 |
返回值
返回值类型 |
解释 |
|---|---|
bool|table |
发布状态或所有状态表 |
例子
-- 获取单击事件状态
local enabled = extp.get_publish_enable("SINGLE_TAP")
-- 获取所有状态
local all_status = extp.get_publish_enable("ALL")
extp.set_swipe_threshold(threshold)#
设置滑动判定阈值
参数
传入值类型 |
解释 |
|---|---|
number |
threshold 滑动判定阈值(像素) |
返回值
返回值类型 |
解释 |
|---|---|
bool |
设置成功返回true,失败返回false |
例子
-- 设置滑动阈值为50像素
extp.set_swipe_threshold(50)
extp.set_long_press_threshold(threshold)#
设置长按判定阈值
参数
传入值类型 |
解释 |
|---|---|
number |
threshold 长按判定阈值(毫秒) |
返回值
返回值类型 |
解释 |
|---|---|
bool |
设置成功返回true,失败返回false |
例子
-- 设置长按阈值为800毫秒
extp.set_long_press_threshold(800)
extp.init(param)#
初始化触摸设备
参数
传入值类型 |
解释 |
|---|---|
table |
param 触摸芯片配置参数,参考库的说明及demo用法 |
返回值
返回值类型 |
解释 |
|---|---|
bool |
初始化成功返回true,失败返回false |
例子
-- 基础触摸初始化
extp.init({
tp_model = "gt911",
i2c_id = 0,
pin_rst = 20,
pin_int = 21
})
-- 使用预定义配置
extp.init({tp_model = "AirLCD_1010"})
-- 带屏幕尺寸的初始化
extp.init({
tp_model = "gt911",
i2c_id = 0,
pin_rst = 20,
pin_int = 21,
w = 480,
h = 320
})