optimize socket demo on nuttx

This commit is contained in:
wlyu 2022-09-28 15:19:01 +08:00
parent 7052951624
commit 48250b7285
4 changed files with 44 additions and 72 deletions

View File

@ -50,7 +50,7 @@ uint16_t tcp_socket_port = LWIP_TARGET_PORT;
char tcp_ip_str[128] = {0}; char tcp_ip_str[128] = {0};
/******************************************************************************/ /******************************************************************************/
void tcp_set_ip(char *ip_str) void TcpSocketConfigParam(char *ip_str)
{ {
int ip1, ip2, ip3, ip4, port = 0; int ip1, ip2, ip3, ip4, port = 0;
@ -83,7 +83,7 @@ void tcp_set_ip(char *ip_str)
} }
} }
static void TCPSocketRecvTask(void *arg) static void TcpSocketRecvTask(void *arg)
{ {
int fd = -1, clientfd; int fd = -1, clientfd;
int recv_len; int recv_len;
@ -155,24 +155,26 @@ static void TCPSocketRecvTask(void *arg)
free(recv_buf); free(recv_buf);
} }
#ifdef ADD_XIZI_FETURES void TcpSocketRecvTest(int argc, char *argv[])
void TCPSocketRecvTest(int argc, char *argv[])
{ {
int result = 0;
if(argc >= 2) if(argc >= 2)
{ {
lw_print("lw: [%s] target ip %s\n", __func__, argv[1]); lw_print("lw: [%s] target ip %s\n", __func__, argv[1]);
tcp_set_ip(argv[1]); TcpSocketConfigParam(argv[1]);
} }
#ifdef ADD_XIZI_FETURES
lwip_config_tcp(lwip_ipaddr, lwip_netmask, tcp_socket_ip); lwip_config_tcp(lwip_ipaddr, lwip_netmask, tcp_socket_ip);
sys_thread_new("TCPSocketRecvTask", TCPSocketRecvTask, NULL, LWIP_TASK_STACK_SIZE, LWIP_DEMO_TASK_PRIO); sys_thread_new("TcpSocketRecvTask", TcpSocketRecvTask, NULL, LWIP_TASK_STACK_SIZE, LWIP_DEMO_TASK_PRIO);
}
PRIV_SHELL_CMD_FUNCTION(TCPSocketRecvTest, a tcp receive sample, PRIV_SHELL_CMD_MAIN_ATTR);
#endif #endif
static void TCPSocketSendTask(void *arg) #ifdef ADD_NUTTX_FETURES
TcpSocketRecvTask(NULL);
#endif
}
PRIV_SHELL_CMD_FUNCTION(TcpSocketRecvTest, a tcp receive sample, PRIV_SHELL_CMD_MAIN_ATTR);
static void TcpSocketSendTask(void *arg)
{ {
int cnt = LWIP_DEMO_TIMES; int cnt = LWIP_DEMO_TIMES;
int fd = -1; int fd = -1;
@ -219,32 +221,21 @@ static void TCPSocketSendTask(void *arg)
return; return;
} }
#ifdef ADD_XIZI_FETURES void TcpSocketSendTest(int argc, char *argv[])
void TCPSocketSendTest(int argc, char *argv[])
{ {
if(argc >= 2) if(argc >= 2)
{ {
lw_print("lw: [%s] target ip %s\n", __func__, argv[1]); lw_print("lw: [%s] target ip %s\n", __func__, argv[1]);
tcp_set_ip(argv[1]); TcpSocketConfigParam(argv[1]);
} }
#ifdef ADD_XIZI_FETURES
lwip_config_tcp(lwip_ipaddr, lwip_netmask, tcp_socket_ip); lwip_config_tcp(lwip_ipaddr, lwip_netmask, tcp_socket_ip);
sys_thread_new("TCP Socket Send", TCPSocketSendTask, NULL, LWIP_TASK_STACK_SIZE, LWIP_DEMO_TASK_PRIO); sys_thread_new("Tcp Socket Send", TcpSocketSendTask, NULL, LWIP_TASK_STACK_SIZE, LWIP_DEMO_TASK_PRIO);
}
PRIV_SHELL_CMD_FUNCTION(TCPSocketSendTest, a tcp send sample, PRIV_SHELL_CMD_MAIN_ATTR);
#endif #endif
#ifdef ADD_NUTTX_FETURES #ifdef ADD_NUTTX_FETURES
void tcp_recv_demo(char *ip_str) TcpSocketSendTask(NULL);
{
tcp_set_ip(ip_str);
TCPSocketRecvTask(NULL);
}
void tcp_send_demo(char *ip_str)
{
tcp_set_ip(ip_str);
TCPSocketSendTask(NULL);
}
#endif #endif
}
PRIV_SHELL_CMD_FUNCTION(TcpSocketSendTest, a tcp send sample, PRIV_SHELL_CMD_MAIN_ATTR);

View File

@ -45,7 +45,7 @@ char udp_ip_str[128] = {0};
uint16_t udp_socket_port = LWIP_LOCAL_PORT; uint16_t udp_socket_port = LWIP_LOCAL_PORT;
/*****************************************************************************/ /*****************************************************************************/
void udp_set_ip(char *ip_str) void UdpSocketConfigParam(char *ip_str)
{ {
int ip1, ip2, ip3, ip4, port = 0; int ip1, ip2, ip3, ip4, port = 0;
@ -115,7 +115,7 @@ static void UdpSocketRecvTask(void *arg)
continue; continue;
} }
lw_notice("UDP bind sucess, start to receive.\n"); lw_notice("UDP bind success, start to receive.\n");
lw_notice("\n\nLocal Port:%d\n\n", udp_socket_port); lw_notice("\n\nLocal Port:%d\n\n", udp_socket_port);
while(1) while(1)
@ -135,21 +135,24 @@ static void UdpSocketRecvTask(void *arg)
} }
} }
#ifdef ADD_XIZI_FETURES
void UdpSocketRecvTest(int argc, char *argv[]) void UdpSocketRecvTest(int argc, char *argv[])
{ {
if(argc >= 2) if(argc >= 2)
{ {
lw_notice("lw: [%s] target ip %s\n", __func__, argv[1]); lw_notice("lw: [%s] target ip %s\n", __func__, argv[1]);
udp_set_ip(argv[1]); UdpSocketConfigParam(argv[1]);
} }
#ifdef ADD_XIZI_FETURES
lwip_config_tcp(lwip_ipaddr, lwip_netmask, udp_socket_ip); lwip_config_tcp(lwip_ipaddr, lwip_netmask, udp_socket_ip);
sys_thread_new("UdpSocketRecvTask", UdpSocketRecvTask, NULL, sys_thread_new("UdpSocketRecvTask", UdpSocketRecvTask, NULL,
LWIP_TASK_STACK_SIZE, LWIP_DEMO_TASK_PRIO); LWIP_TASK_STACK_SIZE, LWIP_DEMO_TASK_PRIO);
#endif
#ifdef ADD_NUTTX_FETURES
UdpSocketRecvTask(NULL);
#endif
} }
PRIV_SHELL_CMD_FUNCTION(UdpSocketRecvTest, a udp receive sample, PRIV_SHELL_CMD_MAIN_ATTR); PRIV_SHELL_CMD_FUNCTION(UdpSocketRecvTest, a udp receive sample, PRIV_SHELL_CMD_MAIN_ATTR);
#endif
static void UdpSocketSendTask(void *arg) static void UdpSocketSendTask(void *arg)
{ {
@ -195,32 +198,22 @@ static void UdpSocketSendTask(void *arg)
return; return;
} }
#ifdef ADD_XIZI_FETURES
void UdpSocketSendTest(int argc, char *argv[]) void UdpSocketSendTest(int argc, char *argv[])
{ {
if(argc >= 2) if(argc >= 2)
{ {
lw_notice("lw: [%s] target ip %s\n", __func__, argv[1]); lw_notice("lw: [%s] target ip %s\n", __func__, argv[1]);
udp_set_ip(argv[1]); UdpSocketConfigParam(argv[1]);
} }
#ifdef ADD_XIZI_FETURES
lwip_config_tcp(lwip_ipaddr, lwip_netmask, udp_socket_ip); lwip_config_tcp(lwip_ipaddr, lwip_netmask, udp_socket_ip);
sys_thread_new("UdpSocketSendTask", UdpSocketSendTask, NULL, LWIP_TASK_STACK_SIZE, sys_thread_new("UdpSocketSendTask", UdpSocketSendTask, NULL, LWIP_TASK_STACK_SIZE,
sLWIP_DEMO_TASK_PRIO); LWIP_DEMO_TASK_PRIO);
#endif
#ifdef ADD_NUTTX_FETURES
UdpSocketSendTask(NULL);
#endif
} }
PRIV_SHELL_CMD_FUNCTION(UdpSocketSendTest, a udp send sample, PRIV_SHELL_CMD_MAIN_ATTR); PRIV_SHELL_CMD_FUNCTION(UdpSocketSendTest, a udp send sample, PRIV_SHELL_CMD_MAIN_ATTR);
#endif
#ifdef ADD_NUTTX_FETURES
void udp_recv_demo(char *ip_str)
{
udp_set_ip(ip_str);
UdpSocketRecvTask(NULL);
}
void udp_send_demo(char *ip_str)
{
udp_set_ip(ip_str);
UdpSocketSendTask(NULL);
}
#endif

View File

@ -73,9 +73,7 @@ CONFIG_READLINE_CMD_HISTORY=y
CONFIG_READLINE_CMD_HISTORY_LEN=100 CONFIG_READLINE_CMD_HISTORY_LEN=100
CONFIG_READLINE_CMD_HISTORY_LINELEN=120 CONFIG_READLINE_CMD_HISTORY_LINELEN=120
CONFIG_READLINE_TABCOMPLETION=y CONFIG_READLINE_TABCOMPLETION=y
CONFIG_FS_ROMFS=y
CONFIG_NSH_ROMFSETC=y
CONFIG_NSH_ARCHROMFS=y
CONFIG_BOARDCTL_RESET=y CONFIG_BOARDCTL_RESET=y
CONFIG_INIT_ENTRYPOINT="nsh_main" CONFIG_INIT_ENTRYPOINT="nsh_main"
CONFIG_APPLICATION_CONNECTION=y CONFIG_APPLICATION_CONNECTION=y

View File

@ -81,45 +81,35 @@ int cmd_Extsram(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
* Name: socket test * Name: socket test
****************************************************************************/ ****************************************************************************/
#if defined(CONFIG_SOCKET_DEMO) && !defined(CONFIG_NSH_DISABLE_SOCKET_DEMO) #if defined(CONFIG_SOCKET_DEMO) && !defined(CONFIG_NSH_DISABLE_SOCKET_DEMO)
extern void udp_set_ip(char *ip_str); void UdpSocketRecvTest(int argc, char *argv[]);
extern int udp_recv_demo(void);
int cmd_Udprecv(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv) int cmd_Udprecv(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
{ {
nsh_output(vtbl, "Hello, UDP receive!\n"); nsh_output(vtbl, "Hello, UDP receive!\n");
if(argc == 2) UdpSocketRecvTest(argc, argv);
udp_set_ip(argv[1]);
udp_recv_demo();
return OK; return OK;
} }
extern int udp_send_demo(void); void UdpSocketSendTest(int argc, char *argv[]);
int cmd_Udpsend(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv) int cmd_Udpsend(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
{ {
nsh_output(vtbl, "Hello, UDP send!\n"); nsh_output(vtbl, "Hello, UDP send!\n");
if(argc == 2) UdpSocketSendTest(argc, argv);
udp_set_ip(argv[1]);
udp_send_demo();
return OK; return OK;
} }
extern void tcp_set_ip(char *ip_str); void TcpSocketRecvTest(int argc, char *argv[]);
extern int tcp_recv_demo(void);
int cmd_Tcprecv(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv) int cmd_Tcprecv(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
{ {
nsh_output(vtbl, "Hello, TCP receive!\n"); nsh_output(vtbl, "Hello, TCP receive!\n");
if(argc == 2) TcpSocketRecvTest(argc, argv);
tcp_set_ip(argv[1]);
tcp_recv_demo();
return OK; return OK;
} }
extern int tcp_send_demo(void); void TcpSocketSendTest(int argc, char *argv[]);
int cmd_Tcpsend(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv) int cmd_Tcpsend(FAR struct nsh_vtbl_s *vtbl, int argc, char **argv)
{ {
nsh_output(vtbl, "Hello, TCP send!\n"); nsh_output(vtbl, "Hello, TCP send!\n");
if(argc == 2) TcpSocketSendTest(argc, argv);
tcp_set_ip(argv[1]);
tcp_send_demo();
return OK; return OK;
} }
#endif #endif