WORKS
Dependencies: MAX44000 PWM_Tone_Library nexpaq_mdk
Fork of LED_Demo by
main.cpp
00001 #if !FEATURE_IPV4 00002 #error [NOT_SUPPORTED] IPV4 not supported for this target 00003 #endif 00004 00005 #include "mbed.h" 00006 #include "EthernetInterface.h" 00007 #include "TCPSocket.h" 00008 #include "greentea-client/test_env.h" 00009 #include "unity/unity.h" 00010 00011 00012 #ifndef MBED_CFG_TCP_CLIENT_ECHO_BUFFER_SIZE 00013 #define MBED_CFG_TCP_CLIENT_ECHO_BUFFER_SIZE 256 00014 #endif 00015 00016 namespace { 00017 char tx_buffer[MBED_CFG_TCP_CLIENT_ECHO_BUFFER_SIZE] = {0}; 00018 char rx_buffer[MBED_CFG_TCP_CLIENT_ECHO_BUFFER_SIZE] = {0}; 00019 const char ASCII_MAX = '~' - ' '; 00020 } 00021 00022 void prep_buffer(char *tx_buffer, size_t tx_size) { 00023 for (size_t i=0; i<tx_size; ++i) { 00024 tx_buffer[i] = (rand() % 10) + '0'; 00025 } 00026 } 00027 00028 int main() { 00029 GREENTEA_SETUP(20, "tcp_echo_client"); 00030 00031 EthernetInterface eth; 00032 eth.connect(); 00033 00034 printf("MBED: TCPClient IP address is '%s'\n", eth.get_ip_address()); 00035 printf("MBED: TCPClient waiting for server IP and port...\n"); 00036 00037 greentea_send_kv("target_ip", eth.get_ip_address()); 00038 00039 bool result = false; 00040 00041 char recv_key[] = "host_port"; 00042 char ipbuf[60] = {0}; 00043 char portbuf[16] = {0}; 00044 unsigned int port = 0; 00045 00046 greentea_send_kv("host_ip", " "); 00047 greentea_parse_kv(recv_key, ipbuf, sizeof(recv_key), sizeof(ipbuf)); 00048 00049 greentea_send_kv("host_port", " "); 00050 greentea_parse_kv(recv_key, portbuf, sizeof(recv_key), sizeof(ipbuf)); 00051 sscanf(portbuf, "%u", &port); 00052 00053 printf("MBED: Server IP address received: %s:%d \n", ipbuf, port); 00054 00055 TCPSocket sock(ð); 00056 SocketAddress tcp_addr(ipbuf, port); 00057 if (sock.connect(tcp_addr) == 0) { 00058 printf("HTTP: Connected to %s:%d\r\n", ipbuf, port); 00059 printf("tx_buffer buffer size: %u\r\n", sizeof(tx_buffer)); 00060 printf("rx_buffer buffer size: %u\r\n", sizeof(rx_buffer)); 00061 00062 prep_buffer(tx_buffer, sizeof(tx_buffer)); 00063 sock.send(tx_buffer, sizeof(tx_buffer)); 00064 00065 // Server will respond with HTTP GET's success code 00066 const int ret = sock.recv(rx_buffer, sizeof(rx_buffer)); 00067 00068 result = !memcmp(tx_buffer, rx_buffer, sizeof(tx_buffer)); 00069 00070 TEST_ASSERT_EQUAL(ret, sizeof(rx_buffer)); 00071 TEST_ASSERT_EQUAL(true, result); 00072 } 00073 00074 sock.close(); 00075 eth.disconnect(); 00076 GREENTEA_TESTSUITE_RESULT(result); 00077 }
Generated on Tue Jul 12 2022 12:28:40 by
1.7.2
