HAPSRG / Mbed OS UDP_Client_0001

Dependencies:   UsaClient

Committer:
cocorlow
Date:
Sat Nov 06 19:06:40 2021 +0000
Revision:
2:1b4bba79cd29
Parent:
1:c050a4297deb
speed test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
cocorlow 0:4d6a8970674c 1 #include "mbed.h"
cocorlow 0:4d6a8970674c 2 #include "EthernetInterface.h"
cocorlow 0:4d6a8970674c 3 #include "UsaClient.hpp"
cocorlow 0:4d6a8970674c 4
cocorlow 0:4d6a8970674c 5 EthernetInterface net;
cocorlow 0:4d6a8970674c 6 DigitalIn button(PC_13);
cocorlow 0:4d6a8970674c 7
cocorlow 2:1b4bba79cd29 8 using namespace std::chrono;
cocorlow 2:1b4bba79cd29 9
cocorlow 0:4d6a8970674c 10 int main()
cocorlow 0:4d6a8970674c 11 {
cocorlow 2:1b4bba79cd29 12 printf("system start.\r\n");
cocorlow 0:4d6a8970674c 13 SocketAddress sockAddr;
cocorlow 0:4d6a8970674c 14 if (net.connect() != 0)
cocorlow 0:4d6a8970674c 15 {
cocorlow 0:4d6a8970674c 16 printf("a");
cocorlow 0:4d6a8970674c 17 return -1;
cocorlow 0:4d6a8970674c 18 }
cocorlow 0:4d6a8970674c 19 net.get_ip_address(&sockAddr);
cocorlow 0:4d6a8970674c 20 printf("IP: %s\r\n", sockAddr.get_ip_address() ? sockAddr.get_ip_address() : "No IP");
cocorlow 0:4d6a8970674c 21
cocorlow 0:4d6a8970674c 22
cocorlow 2:1b4bba79cd29 23 UsaClient udp(&net, "192.168.10.109", 10000); // server IP address, Port number
cocorlow 2:1b4bba79cd29 24 uint8_t send[200];
cocorlow 2:1b4bba79cd29 25 uint8_t recv[200];
cocorlow 2:1b4bba79cd29 26
cocorlow 2:1b4bba79cd29 27 int wN = 100;
cocorlow 2:1b4bba79cd29 28 int rN = 100;
cocorlow 2:1b4bba79cd29 29
cocorlow 2:1b4bba79cd29 30 Timer t;
cocorlow 0:4d6a8970674c 31
cocorlow 0:4d6a8970674c 32 while (1)
cocorlow 0:4d6a8970674c 33 {
cocorlow 0:4d6a8970674c 34 if (button)
cocorlow 0:4d6a8970674c 35 {
cocorlow 2:1b4bba79cd29 36 printf("\r\n##########################\r\n");
cocorlow 2:1b4bba79cd29 37 printf("write start\r\n");
cocorlow 2:1b4bba79cd29 38 printf("wN = %d\r\n", wN);
cocorlow 2:1b4bba79cd29 39 t.reset();
cocorlow 2:1b4bba79cd29 40 t.start();
cocorlow 2:1b4bba79cd29 41 for (int i = 0; i < wN; i++)
cocorlow 2:1b4bba79cd29 42 {
cocorlow 2:1b4bba79cd29 43 send[0] = i;
cocorlow 2:1b4bba79cd29 44 udp.Write(0, send, 100);
cocorlow 2:1b4bba79cd29 45 }
cocorlow 2:1b4bba79cd29 46 t.stop();
cocorlow 2:1b4bba79cd29 47 printf("write: %llu us\r\n", duration_cast<microseconds>(t.elapsed_time()).count());
cocorlow 2:1b4bba79cd29 48
cocorlow 2:1b4bba79cd29 49 ThisThread::sleep_for(chrono::milliseconds(1000));
cocorlow 2:1b4bba79cd29 50
cocorlow 2:1b4bba79cd29 51 printf("read start\r\n");
cocorlow 2:1b4bba79cd29 52 printf("r = %d\r\n", wN);
cocorlow 2:1b4bba79cd29 53 t.reset();
cocorlow 2:1b4bba79cd29 54 t.start();
cocorlow 2:1b4bba79cd29 55 for (int i = 0; i < rN; i++)
cocorlow 2:1b4bba79cd29 56 {
cocorlow 2:1b4bba79cd29 57 udp.Read(0, recv, 100);
cocorlow 2:1b4bba79cd29 58 }
cocorlow 2:1b4bba79cd29 59 t.stop();
cocorlow 2:1b4bba79cd29 60 printf("%d\r\n", recv[0]);
cocorlow 2:1b4bba79cd29 61 printf("read : %llu us\r\n", duration_cast<microseconds>(t.elapsed_time()).count());
cocorlow 2:1b4bba79cd29 62 ThisThread::sleep_for(chrono::milliseconds(1000));
cocorlow 0:4d6a8970674c 63 }
cocorlow 0:4d6a8970674c 64 }
cocorlow 0:4d6a8970674c 65 }
cocorlow 0:4d6a8970674c 66