A framework for performing DTN simulations based on asyncio.
Project description
aiodtnsim
A minimal framework for performing DTN simulations based on Python 3.7 and asyncio.
Note that this project is still a work in progress.
Requirements
- Python 3.7+
- NumPy
- tqdm for the progress bars
- dtn-tvg-util
- for uPCN integration, uPCN v0.7.0+ with the
pyupcn
module installed in the Python environment
Getting Started
Just install aiodtnsim
via pip
, e.g., in a virtual environment:
pip install aiodtnsim
For generating satellite scenarios (needed by the example script), you need to install the dtn-tvg-util
Ring Road dependencies additionally:
pip install "dtn-tvg-util[ring_road]"
Now, you should be able to use the example scripts provided in the root directory of aiodtnsim
to perform simple simulation runs, e.g. via:
bash examples/example_test_run.sh
Development Setup
First, clone the aiodtnsim
, dtn-tvg-util
, and upcn
repositories (the latter only for using uPCN emulation) and change into the aiodtnsim
directory.
Now, create a virtual environment and install the required dependencies:
python3 -m venv --without-pip .venv
curl -sS https://bootstrap.pypa.io/get-pip.py | .venv/bin/python
source .venv/bin/activate
pip install -e .
pip install -e "../dtn-tvg-util[ring_road,gs_placement]"
pip install -U -r ../upcn/pyupcn/requirements.txt
python ../upcn/pyupcn/install.py
If you want to perform a run with uPCN, ensure the latest binary has been built:
cd ../upcn
make
License
aiodtnsim
is provided under the MIT license. See LICENSE for details.
Acknowledgments
The simulation event loop is based upon code by Damon Wischik.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file aiodtnsim-0.3.1.tar.gz
.
File metadata
- Download URL: aiodtnsim-0.3.1.tar.gz
- Upload date:
- Size: 42.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.56.2 CPython/3.9.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 20b1d3b3eb47f058e45dbd1eb7eb495ac272dab553afc344b556d6bd86e84926 |
|
MD5 | 01d279a5fe2aa6a3098c7156c58fc98f |
|
BLAKE2b-256 | 03c8e3fc8428922268f87ead212bf22a351bdd307b29cf7edd95934c361fc2b9 |