From aa803dca1363cf9bcab99bab9515b146a52c4ef4 Mon Sep 17 00:00:00 2001
From: Jake <jake.read@cba.mit.edu>
Date: Thu, 28 Dec 2023 21:38:25 -0500
Subject: [PATCH] one-way pingless speed test

---
 2023-12_ethernet-real-data-rates.md           |  80 +++++++++++++++++-
 code/ethernet/ethernet_sink/plot_stamps.py    |   2 +-
 code/ethernet/ethernet_sink/sink.py           |  63 ++++++++++----
 .../ethernet_source/ethernet_source.ino       |  40 ++++++---
 images/2023-12-28_eth-oneway-64.png           | Bin 0 -> 32577 bytes
 5 files changed, 153 insertions(+), 32 deletions(-)
 create mode 100644 images/2023-12-28_eth-oneway-64.png

diff --git a/2023-12_ethernet-real-data-rates.md b/2023-12_ethernet-real-data-rates.md
index 4263e41..dda243c 100644
--- a/2023-12_ethernet-real-data-rates.md
+++ b/2023-12_ethernet-real-data-rates.md
@@ -73,4 +73,82 @@ So, for quicksies, and to settle this current debate, I should try not-pinging w
 ### Non-Pining Speed Tests 
 
 - setup Arduino to, after one packet rx (to get an IP to tx-back-to) just free-form wrips packets up north, and occasionally prints rates to the OLED
-- setup an async (?) version of the python inheritor, and collect them data 
\ No newline at end of file
+- setup an async (?) version of the python inheritor, and collect them data 
+
+So... this does improve the rate substantially:
+
+![oneway](images/2023-12-28_eth-oneway-64.png)
+
+I think actually these are blocking calls, so flow-control down below is as simple as running the thing over-and-over:
+
+```cpp
+void loop() {
+  // just tx, forever, see if we break flowcontrol 
+  digitalWrite(DEBUG_PIN, HIGH);
+  EUDP.beginPacket(txIP, txPort);
+  EUDP.write(replyBuffer, 64);
+  EUDP.endPacket();
+  txCount ++;
+  digitalWrite(DEBUG_PIN, LOW);
+}
+```
+
+Then I am rx'ing that in a python asyncio structure... 
+
+```python
+import socket, time, asyncio
+from plot_stamps import plot_stamps
+import numpy as np 
+
+
+# Arduino's network settings
+arduino_ip = '192.168.1.177'
+arduino_port = 8888
+
+
+# Create a UDP socket
+sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
+
+
+# bind the socket to our local addr and port, 
+# 0.0.0.0 is a mask: listens on all interfaces (?) 
+sock.bind(('0.0.0.0', 8888))
+
+
+# test stats
+stamp_count = 10000
+stamps = np.zeros(stamp_count)
+stamp_counter = 0 
+pck_len = 64
+
+
+# ingest packets to test app 
+def handle_pck(data):
+  global stamps, stamp_counter, pck_len
+  if (stamp_counter >= stamp_count):
+    return 
+  stamps[stamp_counter] = time.perf_counter() * 1e6
+  stamp_counter += 1 
+  if (stamp_counter >= stamp_count):
+    plot_stamps(stamps, stamp_count, pck_len)
+
+
+# let's setup an async receiver: 
+async def receiver(socket, handler):
+  while True:
+    data = socket.recv(1024)
+    handler(data)
+    await asyncio.sleep(0)
+
+async def main():
+
+  task = asyncio.create_task(receiver(sock, handle_pck))
+
+  await asyncio.gather(task)
+
+asyncio.run(main())
+```
+
+But the take-away is that... we can probably do this (this being getting-past 5MBit/sec) if we take our wiznet code seriously and crank the SPI rates. 
+
+However, I would like also to test my suspicion about the raspberry-pi-spi uplink into some python code... I might take an aside down that path, before returning here to see about crikety crankity-ing the SPI rates in a copy-pasta'd ethernet library implementation. 
\ No newline at end of file
diff --git a/code/ethernet/ethernet_sink/plot_stamps.py b/code/ethernet/ethernet_sink/plot_stamps.py
index b9c0df7..805d3d0 100644
--- a/code/ethernet/ethernet_sink/plot_stamps.py
+++ b/code/ethernet/ethernet_sink/plot_stamps.py
@@ -17,7 +17,7 @@ def plot_stamps(stamps, stamp_count, pck_len):
   # Plotting
   fig, ax1 = plt.subplots(figsize=(11, 3))
 
-  ax1.set_xlim([50, 4000])
+  ax1.set_xlim([50, 2000])
 
   # Primary x-axis (time deltas)
   df['deltas'].plot(kind='hist', bins=50, ax=ax1)
diff --git a/code/ethernet/ethernet_sink/sink.py b/code/ethernet/ethernet_sink/sink.py
index b3c0278..73da5c1 100644
--- a/code/ethernet/ethernet_sink/sink.py
+++ b/code/ethernet/ethernet_sink/sink.py
@@ -1,7 +1,6 @@
-import socket, time 
+import socket, time, asyncio
 from plot_stamps import plot_stamps
 import numpy as np 
-import pandas as pd 
 
 
 # Arduino's network settings
@@ -13,28 +12,60 @@ arduino_port = 8888
 sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
 
 
+# bind the socket to our local addr and port, 
+# 0.0.0.0 is a mask: listens on all interfaces (?) 
+sock.bind(('0.0.0.0', 8888))
+
+
 # test stats
-stamp_count = 100000
+stamp_count = 10000
 stamps = np.zeros(stamp_count)
+stamp_counter = 0 
+pck_len = 64
+
+
+def handle_pck(data):
+  global stamps, stamp_counter, pck_len
+  if (stamp_counter >= stamp_count):
+    return 
+  stamps[stamp_counter] = time.perf_counter() * 1e6
+  stamp_counter += 1 
+  if (stamp_counter >= stamp_count):
+    plot_stamps(stamps, stamp_count, pck_len)
+
+
+# let's setup an async receiver: 
+async def receiver(socket, handler):
+  while True:
+    data = socket.recv(1024)
+    handler(data)
+    await asyncio.sleep(0)
+
+async def main():
+
+  task = asyncio.create_task(receiver(sock, handle_pck))
+
+  await asyncio.gather(task)
+
+asyncio.run(main())
 
 
 # test data 
-pck_len = 64
-out_pck = bytearray(pck_len)
+# out_pck = bytearray(pck_len)
 
 
-for i in range(stamp_count):
-  # Send a message
-  # message = b'Hello, Arduino!'
-  sock.sendto(out_pck, (arduino_ip, arduino_port))
-  # print(f'Transmitted...')
+# for i in range(stamp_count):
+#   # Send a message
+#   # message = b'Hello, Arduino!'
+#   sock.sendto(out_pck, (arduino_ip, arduino_port))
+#   # print(f'Transmitted...')
 
-  # Receive response
-  data, addr = sock.recvfrom(1024)
-  # print(f'Received message: {data}')
+#   # Receive response
+#   data, addr = sock.recvfrom(1024)
+#   # print(f'Received message: {data}')
 
-  stamps[i] = time.perf_counter() * 1e6
+#   stamps[i] = time.perf_counter() * 1e6
 
-print('stamps', stamps)
+# print('stamps', stamps)
 
-plot_stamps(stamps, stamp_count, pck_len) 
\ No newline at end of file
+# plot_stamps(stamps, stamp_count, pck_len) 
\ No newline at end of file
diff --git a/code/ethernet/ethernet_source/ethernet_source.ino b/code/ethernet/ethernet_source/ethernet_source.ino
index 4ecb815..f5586f0 100644
--- a/code/ethernet/ethernet_source/ethernet_source.ino
+++ b/code/ethernet/ethernet_source/ethernet_source.ino
@@ -99,21 +99,33 @@ uint32_t lastUpdate = 0;
 uint32_t updateInterval = 500;
 
 uint32_t rxCount = 0;
+uint32_t txCount = 0;
+
+IPAddress txIP(192, 168, 1, 178);
+uint32_t txPort = 8888;
 
 void loop() {
-  size_t len = EUDP.parsePacket();
-  if(len){
-    digitalWrite(DEBUG_PIN, HIGH);
-    // get the pck, 
-    rxCount ++;
-    // display_print("rx " + String(len));
-    EUDP.read(packetBuffer, UDP_TX_PACKET_MAX_SIZE);
-    // reply to the pck, 
-    EUDP.beginPacket(EUDP.remoteIP(), EUDP.remotePort());
-    EUDP.write(replyBuffer, len);
-    EUDP.endPacket();
-    digitalWrite(DEBUG_PIN, LOW);
-  }
+  // just tx, forever, see if we break flowcontrol 
+  digitalWrite(DEBUG_PIN, HIGH);
+  EUDP.beginPacket(txIP, txPort);
+  EUDP.write(replyBuffer, 64);
+  EUDP.endPacket();
+  txCount ++;
+  digitalWrite(DEBUG_PIN, LOW);
+
+  // size_t len = EUDP.parsePacket();
+  // if(len){
+  //   digitalWrite(DEBUG_PIN, HIGH);
+  //   // get the pck, 
+  //   rxCount ++;
+  //   // display_print("rx " + String(len));
+  //   EUDP.read(packetBuffer, UDP_TX_PACKET_MAX_SIZE);
+  //   // reply to the pck, 
+  //   EUDP.beginPacket(EUDP.remoteIP(), EUDP.remotePort());
+  //   EUDP.write(replyBuffer, len);
+  //   EUDP.endPacket();
+  //   digitalWrite(DEBUG_PIN, LOW);
+  // }
   
   // report status
   // TODO: use only one line of the disp for this, 
@@ -128,7 +140,7 @@ void loop() {
     } else if (Ethernet.linkStatus() == LinkOFF) {
       display_print("Link OFF");
     } else if (Ethernet.linkStatus() == LinkON){
-      display_print("ON: " + (Ethernet.localIP().toString()) + "\n" + String(rxCount));
+      display_print("ON: " + (Ethernet.localIP().toString()) + "\n" + String(rxCount) + "\nTX: " + String(txCount));
     } else if (Ethernet.linkStatus() == Unknown){
       display_print("Link UNKNOWN");
     }
diff --git a/images/2023-12-28_eth-oneway-64.png b/images/2023-12-28_eth-oneway-64.png
new file mode 100644
index 0000000000000000000000000000000000000000..4ffdd3f42582c989c0ab3e5c28a825ed0ea62a2f
GIT binary patch
literal 32577
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

literal 0
HcmV?d00001

-- 
GitLab