| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- #ifndef LUAT_TP_H
- #define LUAT_TP_H
- #include "luat_mcu.h"
- #include "luat_rtos.h"
- #include "luat_i2c.h"
- extern luat_rtos_task_handle tp_task_handle;
- typedef struct luat_tp_config luat_tp_config_t;
- typedef struct luat_tp_opts luat_tp_opts_t;
- typedef struct luat_touch_info{
- union{
- struct {
- uint64_t version:8;
- uint64_t x_max:16;
- uint64_t y_max:16;
- uint64_t touch_num:4;
- uint64_t :4;
- uint64_t int_type:2;
- uint64_t :1;
- uint64_t x2y:1;
- uint64_t stretch_rank:2;
- uint64_t :2;
- };
- uint64_t info;
- };
- }luat_tp_info_t;
- typedef struct{
- uint8_t event;
- uint8_t track_id;
- uint16_t x_coordinate;
- uint16_t y_coordinate;
- uint8_t width;
- uint32_t timestamp;
- } luat_tp_data_t;
- typedef struct luat_tp_config{
- char* name;
- luat_ei2c_t* soft_i2c;
- uint8_t address;
- uint8_t i2c_id;
- uint8_t pin_rst;
- uint8_t pin_int;
- uint8_t swap_xy;
- uint8_t refresh_rate;
- uint8_t tp_num;
- uint8_t int_type;
- int16_t w;
- int16_t h;
- luat_tp_opts_t* opts;
- int (*callback)(luat_tp_config_t* luat_tp_config, luat_tp_data_t* luat_tp_data);
- } luat_tp_config_t;
- typedef struct luat_tp_opts {
- const char* name;
- int (*init)(luat_tp_config_t* luat_tp_config);
- int (*read)(luat_tp_config_t* luat_tp_config, uint8_t* data);
- void (*deinit)(luat_tp_config_t* luat_tp_config);
- } luat_tp_opts_t;
- typedef enum{
- TP_EVENT_TYPE_NONE = 0,
- TP_EVENT_TYPE_DOWN,
- TP_EVENT_TYPE_UP,
- TP_EVENT_TYPE_MOVE
- } luat_tp_event_type_t;
- typedef enum{
- TP_INT_TYPE_RISING_EDGE = 0,
- TP_INT_TYPE_FALLING_EDGE,
- } luat_tp_int_type_t;
- extern luat_tp_opts_t tp_config_gt911;
- int luat_tp_init(luat_tp_config_t* luat_tp_config);
- #endif
|