From 4bae244f426a39951f404af8f752f715a151f20e Mon Sep 17 00:00:00 2001 From: Trygve Laugstøl Date: Wed, 25 Apr 2018 09:21:13 +0200 Subject: o Renaming arduino to assignments. --- assignments/client1/client1.ino | 71 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 assignments/client1/client1.ino (limited to 'assignments/client1/client1.ino') diff --git a/assignments/client1/client1.ino b/assignments/client1/client1.ino new file mode 100644 index 0000000..39eabfe --- /dev/null +++ b/assignments/client1/client1.ino @@ -0,0 +1,71 @@ +#include +#include + +#include "config.h" + +WiFiUDP Udp; +unsigned int localUdpPort = 5006; +IPAddress host_ip(192, 168, 10, 151); +unsigned int host_port = 5005; + +const int out_buf_len_start = 100; +const int out_buf_len_increment = 100; +const int out_buf_len_max = 2200; + +char buf[out_buf_len_max]; +int out_buf_len; + +static const char alphabet[] = "abcdefghijklmnopqrstuvxyz"; + +unsigned long time_start, time_end; + +void setup() { + Serial.begin(115200); + + Serial.printf("Connecting to %s ", wifi_ssid); + WiFi.begin(wifi_ssid, wifi_password); + while (WiFi.status() != WL_CONNECTED) { + delay(500); + Serial.print("."); + } + Serial.println(" connected"); + + Udp.begin(localUdpPort); + time_start = millis(); + out_buf_len = out_buf_len_start; +} + +void loop() { + + if (millis() > (time_start + 1000)) { + for (int i = 0; i < out_buf_len; i++) { + buf[i] = alphabet[i % sizeof(alphabet) - 1]; + } + out_buf_len += out_buf_len_increment; + if (out_buf_len > out_buf_len_max) { + out_buf_len = out_buf_len_start; + } + Serial.printf("Sending %d bytes to %s:%d\n", out_buf_len, host_ip.toString().c_str(), host_port); + Udp.beginPacket(host_ip, host_port); + Udp.write(buf, out_buf_len); + time_start = millis(); + auto ok = Udp.endPacket(); + + if (!ok) { + Serial.printf("Could not send packet with size %d\n", out_buf_len); + } + } + + int len = Udp.parsePacket(); + if (len) { + time_end = millis(); + Serial.printf("RX %s:%d: size=%d\n", Udp.remoteIP().toString().c_str(), Udp.remotePort(), len); + int len = Udp.read(buf, sizeof(buf)); + Serial.printf("len=%d\n"); + if (len > 0) { + buf[len] = 0; + } + Serial.printf("RTT: %d ms. Payload:%s\n", int(time_end - time_start), buf); + } +} + -- cgit v1.2.3