The Platooning Extension for Veins.
Note: After the introduction of heterogeneous interfaces in Plexe 3.1, Plexe 3.2 also supports them, and it now comes with new ones.
The current version supports 802.11p (provided by Veins), VLC (provided by Veins VLC), 5G NR C-V2X Mode 1 (provided by Simu5G), and RIS-based mmWave (provided by CoopeRIS).
The code still includes the LTE C-V2X Mode 3 (provided by SimuLTE) example, but it is currently not maintained, as there is no support for OMNeT++ 6.2.0.
If you plan to use SimuLTE with Plexe, you should use Plexe 3.1.x with OMNeT++ version 5.7.2.
The two subprojects plexe_lte
and plexe_hetnet
will thus not work in the current version.
Plexe currently works on Linux, macOS, and Windows as well, although the latest option is not recommended. On Linux you will have the most efficient working environment for Plexe. Downloading and building Plexe will be basically automatic, and you will have free tools available for debugging your code. On macOS, the situation is very similar to Linux, but you might need to install Xcode, which is undesirable, but besides that everything will work as on Linux. On Windows instead, building Plexe still requires manual steps (such as downloading external libraries), which is highly inefficient.
Install build tools and required libraries:
1 sudo apt install -y make diffutils pkg-config ccache clang lld gdb lldb bison flex perl sed gawk python3 python3-pip python3-venv python3-dev libxml2-dev zlib1g-dev doxygen graphviz xdg-utils libdw-dev qt6-base-dev qt6-base-dev-tools qmake6 libqt6svg6 qt6-wayland libwebkit2gtk-4.1-0 r-base
Note: These instructions provide minimal help as the OMNeT++ install guide provides many hints on this. Should you find any problem, please refer to the official OMNeT++ manual.
Download and extract OMNeT++ in your ~/src/
folder.
Build OMNeT++ as described in the official documentation:
1
2
3
4 cd ~/src/omnetpp-6.2.0
source setenv
./configure
make -j <number of cores of your PC>
Note: It might be necessary to install a python virtual environment, additional python libraries, or edit configure.user
to disable some libraries (e.g., OpenSceneGraph).
Download the Veins 5.3.1 and Plexe 3.2 zip archives and extract them in the ~/src/
folder.
Alternatively, you can clone both Veins 5.3.1 and Plexe 3.2 from their github repositories.
Once you have the source code, you can build Veins and Plexe by running
1
2
3
4
5
6 cd ~/src/veins
./configure
make -j <number of cores of your PC>
cd ~/src/plexe
./configure --with-veins=../veins
make -j <number of cores of your PC>
As of SUMO 1.2.0, Plexe models are included within the official release. Any version starting from SUMO 1.2.0 should thus work fine. If you have to install it from scratch, choose SUMO 1.22.0: you just need to install the binary version. Please follow the official guidelines here. Note: Do not go beyond SUMO 1.22.0 as the new API version is not currently supported by Veins 5.3.1. Alternatively, if you need to modify SUMO (e.g., to implement new control models) you can download the sources for SUMO 1.22.0 and build it following the official instructions.
As OMNeT++ 6 dropped the support for the OMNeT++ R plugin, data extraction scripts now work using a mix of R and python scripts.
First, download the R package for processing OMNeT++ result files without extracting the archive.
After installing R
, install the required libraries.
Type R
in your terminal and in the R
console type
1 install.packages(c('ggplot2', 'data.table'))
Choose a mirror and, if asked, reply YES
when asked whether libraries should be installed in a local folder.
Finally install the OMNeT++ result files package by typing
1 install.packages("omnetpp_0.7-1.tar.gz", repos=NULL)
Note: If you are using a C++17 compiler you might get the following error:
scave/export.cc:290:66: error: no member named 'mem_fun_ref' in namespace 'std'
If that is the case simply add the following line
CXXFLAGS += -std=c++11
to your $HOME/.R/Makevars
file.
After this, install the required python packages using
1 pip install --user pandas scipy matplotlib
OMNeT++ 6.2 can be natively compiled on Apple processors. Differently from OMNeT++ 6.0.3 which required using Rosetta, this is not necessary anymore. However there are some caveats to consider. In particular:
qmake
to the PATH
with export PATH=/opt/local/libexec/qt6/bin:$PATH
clang
compiler, not any other version provided by MacPorts. The results of the command which clang
should be usr/bin/clang
and not something like /opt/local/bin/clang
cmake
, be sure to use the MacPorts cmake
and not the system one. So which cmake
should return /opt/local/bin/cmake
configure
and configure.in
files as done in this commitGo to your OMNeT++ source folder and source setenv
:
1
2 cd ~/src/omnetpp-6.2.0/
source setenv
From the same terminal, now navigate to the folders of the software you have to compile (e.g., ~/src/veins
or ~/src/plexe
) and run build commands as usual.
On macOS X you will need to install MacPorts, which in turn MIGHT require you to install Xcode. It looks like you can install MacPorts without the full Xcode software, but I never tried. Feel free to send me feedbacks. Then to install the required tools type
1 sudo port install bison flex zlib tk autoconf libtool proj gdal fox xercesc3 R wget cmake qt6
See Linux instructions
If you encounter this error when running the simulations, please look at the FAQs.
Note: If you are having troubles compiling for Windows, you might want to check out Instant Plexe in the download section.
Download and extract the OMNeT++ Windows sources in C:\Users\<user>\src
.
Open the Mingw terminal inside the OMNeT++ folder and type
1
2 ./configure
make -j <number of cores of your PC>
Open the Mingw terminal in the OMNeT++ source folder and cd
into /c/Users/<user>/src/veins
(for building Veins) and into /c/Users/<user>/src/plexe
(for building Plexe).
To compile Veins and Plexe follow Linux instructions.
Please visit the official SUMO website and dowload SUMO 1.12.0 binaries. If you need to modify SUMO (e.g., to implement new control models) you can download the sources for SUMO 1.12.0 and build it following the official instructions
TODO: add instructions for setting the PATH
Note: This instructions refer to R
version 3.3.0, but the procedure for version 4 should be equivalent.
Install R
for Windows from the official website and then install R tools.
When the installation is complete, edit your Windows PATH
to include R
and Rtools
binaries folder (e.g., c:\Rtools\bin;c:\Rtools\mingw_64\bin;C:\Program Files\R\R-3.3.0\bin\x64\;
).
Open the R console and install the required packages by typing
1 install.packages(c('ggplot2', 'data.table'))
The installation will ask you to install the packages to a local folder.
Reply with YES and take note of that folder.
Then add an additional environmental variable called R_LIBS
which points to the location of the installed R libraries, for example
1 C:\Users\<user>\Documents\R\win-library\3.3
Now you should be able to start R by typing R
in the Mingw console provided by OMNeT++.
After this, in the same terminal, install the required python packages using
1 pip install --user pandas scipy matplotlib