Răsfoiți Sursa

update: esp32/air601/pc使用的网络层适配,改名为net_lwip2,暂时解决命名冲突

Wendal Chen 2 ani în urmă
părinte
comite
dd12870a4a

Fișier diff suprimat deoarece este prea mare
+ 151 - 151
components/network/adapter_lwip2/net_lwip2.c


+ 6 - 11
components/network/adapter_lwip2/net_lwip.h → components/network/adapter_lwip2/net_lwip2.h

@@ -38,25 +38,20 @@ typedef struct
 	// uint8_t common_timer_active;
 //	uint8_t fast_sleep_enable;
 	uint8_t next_socket_index;
-}net_lwip_ctrl_struct;
+}net_lwip2_ctrl_struct;
 
 
-void net_lwip_register_adapter(uint8_t adapter_index);
-void net_lwip_init(uint8_t adapter_index);
+void net_lwip2_register_adapter(uint8_t adapter_index);
+void net_lwip2_init(uint8_t adapter_index);
 int net_lwip_check_all_ack(int socket_id);
-void net_lwip_set_netif(uint8_t adapter_index, struct netif *netif);
-struct netif * net_lwip_get_netif(uint8_t adapter_index);
-// void net_lwip_input_packets(struct netif *netif, struct pbuf *p);
+void net_lwip2_set_netif(uint8_t adapter_index, struct netif *netif);
+struct netif * net_lwip2_get_netif(uint8_t adapter_index);
 /*
  * 如果是需要使用静态IP,则需要先设置好IP,再设置linkup
  * 如果之前设置了静态IP,现在想用动态IP,需要先删掉静态IP,再linkup
  * 一旦linkup,如果没有使用静态IP,就会启动DHCP
  * 不能用过DHCP获取IP的网卡,必须先设置静态IP!!!!!!,比如GPRS
  */
-void net_lwip_set_link_state(uint8_t adapter_index, uint8_t updown);
+void net_lwip2_set_link_state(uint8_t adapter_index, uint8_t updown);
 
-/*
- * GPRS网卡专用,user_data填adapter_index,不从network_adapter走
- */
-int net_lwip_set_static_ip(ip_addr_t *ip, ip_addr_t *submask, ip_addr_t *gateway, ip_addr_t *ipv6, void *user_data);
 #endif

+ 27 - 16
components/network/ulwip/binding/luat_lib_ulwip.c

@@ -37,6 +37,9 @@ lua代码 <- ulwip回调函数 <- lwip(netif->low_level_output) <- lwip处理逻
 #include "lwip/dhcp.h"
 #include "lwip/ethip6.h"
 
+// #include "net_lwip.h"
+#include "net_lwip2.h"
+
 #include "luat_network_adapter.h"
 
 #define LUAT_LOG_TAG "ulwip"
@@ -44,7 +47,7 @@ lua代码 <- ulwip回调函数 <- lwip(netif->low_level_output) <- lwip处理逻
 
 #define USERLWIP_NET_COUNT NW_ADAPTER_INDEX_LWIP_NETIF_QTY
 
-void net_lwip_set_link_state(uint8_t adapter_index, uint8_t updown);
+void net_lwip2_set_link_state(uint8_t adapter_index, uint8_t updown);
 
 typedef struct ulwip_ctx
 {
@@ -126,6 +129,7 @@ static err_t netif_output(struct netif *netif, struct pbuf *p) {
     return 0;
 }
 
+#if LWIP_NETIF_STATUS_CALLBACK
 static void netif_status_callback(struct netif *netif)
 {
     LLOGD("netif status changed %s", ip4addr_ntoa(netif_ip4_addr(netif)));
@@ -135,17 +139,18 @@ static void netif_status_callback(struct netif *netif)
         {
             if (!ip_addr_isany(&netif->ip_addr)) {
                 LLOGD("设置网络状态为UP %d", i);
-                net_lwip_set_link_state(nets[i].adapter_index, 1);
+                net_lwip2_set_link_state(nets[i].adapter_index, 1);
             }
             else {
                 LLOGD("设置网络状态为DOWN %d", i);
-                net_lwip_set_link_state(nets[i].adapter_index, 0);
+                net_lwip2_set_link_state(nets[i].adapter_index, 0);
             }
             break;
         }
     }
   
 }
+#endif
 
 static err_t luat_netif_init(struct netif *netif) {
     for (size_t i = 0; i < USERLWIP_NET_COUNT; i++)
@@ -221,23 +226,28 @@ static int l_ulwip_setup(lua_State *L) {
     }
 
     // 已经分配netif, 继续初始化
+    #if defined(TYPE_EC718P)
+    net_lwip2_set_netif(adapter_index, netif, luat_netif_init, 0);
+    #else
     netif_add(netif, IP4_ADDR_ANY, IP4_ADDR_ANY, IP4_ADDR_ANY, NULL, luat_netif_init, netif_input);
-
     netif->name[0] = 'u';
     netif->name[1] = 's';
     #if LWIP_IPV6
     netif_create_ip6_linklocal_address(netif, 1);
     netif->ip6_autoconfig_enabled = 1;
     #endif
+
+    #endif
+
+    #if LWIP_NETIF_STATUS_CALLBACK
     netif_set_status_callback(netif, netif_status_callback);
-    netif_set_default(netif);
-    // netif_set_up(netif);
-    // netif_set_link_down(netif);
+    #endif
 
-    // LLOGD("netif is up %d", netif_is_up(netif));
-  
-    /* Start DHCP*/
-    // dhcp_start(netif);
+    #if defined(TYPE_EC718P)
+    // nothing
+    #else
+    net_lwip2_set_netif(adapter_index, netif);
+    #endif
     
     lua_pushboolean(L, 1);
     return 1;
@@ -373,6 +383,7 @@ static int l_ulwip_dhcp(lua_State *L) {
         LLOGE("没有找到netif");
         return 0;
     }
+    #if LWIP_DHCP
     if (lua_type(L, 2) == LUA_TBOOLEAN)
     {
         if (lua_toboolean(L, 2))
@@ -385,6 +396,7 @@ static int l_ulwip_dhcp(lua_State *L) {
         lua_pushboolean(L, 1);
         return 1;
     }
+    #endif
     return 0;
 }
 
@@ -403,7 +415,7 @@ local ip, netmask, gw = ulwip.ip(socket.LWIP_STA)
 ulwip.ip(socket.LWIP_STA, "192.168.0.1", "255.255.255.0", "192.168.0.1")
 */
 static int l_ulwip_ip(lua_State *L) {
-    char* tmp = NULL;
+    const char* tmp = NULL;
     // 必须有适配器编号
     int adapter_index = luaL_checkinteger(L, 1);
     struct netif* netif = find_netif(adapter_index);
@@ -430,8 +442,8 @@ static int l_ulwip_ip(lua_State *L) {
     return 3;
 }
 
-void net_lwip_register_adapter(uint8_t adapter_index);
-void net_lwip_set_netif(uint8_t adapter_index, struct netif *netif);
+// void net_lwip2_register_adapter(uint8_t adapter_index);
+// void net_lwip2_set_netif(uint8_t adapter_index, struct netif *netif);
 /*
 将netif注册到luatos socket中
 @api ulwip.reg(adapter_index)
@@ -448,8 +460,7 @@ static int l_ulwip_reg(lua_State *L) {
         LLOGE("没有找到netif %d", adapter_index);
         return 0;
     }
-    net_lwip_set_netif(adapter_index, netif);
-    net_lwip_register_adapter(adapter_index);
+    net_lwip2_register_adapter(adapter_index);
     lua_pushboolean(L, 1);
     return 1;
 }

Unele fișiere nu au fost afișate deoarece prea multe fișiere au fost modificate în acest diff