summaryrefslogtreecommitdiff
path: root/tests/mobility_eth0_bandwidth_1s1r/simulator.py
diff options
context:
space:
mode:
authorLoic Guegan <manzerbredes@mailbox.org>2022-06-09 21:48:32 +0200
committerLoic Guegan <manzerbredes@mailbox.org>2022-06-09 21:48:32 +0200
commitc2e6aad09f893e4c8cb5cb9243c32a0d6d0d1e12 (patch)
treebebdb575f200c7ea75f3115a81deecd5b797c4ff /tests/mobility_eth0_bandwidth_1s1r/simulator.py
Init ESDS repository
Diffstat (limited to 'tests/mobility_eth0_bandwidth_1s1r/simulator.py')
-rwxr-xr-xtests/mobility_eth0_bandwidth_1s1r/simulator.py38
1 files changed, 38 insertions, 0 deletions
diff --git a/tests/mobility_eth0_bandwidth_1s1r/simulator.py b/tests/mobility_eth0_bandwidth_1s1r/simulator.py
new file mode 100755
index 0000000..f7a0072
--- /dev/null
+++ b/tests/mobility_eth0_bandwidth_1s1r/simulator.py
@@ -0,0 +1,38 @@
+#!/usr/bin/env python
+
+# Load ESDS
+import sys
+sys.path.append("../../")
+import esds
+import numpy as np
+
+########## Scenario ##########
+# Notations:
+# - Remaining communication duration (last communication ends minus current simulated time) = C
+# - Last communication duration (previous row) = U
+# - Last remaining data size (previous row) = D
+# - Current remaining data (current row) = R
+# - Initial data size (first row) = I
+# - Bandwidth = BW
+# - Latency = L
+# |-------------------+------------+----------------+----------------------+--------------------------+-------------------------|
+# | Simulated time(s) | Latency(s) | Bandwidth(bps) | Remaining data (bit) | Communcation duration(s) | Communcation ends at(s) |
+# |-------------------+------------+----------------+----------------------+--------------------------+-------------------------|
+# | 0 | 0 | 8 | 8 | 1 | 1 |
+# | 0.5 | 0 | 16 | C/U*D = 4 | R/I * L + R/BW = 0.25 | 0.75 |
+# | 0.75 | 0 | 16 | | | |
+# |-------------------+------------+----------------+----------------------+--------------------------+-------------------------|
+##############################
+
+B=np.full((2,2),8)
+L=np.full((2,2),0)
+s=esds.Simulator(B,L)
+
+s.create_node("sender")
+s.create_node("receiver")
+
+def callback(simulator):
+ simulator.log("Network update!")
+ simulator.update_network(simulator.B*2,simulator.L)
+
+s.run(breakpoints_every=1/2,breakpoint_callback=callback)