Browse Source

update:补全一下network

alienwalker 3 years ago
parent
commit
c48f160861

+ 2 - 0
components/network/adapter/luat_lib_network.c

@@ -697,6 +697,8 @@ static const rotable_Reg_t reg_network_adapter[] =
     { "ETH0",           ROREG_INT(NW_ADAPTER_INDEX_ETH0)},
 	{ "STA",          	ROREG_INT(NW_ADAPTER_INDEX_STA)},
 	{ "AP",     		ROREG_INT(NW_ADAPTER_INDEX_AP)},
+	{ "GPRS",          	ROREG_INT(NW_ADAPTER_INDEX_GPRS)},
+	{ "USB",     		ROREG_INT(NW_ADAPTER_INDEX_USB)},
     { "LINK",           ROREG_INT(EV_NW_RESULT_LINK & 0x0fffffff)},
 	{ "ON_LINE",          	ROREG_INT(EV_NW_RESULT_CONNECT & 0x0fffffff)},
 	{ "EVENT",          	ROREG_INT(EV_NW_RESULT_EVENT & 0x0fffffff)},

+ 26 - 42
components/network/adapter/luat_network_adapter.c

@@ -6,6 +6,32 @@
 #include "platform_def.h"
 #include "ctype.h"
 #include "luat_network_adapter.h"
+
+typedef struct
+{
+	int last_adapter_index;
+	int default_adapter_index;
+	llist_head dns_cache_head;
+	uint8_t is_init;
+}network_info_t;
+
+typedef struct
+{
+
+	network_adapter_info *opt;
+	void *user_data;
+	uint8_t *ctrl_busy;
+	network_ctrl_t *ctrl_table;
+	uint16_t port;
+}network_adapter_t;
+
+static network_adapter_t prv_adapter_table[NW_ADAPTER_QTY];
+static network_info_t prv_network = {
+		.last_adapter_index = -1,
+		.default_adapter_index = -1,
+		.is_init = 0,
+};
+
 #ifdef LUAT_USE_LWIP
 
 extern void DBG_Printf(const char* format, ...);
@@ -36,28 +62,7 @@ extern void DBG_HexPrintf(void *Data, unsigned int len);
 #define TCP_KEEPINTVL  0x04    /* set pcb->keep_intvl - Use seconds for get/setsockopt */
 #define TCP_KEEPCNT    0x05    /* set pcb->keep_cnt   - Use number of probes sent for get/setsockopt */
 
-typedef struct
-{
-	int last_adapter_index;
-	llist_head dns_cache_head;
-	uint8_t is_init;
-}network_info_t;
-
-typedef struct
-{
-
-	network_adapter_info *opt;
-	void *user_data;
-	uint8_t *ctrl_busy;
-	network_ctrl_t *ctrl_table;
-	uint16_t port;
-}network_adapter_t;
 
-static network_adapter_t prv_adapter_table[NW_ADAPTER_QTY];
-static network_info_t prv_network = {
-		.last_adapter_index = -1,
-		.is_init = 0,
-};
 
 static uint8_t network_check_ip_same(luat_ip_addr_t *ip1, luat_ip_addr_t *ip2)
 {
@@ -1928,28 +1933,7 @@ extern void DBG_HexPrintf(void *Data, unsigned int len);
 #define TCP_KEEPINTVL  0x04    /* set pcb->keep_intvl - Use seconds for get/setsockopt */
 #define TCP_KEEPCNT    0x05    /* set pcb->keep_cnt   - Use number of probes sent for get/setsockopt */
 
-typedef struct
-{
-	int last_adapter_index;
-	llist_head dns_cache_head;
-	uint8_t is_init;
-}network_info_t;
-
-typedef struct
-{
-
-	network_adapter_info *opt;
-	void *user_data;
-	uint8_t *ctrl_busy;
-	network_ctrl_t *ctrl_table;
-	uint16_t port;
-}network_adapter_t;
 
-static network_adapter_t prv_adapter_table[NW_ADAPTER_QTY];
-static network_info_t prv_network = {
-		.last_adapter_index = -1,
-		.is_init = 0,
-};
 
 static uint8_t network_check_ip_same(luat_ip_addr_t *ip1, luat_ip_addr_t *ip2)
 {

+ 3 - 1
components/network/adapter/luat_network_adapter.h

@@ -66,8 +66,10 @@ enum
 	EV_NW_RESULT_EVENT = EV_NW_RESULT_BASE + NW_WAIT_EVENT,
 
 	NW_ADAPTER_INDEX_ETH0 = 0,		//以太网
-	NW_ADAPTER_INDEX_STA,			//wifi sta和蜂窝
+	NW_ADAPTER_INDEX_STA,			//wifi sta
 	NW_ADAPTER_INDEX_AP,			//wifi ap
+	NW_ADAPTER_INDEX_GPRS,			//蜂窝
+	NW_ADAPTER_INDEX_USB,			//USB网卡
 	NW_ADAPTER_QTY,
 
 	NW_CMD_AUTO_HEART_TIME = 0,

+ 4 - 2
components/network/lwip/port/lwipopts.h

@@ -8,8 +8,8 @@
 #endif
 #define NO_SYS                          1	//是否不带OS,1不带
 #define NO_SYS_NO_TIMERS               1
-#define LWIP_TIMERS                     0
-#define LWIP_TIMERS_CUSTOM              1
+#define LWIP_TIMERS                     1
+#define LWIP_TIMERS_CUSTOM              0
 #define LWIP_MPU_COMPATIBLE             1
 #define LWIP_TCPIP_CORE_LOCKING         0
 #define LWIP_TCPIP_CORE_LOCKING_INPUT   0
@@ -171,6 +171,8 @@
 #define LWIP_POSIX_SOCKETS_IO_NAMES     1
 #define LWIP_SOCKET_OFFSET              0
 #define LWIP_TCP_KEEPALIVE              1
+#define TCP_KEEPIDLE_DEFAULT			540000	//cmnet require 10min, so use 9min
+#define TCP_KEEPINTVL_DEFAULT			5000
 #define LWIP_SO_SNDTIMEO                1
 #define LWIP_SO_RCVTIMEO                1
 #define LWIP_SO_SNDRCVTIMEO_NONSTANDARD 1