#!/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)