Explorar o código

update:tp添加防护

Dozingfiretruck hai 1 ano
pai
achega
5b5daa3352
Modificáronse 3 ficheiros con 8 adicións e 18 borrados
  1. 2 13
      components/tp/luat_lib_tp.c
  2. 6 4
      components/tp/luat_tp.c
  3. 0 1
      components/tp/luat_tp.h

+ 2 - 13
components/tp/luat_lib_tp.c

@@ -1,6 +1,7 @@
 #include "luat_base.h"
 #include "luat_tp.h"
 #include "luat_msgbus.h"
+#include "luat_mem.h"
 #include "luat_gpio.h"
 
 #define LUAT_LOG_TAG "tp"
@@ -73,7 +74,7 @@ int l_tp_callback(luat_tp_config_t* luat_tp_config, luat_tp_data_t* luat_tp_data
 static int l_tp_init(lua_State* L){
     int ret;
     size_t len = 0;
-    luat_tp_config_t *luat_tp_config = (luat_tp_config_t *)lua_newuserdata(L, sizeof(luat_tp_config_t));
+    luat_tp_config_t *luat_tp_config = (luat_tp_config_t *)luat_heap_malloc(sizeof(luat_tp_config_t));
     if (luat_tp_config == NULL) {
         LLOGE("out of system memory!!!");
         return 0;
@@ -149,12 +150,9 @@ static int l_tp_init(lua_State* L){
     }
     lua_pop(L, 1);
 
-    // luat_tp_config->luat_ref = luaL_ref(L, LUA_REGISTRYINDEX);
-
     ret = luat_tp_init(luat_tp_config);
     if (ret){
         // luat_tp_deinit(luat_tp_config);
-        // luaL_unref(L, LUA_REGISTRYINDEX, luat_tp_config->luat_ref);
         return 0;
     }else{
         lua_pushlightuserdata(L, luat_tp_config);
@@ -164,15 +162,6 @@ static int l_tp_init(lua_State* L){
 
 
 
-
-
-
-
-
-
-
-
-
 #include "rotable2.h"
 
 static const rotable_Reg_t reg_tp[] =

+ 6 - 4
components/tp/luat_tp.c

@@ -32,10 +32,12 @@ int luat_tp_init(luat_tp_config_t* luat_tp_config){
     if (tp_task_handle == 0){
         luat_rtos_task_create(&tp_task_handle, 4096, 10, "tp", luat_tp_task_entry, NULL, 10);
     }
-    tp_config_gt911.init(luat_tp_config);
-
-
-    return 0;
+    if (luat_tp_config->opts->init){
+        return luat_tp_config->opts->init(luat_tp_config);
+    }else{
+        LLOGE("tp init error, no init function found!");
+        return -1;
+    }
 }
 
 

+ 0 - 1
components/tp/luat_tp.h

@@ -51,7 +51,6 @@ typedef struct luat_tp_config{
     uint8_t int_type;
     int16_t w;
     int16_t h;
-    int luat_ref;
     void* luat_cb;
     luat_tp_opts_t* opts;
     int (*callback)(luat_tp_config_t* luat_tp_config, luat_tp_data_t* luat_tp_data);