Course project of Wireless Communication.
Project aim is to assess performance of linear network coding, performed using Fountain Codes.
This procedure is outlined in our reference paper.
Y. Lin, B. Liang, and B. Li, “Data persistence in large-scale sensor networks with decentralized fountain codes”
Main file to handle the project is make.py
, that automates compilation, running, docs creation of each of our packages, i.e. src/
sub-directories.
Object files and executable are stored here temporarily, from one execution to another.
Doxygen documentation of C++ code is created here running
python make.py --mode docs
LaTeX directory for project report.
Computations results (mainly csv files) are stored here.
Each package, i.e. src/
sub-directory, contains a main.cpp
file, that is compiled and run setting the --package
parameter of make.py
.
Dependencies are added with the --deps
package list, while specific configuration parameters are retrieved by main config.json
file, with --config
option.
Example here is given to run simulated annealing and jumping ball on first problem (EDFC).
python make.py --mode run --package first_problem/simulated_annealing --deps first_problem utils --configs configs.json
python make.py --mode run --package first_problem/jumping_ball --deps first_problem/simulated_annealing first_problem utils --configs configs.json
Simulator can be run instead on all network configurations set in configs.json
this way.
python make.py --mode run --package simulator --deps utils first_problem second_problem --configs configs.json
Please note that simulator is written once for both spreading algorithms, since the only difference is given by degree distributions, while random walks and packet selection is the same for both.
Unlike other src/
sub-directories, this is not a C++ package but contains some R code to plot results in csv files.
Those scripts should be run from project root directory.
Each subdirectory of this folder contains a bunch of tests for a package (of src/
). They can be run giving, for package utils
, this command
python make.py --mode test --package utils
Documentation is automatically created using Doxygen and can be retrieved here.