_lv_indev_drv_t driver
输入设备驱动句柄,由lv_indev_add()接口注册
-
lv_indev_type_t type 输入设备类型
LV_INDEV_TYPE_NONE, /**< 未初始化状态*/ LV_INDEV_TYPE_POINTER, /**< 触摸板,鼠标,外部按钮 */ LV_INDEV_TYPE_KEYPAD, /**< 键盘*/ LV_INDEV_TYPE_BUTTON, /**< 外部(硬件按钮),分配给屏幕的特定点*/ LV_INDEV_TYPE_ENCODER, /**< 编码器只有左,右转和一个按钮*/
-
*read_cb 获取输入设备数据回调接口
void (*read_cb)(struct _lv_indev_drv_t * indev_drv, lv_indev_data_t * data);
这个回调在输入设备定时任务中周期调用,用来获取输入设备的状态和数据
-
*feedback_cb 反馈回调接口
void (*feedback_cb)(struct _lv_indev_drv_t *, uint8_t);
这个回调在输入设备有动作时触发事件发送时调用,反馈事件信息给驱动,第二个参数为lv_event_t
-
void * user_data 用户数据
-
struct _lv_disp_t * disp; 存放显示句柄的指针
lv_indev底层输入设备代码用来获取显示信息用的
-
lv_timer_t * read_timer; 输入设备周期定时器句柄
用于创建输入设备定时任务句柄
-
uint8_t scroll_limit; 在实际拖动对象之前要滑动的像素数
默认值为:#define LV_INDEV_DEF_SCROLL_LIMIT 10 (10个像素点)
-
uint8_t scroll_throw; 滚动减速百分比,值越大减速越快
-
uint8_t gesture_min_velocity; 判断触发手势的最小差值
手势分为左滑,右划,上滑,下滑。如果坐标偏移量低于这个值,则系统判定不会触发手势行为。默认值为
#define LV_INDEV_DEF_GESTURE_MIN_VELOCITY 3 (3个像素点)
-
uint8_t gesture_limit; 手势阈值
只有滑动偏移累计(绝对值)超过这个值才会触发手势动作,这个值默认为
#define LV_INDEV_DEF_GESTURE_LIMIT 50(50个像素点)
void indev_gesture(_lv_indev_proc_t * proc) 手势处理都在这个函数内
-
uint16_t long_press_time; 长按时间(ms)
当按住一个点时间超过这个时间阈值触发长按事件 (LV_EVENT_LONG_PRESSED)
#define LV_INDEV_DEF_LONG_PRESS_TIME 400(ms)
-
uint16_t long_press_repeat_time; 长按重复触发时间
当触发过上面的长按事件之后,如果继续保持长按超过这个设定值,则会触发长按重复事件 (LV_EVENT_LONG_PRESSED_REPEAT)文章来源:https://www.toymoban.com/news/detail-474726.html
默认值为#define LV_INDEV_DEF_LONG_PRESS_REP_TIME 100 (ms)文章来源地址https://www.toymoban.com/news/detail-474726.html
总结
_lv_indev_drv_t 结构体主要存放输入设备的一些设定参数包括长按设定时间,滑动限制范围,手势触发阈值,屏幕参数指针,以及获取外部输入设备实时参数接口,用于lvgl底层根据实际获取到的数据变化判断不同的行为
到了这里,关于lvgl lv_indev_t (一)之 _lv_indev_drv_t 解读的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!