Morgan Du
/
Serial-to-Ethernet
Transfer data between UART ports and Ethernet.
Transfer data between UART ports and Ethernet.
- Support multiple UART ports.
- Support fixed IP address and DHCP.
- Support TCP server and TCP client modes.
- Support a simple web server for UART and Ethernet configuration.
Revision 6:dc9f344f4bf0, committed 2019-03-22
- Comitter:
- morgandu
- Date:
- Fri Mar 22 09:59:52 2019 +0000
- Parent:
- 5:7e7ad7c079fe
- Child:
- 7:cbb5a2a2a0d2
- Commit message:
- Update to MbedOS v5.11; Update NuMaker-mbed-SD-driver; Fix socket control due to MbedOS upgrade; Support NuMaker-IoT-M487 board
Changed in this revision
--- a/BufferedSerial.lib Fri Apr 20 10:51:28 2018 +0000 +++ b/BufferedSerial.lib Fri Mar 22 09:59:52 2019 +0000 @@ -1,1 +1,1 @@ -http://mbed.org/users/sam_grove/code/BufferedSerial/#a0d37088b405 +http://mbed.org/users/sam_grove/code/BufferedSerial/#7e5e866edd3d
--- a/NuMaker-mbed-SD-driver.lib Fri Apr 20 10:51:28 2018 +0000 +++ b/NuMaker-mbed-SD-driver.lib Fri Mar 22 09:59:52 2019 +0000 @@ -1,1 +1,1 @@ -https://github.com/OpenNuvoton/NuMaker-mbed-SD-driver/#7b763a96fa361da47a294efbe4bc201f7fb9c818 +https://github.com/OpenNuvoton/NuMaker-mbed-SD-driver/#620965ef5b323ed1c80c3ada9241daf49e487a41
--- a/README.md Fri Apr 20 10:51:28 2018 +0000 +++ b/README.md Fri Mar 22 09:59:52 2019 +0000 @@ -3,8 +3,12 @@ This example shows how to transfer data between serial port and ethernet. ## Required hardware -* A supported target - [NuMaker-PFM-M487](https://os.mbed.com/platforms/NUMAKER-PFM-M487/), [Numaker-PFM-NUC472](https://os.mbed.com/platforms/Nuvoton-NUC472/). -* MicroSD card is optional to store configuration. +* A supported target - + [NuMaker-IoT-M487](https://os.mbed.com/platforms/NUMAKER-IOT-M487/) + [NuMaker-PFM-M487](https://os.mbed.com/platforms/NUMAKER-PFM-M487/) + [Numaker-PFM-NUC472](https://os.mbed.com/platforms/Nuvoton-NUC472/) + +* MicroSD card is optional. It uses to store configuration when existed. ## Compile Settings
--- a/main.cpp Fri Apr 20 10:51:28 2018 +0000 +++ b/main.cpp Fri Mar 22 09:59:52 2019 +0000 @@ -25,7 +25,7 @@ /* Default configuration for network */ S_NET_CONFIG net_config = {IP_STATIC_MODE, IP_ADDRESS, NETWORK_MASK, GATEWAY_ADDRESS}; -#if defined (TARGET_NUMAKER_PFM_M487) +#if defined (TARGET_NUMAKER_PFM_M487) || defined(TARGET_NUMAKER_IOT_M487) BufferedSerial serial_0(PB_3, PB_2, 256, 4); // UART1 BufferedSerial serial_1(PA_5, PA_4, 256, 4); // UART5 //BufferedSerial serial_2(PB_13, PB_12, 256, 4); // UART0, Debug @@ -108,7 +108,6 @@ else if (n_len < 0) { printf("Socket Recv Err (%d)\r\n", n_len); - psocket->close(); break; } } @@ -139,7 +138,6 @@ else if (s_len < 0) { printf("Socket Send Err (%d)\r\n", s_len); - psocket->close(); break; } else // s_len >= s_index @@ -183,12 +181,13 @@ socket.set_timeout(1); exchange_data(pmap, &socket); + socket.close(); } void bridge_net_server(S_PORT_CONFIG *pmap) { - TCPServer tcp_server; - TCPSocket client_socket; + TCPSocket tcp_server; + TCPSocket *client_socket; SocketAddress client_address; nsapi_error_t err; @@ -210,19 +209,23 @@ return; } - client_socket.set_timeout(1); - while(1) { - if ((err=tcp_server.accept(&client_socket, &client_address)) < 0) + client_socket = tcp_server.accept(&err); + if (err < 0) // && err != NSAPI_ERROR_WOULD_BLOCK) { printf("TCP server fail to accept connection (%d)(%x).\r\n", err, (unsigned int)pmap); return; } - - printf("Connect (%d) from %s:%d ...\r\n", pmap->port, client_address.get_ip_address(), client_address.get_port()); - - exchange_data(pmap, &client_socket); + else + { + client_socket->getpeername(&client_address); + printf("Connect (%d) from %s:%d ...\r\n", pmap->port, client_address.get_ip_address(), client_address.get_port()); + + client_socket->set_timeout(1); + exchange_data(pmap, client_socket); + client_socket->close(); + } } }
--- a/mbed-os.lib Fri Apr 20 10:51:28 2018 +0000 +++ b/mbed-os.lib Fri Mar 22 09:59:52 2019 +0000 @@ -1,1 +1,1 @@ -https://github.com/ARMmbed/mbed-os/#f9ee4e849f8cbd64f1ec5fdd4ad256585a208360 +https://github.com/ARMmbed/mbed-os/#51d55508e8400b60af467005646c4e2164738d48
--- a/mbed_app.json Fri Apr 20 10:51:28 2018 +0000 +++ b/mbed_app.json Fri Mar 22 09:59:52 2019 +0000 @@ -14,15 +14,6 @@ "lwip.tcp-socket-max": 8, "lwip.tcp-server-max": 8, "lwip.udp-socket-max": 8 - }, - "NUMAKER_PFM_NUC472": { - "SD_DAT0": "PF_5", - "SD_DAT1": "PF_4", - "SD_DAT2": "PF_3", - "SD_DAT3": "PF_2", - "SD_CMD": "PF_7", - "SD_CLK": "PF_8", - "SD_CD": "PF_6" } } }