Code Monkey home page Code Monkey logo

5g-air-simulator's Introduction

5G-air-simulator

an open source framework to simulate the 5G air interface


Table of Contents:

  1. Getting 5G-air-simulator
  2. Compiling 5G-air-simulator
  3. Running 5G-air-simulator
  4. Use Advanced Channels
  5. How-to Debugging and Logging
  6. Additional Support

1. Getting 5G-air-simulator

5G-air-simulator is available via Git at this link. To obtain 5G-air-simulator enter into the your prefered folder and write the following syntax:

$ git clone https://github.com/telematics-lab/5G-air-simulator.git

To synchronize the project repository with the local copy, you can run the pull sub-command. The syntax is as follows:

$ git pull

2. Compiling 5G-air-simulator

First, you need to install make utility and the armadillo library. On recent Linux systems, you can run:

$  sudo apt install make libarmadillo-dev

Then you can build 5G-air-simulator with the following command:

$ cd 5G-air-simulator; make

To clear the project, you can use the following command:

$ make clean

3. Running 5G-air-simulator

Several scenarios have been developed. To run a simple simulation, you can use the following command:

$ ./5G-air-simulator Simple

For more details about the available scenarios, use

$ ./5G-air-simulator -h

4. Use Advanced Channels

In order to exploit MIMO and mMIMO capabilities of 5G-air-simulator you need to perform additional steps.

  • Download this file
  • Extract it into src/channel/propagation-model/FastFadingRealization/
  • Open the file src/load-parameters.h
  • Comment the directive #define _channel_simple_
  • Uncomment //#define _channel_advanced_
  • Re-build 5G-air-simulator

5. How-to Debugging and Logging

5G-air-simulator leverages macros and environment variables to allow print debugging and logging without compiling the code each time. The code must be placed between these macros:

DEBUG_LOG_START_1(SIM_ENV_FOO_VAR)
...
//debug code
...
DEBUG_LOG_END

and each time you want to run that piece of code you just have to create the related environment variable, using the following command:

$ export SIM_ENV_FOO_VAR=1

This operation can be undone by deleting the same environment variable:

$ unset SIM_ENV_FOO_VAR

5G-air-simulator works also with multiple environment variables at the same time (up to 4). For example:

DEBUG_LOG_START_2(SIM_ENV_FOO_VAR, SIM_ENV_FOO_VAR_2)
...
//debug code
...
DEBUG_LOG_END

tells the compiler to run the code only if either SIM_ENV_FOO_VAR or SIM_ENV_FOO_VAR_2 have been defined.

Several instances are already present in the source files.

6. Additional Support

Please refer to this web page for additional support.


© 2020 - TELEMATICS LAB - Politecnico di Bari

5g-air-simulator's People

Contributors

sergio-martiradonna avatar telematics-dev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

5g-air-simulator's Issues

fairness index

hello, how to use the fairness tools to get result for fairness index?

Error

Dear Concern,

I have downloaded this tool and started its compilation using make command. But src/phy/ue-phy.cpp is showing some error. That's why the make is halting with an error. Help to resolve the error.

How to use this simulator

Hello, I am a graduate student and want to use this simulation project. My main purpose is to do some simulation related to cell switching, but I don't understand the code clearly enough. I don't know how to open the function of handover and how to display the information related to handover.Another question is how shared event Pointers(shared_ptr) are used. Are new events written in the corresponding function? I would appreciate it if anyone could help me.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.