Explorar el Código

add: airlink,uart添加sent事件,需要更新wifi固件来支持

Wendal Chen hace 9 meses
padre
commit
37c542168d

+ 10 - 0
components/airlink/src/driver/luat_airlink_drv_uart.c

@@ -132,3 +132,13 @@ int luat_airlink_drv_uart_read(int uart_id, void* data, size_t length) {
     }
     return 0;
 }
+
+int luat_airlink_drv_uart_sent_cb(int uart_id, void* buffer, size_t length) {
+    rtos_msg_t msg = {0};
+    msg.handler = l_uart_handler;
+    msg.ptr = NULL;
+    msg.arg1 = uart_id;
+    msg.arg2 = 0;
+    luat_msgbus_put(&msg, 0);
+    return 0;
+}

+ 12 - 0
components/airlink/src/exec/luat_airlink_cmd_exec_uart.c

@@ -126,3 +126,15 @@ int luat_airlink_cmd_exec_uart_data_cb(luat_airlink_cmd_t* cmd, void* userdata)
     luat_airlink_drv_uart_data_cb(id + 10, cmd->data + 9, cmd->len - 9);
     return 0;
 }
+
+// 接收sent事件
+extern int luat_airlink_drv_uart_sent_cb(int uart_id, void* buffer, size_t length);
+int luat_airlink_cmd_exec_uart_sent_cb(luat_airlink_cmd_t* cmd, void* userdata) {
+    if (cmd->len < 9) {
+        return 0;
+    }
+    uint8_t id = cmd->data[8];
+    // LLOGD("uart sent %d %d", id, cmd->len - 9);
+    luat_airlink_drv_uart_sent_cb(id + 10, cmd->data + 9, cmd->len - 9);
+    return 0;
+}

+ 2 - 0
components/airlink/src/luat_airlink_cmds.c

@@ -62,6 +62,7 @@ CMD_DEFINE(uart_setup);
 CMD_DEFINE(uart_write);
 CMD_DEFINE(uart_close);
 CMD_DEFINE(uart_data_cb);
+CMD_DEFINE(uart_sent_cb);
 
 __USER_FUNC_IN_RAM__ const luat_airlink_cmd_reg_t airlink_cmds[] = {
     // 最常用的放前面
@@ -111,6 +112,7 @@ __USER_FUNC_IN_RAM__ const luat_airlink_cmd_reg_t airlink_cmds[] = {
     CMD_REG(0x402, uart_close),
 #else
     CMD_REG(0x410, uart_data_cb),
+    CMD_REG(0x411, uart_sent_cb),
 #endif
 
     CMD_REG(0x21, nop),

+ 5 - 1
luat/demo/airlink/air8000_uart/main.lua

@@ -41,7 +41,11 @@ function uart_on()
             end
         until s == ""
     end)
-    log.info("uart.on", result)
+    log.info("uart.on", "receive", result)
+
+    uart.on(uartid, "sent", function(id)
+        log.info("uart", id, "sent")
+    end)
 end
 
 sys.taskInit(function()