/** return length of buffer used */ int RULEto_buffer( Rule e, char * buffer, int length ) { if( prep_buffer( buffer, length ) ) { return -1; } RULE_out( e, 0 ); return( finish_buffer() ); }
/** return length of buffer used */ int PROCto_buffer( Procedure e, char * buffer, int length ) { if( prep_buffer( buffer, length ) ) { return -1; } PROC_out( e, 0 ); return( finish_buffer() ); }
/* return length of buffer used */ int STMTto_buffer( Statement s, char * buffer, int length ) { if( prep_buffer( buffer, length ) ) { return -1; } STMT_out( s, 0 ); return( finish_buffer() ); }
/** return length of buffer used */ int SCHEMAref_to_buffer( Schema s, char * buffer, int length ) { if( prep_buffer( buffer, length ) ) { return -1; } REFout( s->u.schema->usedict, s->u.schema->use_schemas, "USE", 0 ); REFout( s->u.schema->refdict, s->u.schema->ref_schemas, "REFERENCE", 0 ); return( finish_buffer() ); }
int main() { GREENTEA_SETUP(20, "udp_echo"); EthernetInterface eth; eth.connect(); printf("UDP client IP Address is %s\n", eth.get_ip_address()); greentea_send_kv("target_ip", eth.get_ip_address()); char recv_key[] = "host_port"; char ipbuf[60] = {0}; char portbuf[16] = {0}; unsigned int port = 0; UDPSocket sock; sock.open(ð); sock.set_timeout(MBED_CFG_UDP_CLIENT_ECHO_TIMEOUT); greentea_send_kv("host_ip", " "); greentea_parse_kv(recv_key, ipbuf, sizeof(recv_key), sizeof(ipbuf)); greentea_send_kv("host_port", " "); greentea_parse_kv(recv_key, portbuf, sizeof(recv_key), sizeof(ipbuf)); sscanf(portbuf, "%u", &port); printf("MBED: UDP Server IP address received: %s:%d \n", ipbuf, port); SocketAddress udp_addr(ipbuf, port); int success = 0; for (int i=0; i < ECHO_LOOPS; ++i) { prep_buffer(tx_buffer, sizeof(tx_buffer)); const int ret = sock.sendto(udp_addr, tx_buffer, sizeof(tx_buffer)); printf("[%02d] sent...%d Bytes \n", i, ret); SocketAddress temp_addr; const int n = sock.recvfrom(&temp_addr, rx_buffer, sizeof(rx_buffer)); printf("[%02d] recv...%d Bytes \n", i, n); if ((temp_addr == udp_addr && n == sizeof(tx_buffer) && memcmp(rx_buffer, tx_buffer, sizeof(rx_buffer)) == 0)) { success += 1; } } bool result = (success > 3*ECHO_LOOPS/4); sock.close(); eth.disconnect(); GREENTEA_TESTSUITE_RESULT(result); }
int main() { GREENTEA_SETUP(20, "tcp_echo_client"); EthernetInterface eth; eth.connect(); printf("MBED: TCPClient IP address is '%s'\n", eth.get_ip_address()); printf("MBED: TCPClient waiting for server IP and port...\n"); greentea_send_kv("target_ip", eth.get_ip_address()); bool result = false; char recv_key[] = "host_port"; char ipbuf[60] = {0}; char portbuf[16] = {0}; unsigned int port = 0; greentea_send_kv("host_ip", " "); greentea_parse_kv(recv_key, ipbuf, sizeof(recv_key), sizeof(ipbuf)); greentea_send_kv("host_port", " "); greentea_parse_kv(recv_key, portbuf, sizeof(recv_key), sizeof(ipbuf)); sscanf(portbuf, "%u", &port); printf("MBED: Server IP address received: %s:%d \n", ipbuf, port); TCPSocket sock(ð); SocketAddress tcp_addr(ipbuf, port); if (sock.connect(tcp_addr) == 0) { printf("HTTP: Connected to %s:%d\r\n", ipbuf, port); printf("tx_buffer buffer size: %u\r\n", sizeof(tx_buffer)); printf("rx_buffer buffer size: %u\r\n", sizeof(rx_buffer)); prep_buffer(tx_buffer, sizeof(tx_buffer)); sock.send(tx_buffer, sizeof(tx_buffer)); // Server will respond with HTTP GET's success code const int ret = sock.recv(rx_buffer, sizeof(rx_buffer)); result = !memcmp(tx_buffer, rx_buffer, sizeof(tx_buffer)); TEST_ASSERT_EQUAL(ret, sizeof(rx_buffer)); TEST_ASSERT_EQUAL(true, result); } sock.close(); eth.disconnect(); GREENTEA_TESTSUITE_RESULT(result); }
int main() { GREENTEA_SETUP(20, "udp_echo_client"); EthernetInterface eth; eth.connect(); printf("UDP client IP Address is %s\n", eth.get_ip_address()); greentea_send_kv("target_ip", eth.get_ip_address()); bool result = true; char recv_key[] = "host_port"; char ipbuf[60] = {0}; char portbuf[16] = {0}; unsigned int port = 0; UDPSocket sock; sock.open(ð); greentea_send_kv("host_ip", " "); greentea_parse_kv(recv_key, ipbuf, sizeof(recv_key), sizeof(ipbuf)); greentea_send_kv("host_port", " "); greentea_parse_kv(recv_key, portbuf, sizeof(recv_key), sizeof(ipbuf)); sscanf(portbuf, "%u", &port); printf("MBED: UDP Server IP address received: %s:%d \n", ipbuf, port); SocketAddress addr(ipbuf, port); for (int i=0; i < ECHO_LOOPS; ++i) { prep_buffer(tx_buffer, sizeof(tx_buffer)); const int ret = sock.sendto(addr, tx_buffer, sizeof(tx_buffer)); printf("[%02d] sent...%d Bytes \n", i, ret); const int n = sock.recvfrom(&addr, rx_buffer, sizeof(rx_buffer)); printf("[%02d] recv...%d Bytes \n", i, n); if (memcmp(rx_buffer, tx_buffer, sizeof(rx_buffer))) { result = false; break; } } sock.close(); eth.disconnect(); GREENTEA_TESTSUITE_RESULT(result); }