1st International ICST Workshop on OMNeT++

Research Article

CsharpSimpleModule: writing OMNeT++ modules with C# and mono

  • @INPROCEEDINGS{10.4108/ICST.SIMUTOOLS2008.3045 ,
        author={Andreas  Lagemann and J\o{}rg  Nolte},
        title={ CsharpSimpleModule: writing OMNeT++ modules with C\# and mono},
        proceedings={1st International ICST Workshop on OMNeT++},
        publisher={ACM},
        proceedings_a={OMNET++},
        year={2010},
        month={5},
        keywords={},
        doi={10.4108/ICST.SIMUTOOLS2008.3045 }
    }
    
  • Andreas Lagemann
    Jörg Nolte
    Year: 2010
    CsharpSimpleModule: writing OMNeT++ modules with C# and mono
    OMNET++
    ICST
    DOI: 10.4108/ICST.SIMUTOOLS2008.3045
Andreas Lagemann1,*, Jörg Nolte1,*
  • 1: BTU Cottbus, Distributed Systems.
*Contact email: ae@informatik.tu-cottbus.de, jon@informatik.tu-cottbus.de

Abstract

Simulation normally serves one of two purposes. The first one is evaluation of certain algorithms. The second one is development and test of applications with infrastructural requirements which exceed those commonly available (e.g. distributed applications for wireless networks). In the latter case it is highly desirable that the code used for simulation can be easily adopted to real hardware with minor modifications. The .NET framework is -- like Java -- platform independent insofar as it only depends on a virtual machine implementation for each device it is meant to run on. Therefore for some application fields it is attractive to be able to write plain C# code which can then be run with a simulator like OMNeT++.

This paper introduces CsharpSimpleModule, an extension to OMNeT++, which -- like its companion JSimpleModule does for Java -- allows you to write OMNeT++ simulation modules in C# and mix them freely with plain OMNeT++ modules, thus allowing you to build upon existing OMNeT++ frameworks (e.g INET or Mobility Framework). Besides giving a short introduction to the usage of CsharpSimpleModule its general architecture will be illustrated and selected implementation issues will be discussed.