esds/tests/mobility_wlan0_latency_1s1r/simulator.py
2022-06-10 18:01:51 +02:00

39 lines
1.8 KiB
Python
Executable file

#!/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.5 | 8 | C/U*D = 4 | R/I * L + R/BW = 0.75 | 1.25 |
# | 1 | 1 | 8 | C/U*D = 1.33 | R/I * L + R/BW = 0.33 | 1.33 |
# | 1.33 | 1 | 8 | | | |
# |-------------------+------------+----------------+----------------------+--------------------------+-------------------------|
##############################
B=np.full((2,2),8)
L=np.full((2,2),0)
s=esds.Simulator(B,L,B,L)
s.create_node("sender")
s.create_node("receiver")
def callback(simulator):
simulator.log("Network update!")
simulator.update_network(simulator.B_wlan0,simulator.L_wlan0+1/2,simulator.B_eth0,simulator.L_eth0+1/2)
s.run(breakpoints_every=1/2,breakpoint_callback=callback)