Dozingfiretruck 1 anno fa
parent
commit
3775b776ca
3 ha cambiato i file con 16 aggiunte e 48 eliminazioni
  1. 5 5
      components/tp/luat_tp.c
  2. 10 13
      components/tp/luat_tp.h
  3. 1 30
      components/tp/luat_tp_gt911.c

+ 5 - 5
components/tp/luat_tp.c

@@ -5,8 +5,8 @@
 #define LUAT_LOG_TAG "tp"
 #include "luat_log.h"
 
-extern luat_tp_config_t tp_config_gt911;
-luat_rtos_task_handle tp_task_handle = 0;
+
+luat_rtos_task_handle tp_task_handle = NULL;
 
 void luat_tp_task_entry(void* param){
     uint32_t message_id = 0;
@@ -14,7 +14,7 @@ void luat_tp_task_entry(void* param){
     luat_tp_data_t tp_data[10];
     while (1){
         luat_rtos_message_recv(tp_task_handle, &message_id, &luat_tp_config, LUAT_WAIT_FOREVER);
-        uint8_t touch_num = tp_config_gt911.read(luat_tp_config,tp_data);
+        uint8_t touch_num = luat_tp_config->opts->read(luat_tp_config,tp_data);
         for (uint8_t i=0; i<10; i++){
             if ((TP_EVENT_TYPE_DOWN == tp_data[i].event) || (TP_EVENT_TYPE_UP == tp_data[i].event) || (TP_EVENT_TYPE_MOVE == tp_data[i].event)){
                 LLOGD("event=%d, track_id=%d, x=%d, y=%d, s=%d, timestamp=%u.\r\n", 
@@ -25,8 +25,8 @@ void luat_tp_task_entry(void* param){
                             tp_data[i].width,
                             tp_data[i].timestamp);
             }
-            if (tp_config_gt911.callback){
-                tp_config_gt911.callback(luat_tp_config,&tp_data[i]);
+            if (luat_tp_config->callback){
+                luat_tp_config->callback(luat_tp_config,&tp_data[i]);
             }
         }
     }

+ 10 - 13
components/tp/luat_tp.h

@@ -8,7 +8,7 @@
 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 {
@@ -49,11 +49,16 @@ typedef struct luat_tp_config{
     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);
-    int (*callback)(luat_tp_config_t* luat_tp_config, luat_tp_data_t* luat_tp_data);
-} luat_tp_config_t;
+} luat_tp_opts_t;
 
 typedef enum{
 	TP_EVENT_TYPE_NONE = 0,
@@ -67,17 +72,9 @@ typedef enum{
 	TP_INT_TYPE_FALLING_EDGE,
 } luat_tp_int_type_t;
 
-int luat_tp_init(luat_tp_config_t* luat_tp_config);
-
-
-
-
-
-
-
-
-
+extern luat_tp_opts_t tp_config_gt911;
 
+int luat_tp_init(luat_tp_config_t* luat_tp_config);
 
 
 

+ 1 - 30
components/tp/luat_tp_gt911.c

@@ -220,17 +220,6 @@ static int tp_gt911_gpio_init(luat_tp_config_t* luat_tp_config){
     luat_gpio_set(luat_tp_config->pin_rst, Luat_GPIO_HIGH);
     luat_rtos_task_sleep(5);
 
-    // if (luat_tp_config->pin_int != LUAT_GPIO_NONE){
-    //     luat_gpio_t gpio = {0};
-    //     gpio.pin = luat_tp_config->pin_int;
-    //     gpio.mode = Luat_GPIO_IRQ;
-    //     gpio.pull = Luat_GPIO_DEFAULT;
-    //     gpio.irq = Luat_GPIO_FALLING;
-    //     gpio.irq_cb = luat_tp_irq_cb;
-    //     gpio.irq_args = luat_tp_config;
-    //     luat_gpio_setup(&gpio);
-    // }
-
     if (luat_tp_config->pin_rst != LUAT_GPIO_NONE){
         luat_rtos_task_sleep(2);
         luat_gpio_set(luat_tp_config->pin_rst, Luat_GPIO_HIGH);
@@ -242,17 +231,7 @@ static int tp_gt911_soft_reset(luat_tp_config_t* luat_tp_config){
     return tp_i2c_write_reg16(luat_tp_config, GT911_COMMAND_REG, (uint8_t[]){0x02}, 1);
 }
 
-static int tp_gt911_get_product_id(luat_tp_config_t* luat_tp_config, uint8_t *data, uint8_t len){
-	if (tp_i2c_read_reg16(luat_tp_config, GT911_PRODUCT_ID, data, len, 1)){
-        LLOGE("tp get product id fail!");
-        return -1;
-    }
-    return 0;
-}
-
 static int tp_gt911_init(luat_tp_config_t* luat_tp_config){
-    LLOGD("tp_gt911_init luat_tp_config:%p ",luat_tp_config);
-
     int ret = 0;
     tp_gt911_gpio_init(luat_tp_config);
     tp_i2c_init(luat_tp_config);
@@ -310,10 +289,6 @@ static int tp_gt911_init(luat_tp_config_t* luat_tp_config){
     luat_rtos_task_sleep(20);
     // tp_i2c_write_reg16(luat_tp_config, GT911_COMMAND_REG, (uint8_t[]){0x00}, 1);
     
-    uint8_t product_id[4] = {0};
-    tp_gt911_get_product_id(luat_tp_config, product_id, 4);
-    LLOGD("product id:%s", product_id);
-    
     if (luat_tp_config->pin_int != LUAT_GPIO_NONE){
         luat_gpio_t gpio = {0};
         gpio.pin = luat_tp_config->pin_int;
@@ -464,7 +439,6 @@ void gt911_read_point(uint8_t *input_buff, void *buf, uint8_t num){
 }
 
 static int tp_gt911_read(luat_tp_config_t* luat_tp_config, luat_tp_data_t *luat_tp_data){
-    LLOGD("tp_gt911_read luat_tp_config: %p",luat_tp_config);
     static uint8_t pre_touch = 0;
     uint8_t read_num = 0, touch_num=0, point_status=0;
     luat_tp_info_t luat_touch_info = {0};
@@ -494,9 +468,6 @@ static int tp_gt911_read(luat_tp_config_t* luat_tp_config, luat_tp_data_t *luat_
         
         tp_i2c_read_reg16(luat_tp_config, GT911_POINT1_REG, read_buff, touch_num * GT911_POINT_INFO_NUM, 1);
     
-        // for (size_t i = 0; i < touch_num * GT911_POINT_INFO_NUM; i++){
-        //     LLOGD("point[%d] = 0x%02x", i, read_buff[i]);
-        // }
         gt911_read_point(read_buff, luat_tp_data, touch_num);
     }
     
@@ -507,7 +478,7 @@ exit_:
     return touch_num;
 }
 
-luat_tp_config_t tp_config_gt911 = {
+luat_tp_opts_t tp_config_gt911 = {
     .name = "gt911",
     .init = tp_gt911_init,
     .deinit = tp_gt911_deinit,