Giter Site home page Giter Site logo

emoflon / cobolt Goto Github PK

View Code? Open in Web Editor NEW
2.0 6.0 1.0 32.67 MB

Tool support for evaluating topology control algorithms specified using eMoflon

License: GNU General Public License v3.0

Java 95.81% HTML 0.08% Lex 0.30% Shell 0.17% R 1.21% Rebol 0.06% Python 0.17% Gnuplot 0.94% Jupyter Notebook 1.13% TeX 0.10% JavaScript 0.03%
wireless-sensor-network model-driven-engineering code-generation emoflon

cobolt's Introduction

Cobolt - A model-based tool for evaluating topology control algorithms

This repository hosts the code of Cobolt, a model-based tool for the rapid simulative evaluation of topology control algorithms.

The Cobolt repository comprises a modified version of the Simonstrator network simulator (version 2.5) and a set of of sample topology control algorithms specified using the modeling tool eMoflon.

Setup instructions

  1. Install Eclipse 2018-09 R with Modeling Components Oxygen (or newer)
  2. Install the Maven 2 Eclipse integration (m2e)
    1. Navigate to the Install dialog (Help → Install New Software...).
    2. Select the standard Eclipse update site (e.g., http://download.eclipse.org/releases/2018-09 for Eclipse 2018-09)
    3. Install General Purpose Tools/m2e - Maven Integration for Eclipse –no need to restart Eclipse afterwards
  3. Install eMoflon 3.5.1
    1. Open the Install dialog.
    2. First, install only PlantUML 1.1.21 (or above)–no need to restart Eclipse afterwards: https://hallvard.github.io/plantuml/
    3. Open the Install dialog.
    4. Paste the following Eclipse update site: https://github.com/eMoflon/eMoflon.github.io/raw/emoflon-tie-updatesite_3.5.1/eclipse-plugin/beta/updatesite
    5. Select Manage....
    6. Enable at least the following update sites:
    7. Go back via Apply and Close.
    8. Make sure that the option Contact all update sites during install to find required software is enabled.
    9. Select eMoflon::TIE-SDM and complete the installation via Next etc.
      • Note: The dependency resolution may take some time...
    10. Restart Eclipse, open a fresh workspace, and switch to the eMoflon perspective.
  4. Install Enterprise Architect 12 (or later)
  5. Set up Cobolt
    1. Right-click in Project Explorer → Import... → Team/Team Project Set
    2. URL: https://raw.githubusercontent.com/eMoflon/cobolt/master/cobolt.psf
    3. Let Eclipse check out and build all Cobolt and Simonstrator projects for you
      • Make sure that Build → Build automatically is enabled.
    4. Eclipse complains about the missing Tycho lifecycle plugin (org.eclipse.tycho:tycho-compiler-plugin:1.0.0:compile).
      • Use the quick fix (Ctrl+1 when pointing at the error marker) to discover and install the appropriate m2e connectors.
    5. Restart Eclipse and let wait until the auto-build has completed.
  6. Run a sample simulation
    1. Navigate to simonstrator-simrunner/config/dissertation/.
    2. Right-click GuiRunner.launch and select Run as... → GuiRunner.
    3. Select the simulation configuration file cobolt.xml (in the folder dissertation).
      • If you wish, you can experiment with different settings
        • size configures the number of motes
        • world_size configures the side length of the area in meters
        • topologyControlAlgorithm configures the active topology control algorithms (e.g., MAXPOWER_TC D_KTC E_KTC LSTAR_KTC GG Yao RNG GMST LMST)
        • topologyControlIntervalInMinutes configures the interval between topology control executions in minutes
    4. Press Start Simulation.
    5. Two windows pop up: the simulation progress view and the topology visualization.
      • The shown blue graph is the virtual topology of the topology control algorithm (by default, kTC with k=1).
      • The topology control algorithm is executed periodically (by default, once every simulated minute).
      • In the Eclipse Console window, you can observe the simulation output.
        • Lines with 'iter#xxx CEH' refer to the context event handling.
        • Lines with 'iter#xxx TCA' refer to the topology control algorithm execution.
        • Lines with 'iter#xxx STAT' refer to the statistics recording.
        • 'xxx' is the iteration counter
      • Additional output is available in simonstrator-simrunner/output/wsntraces/
        • The subfolder log contains the logfile (similar to the console output)
        • The subfolder energyConsumptionPerNode contains statistics about how long each mote was in each state.
        • The subfolder data contains the performance data (e.g., execution time, link state modification counts,...)
        • The file wsntraces_scenarioStatistics.csv summarizes information about the scenario (e.g., initial topology density).

Reproducing the evaluation results

Conduct the following steps to reproduce the Cobolt evaluation results.

  1. Install Jupyter: https://jupyter.org/
  2. Execute the launcher simonstrator-simrunner/config/dissertation/CoboltEvaluationExecutor.launch and wait for it to complete
    • This may take several days depending on the hardware platform.
    • Important: Abort the batch run using the 'STOP batch run' button, otherwise simulation processes may continue to run in the background.
  3. Concatenate the CSV files in output/wsntraces/[...]/data (without repeating the header!)
  4. Place the concatenated file in jupyter/data/cobolt/dataCollected.csv
  5. Execute the Jupyter notebook: jupyter/DissertationEvaluation.ipynb.
    • This notebook produces all evaluation plots (also for the tool cMoflon).

Licensing

GPLv3, see LICENSE.txt.

cobolt's People

Contributors

rolandkluge avatar steinmic avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

Forkers

cckmit

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.