mirror of
https://gitlab.com/manzerbredes/esds.git
synced 2025-04-07 02:26:28 +02:00
41 lines
1.3 KiB
Python
Executable file
41 lines
1.3 KiB
Python
Executable file
#!/usr/bin/env python
|
|
|
|
# Load ESDS
|
|
import sys
|
|
sys.path.append("../")
|
|
import esds
|
|
|
|
# Use numpy to construct bandwidth and latencies matrix
|
|
import numpy as np
|
|
|
|
##### Scenario
|
|
# The simulated scenario comprises 1 that wakes up randomly
|
|
# for a duration called "uptime" every hour. The sender try to transmit
|
|
# his data during that uptime. Other nodes are receivers that have similar
|
|
# random wake up parterns and strive to receive data from the sender.
|
|
|
|
##### Bandwidth matrix
|
|
# Bandwidth value can be 0 for unreachable nodes
|
|
# Diagonal entries impact the transmission duration for wireless transmissions (wlan0)
|
|
n=2 # Number of nodes including the sender
|
|
B=np.full((n,n),5) # 5Mbps
|
|
|
|
##### Latency matrix
|
|
# If the latency entries match one with a bandwidth of 0
|
|
# then it will be ignore since node is unreachable.
|
|
L=np.full((n,n),0) # 0s
|
|
|
|
##### Create the simulator
|
|
s=esds.Simulator(B,L,B,L)
|
|
|
|
##### Instantiate nodes
|
|
uptime=180 # 180s uptime
|
|
s.create_node("sender",args=uptime) # Load sender.py for the first node with 5 as argument (first row in B and L)
|
|
|
|
# Aguments can be passed to nodes via: s.create_node("sender",args="my argument")
|
|
for n in range(0,n-1): # Load receiver.py for the remaining nodes
|
|
s.create_node("receiver",args=uptime)
|
|
|
|
##### Run the simulation
|
|
#s.run(debug=True) # Generate a "esds.debug" file
|
|
s.run()
|