OMNeT++ Changelog

What's new in OMNeT++ 4.6

Dec 3, 2014
  • IMPORTANT:
  • To install OMNeT++ on OS X, you must install both the Apple Java support package (http://support.apple.com/kb/DL1572) and (Oracle) JDK 1.7 or later (from http://java.com).
  • Tkenv:
  • Improved zooming/panning support: use double click to zoom in around a point, and Shift + double click to zoom out; use Ctrl + left mouse button to drag out a rectangle to zoom to (a.k.a. marquee zoom; implementation based on patch from Christoph Sommer), right-click cancels marquee zoom; use left mouse button for panning
  • Further small UI fixes (see ChangeLog)
  • Core:
  • The testing tool opp_test has been revised and is now an official part of OMNeT++.
  • The Manual now has a new chapter that covers the testing of simulation models as well as the usage of the opp_test tool.
  • The message compiler opp_msgc was reimplemented as a part of nedtool. opp_msgc still exists as a wrapper script that points to nedtool.
  • IDE:
  • The IDE is now based on Eclipse 4.4 Luna, and requires JDK 1.7 or later.
  • The IDE is now a 64-bit application on Mac OS X.
  • Other:
  • OMNeT++ is now using C++11 by default (-std=c++11) when models are compiled. The simulator itself does not use any of the C++11 features, so C++11 support may be disabled in configure.user. Update your models to compile properly using the C++11 standard, as later OMNeT++ versions will require C++11 compliance.
  • OMNeT++ can be configured to use the 'omnetpp' namespace by setting USE_NAMESPACE=yes in configure.user
  • Clang compiler support: Clang is used by default on OS X, and can be turned on on Linux. Clang is still not supported on Windows (we are waiting for the MSYS Clang packages to mature).
  • The bundled MSYS/MinGW toolchain was updated to use MSYS2. MSYS2 resolves a number of issues:
  • No more memory errors during build
  • The make command now properly supports parallel build (-j4, -j8 etc.)
  • The bundled MSYS2 toolchain now contains the pacman package manager, so you can install additional packages if you wish
  • Change in OMNeT++: The msys/ directory has been moved to tools/win32/ while the mingw/ directory that contains the compiler has been moved to tools/win32/mingw32/.

New in OMNeT++ 4.5 (Jul 17, 2014)

  • The focus of version 4.5 was to improve the usability of the Graphical Runtime Environment (Tkenv). The Tkenv GUI has been redesigned for single-window mode to improve usability and user experience. Tkenv has also received a new, modern look and feel, due to the use of the Ttk widgets and a custom Ttk theme:
  • single-window mode, with object navigator + 3 built-in inspectors that interact in a meaningful way (new inspector windows can still be opened)
  • keep inpector windows on top of the main window at all times
  • use Ttk widgets everywhere, with custom theme - this makes a huge difference in looks on all platforms but esp. on OS X
  • BLT no longer needed (we use Ttk instead)
  • inspectors are no longer tied to a single object; visited objects are remembered as navigable history (back/forward)
  • module graphics now remembers zoom level and settings per NED type
  • for each log line, the context module is now stored, and is shown as a line prefix where it makes sense (differs from event’s module)
  • Tkenv now stores message sendings and also a clone of corresponding message objects (cMessage), and can show them in the log window
  • message printer classes can be contributed to customize the messages view of log windows
  • more concise status area that shows more information at the same time
  • part of the status area can be turned off to free up vertical space
  • timeline drawing now adapts to font size
  • on-demand scrollbars (i.e. they are hidden when not needed)
  • main menu cleanup (reorganized, removed obsolete items)
  • dialogs where it makes sense now remember size and location
  • additional hotkeys: Ctrl+Plus/Minus for Zoom, Ctrl+F5 Run Until, Ctrl+Q Quit, etc.
  • OS X: use Command key for hotkeys instead of Ctrl
  • countless other, smaller improvements
  • In the Windows bundle, the debugger have been upgraded to gdb-7.7; Tcl/Tk has been upgraded to version 8.6.0.
  • New configure.user option to prefer clang over gcc if both are installed
  • New configure.user option to enable/disable C++ 11 compilance (-std=c++11) Note that this is NOT supported on Windows because of issues with the bundled MinGW 4.7 compiler.
  • Tcl/Tk version 8.5 is required, 8.6 is preferred; BLT is no longer in use

New in OMNeT++ 4.4.1 (Mar 15, 2014)

  • A bugfix release for OMNeT++ 4.4. The focus of version 4.4 was to improve compatibility with the latest operating system and compilers releases. It also introduced features that help you debug and verify your simulation models more efficiently.
  • Sim:
  • Support for optional signal checking. When signal checking is turned on, signals emitted by modules/channels must be declared with a @signal property in the module’s or channel’s NED description; undeclared signals will result in a runtime error. Signal declarations are of the form @signal[](type=);
  • may contain wildcards (?,*). Type is optional; if present, data type can be long, unsigned long, double, simtime_t, string, or a registered class name. To allow NULL pointers, append a question mark to the class name. Example: @signal[receivedPk](type=cPacket?);
  • This feature is controlled by the check-signals= configuration option, and it is turned off by default for now.
  • Support for @statistic-style declarative result recording on dynamically registered signals (e.g. "conn-" where n is an integer). Instead of @statistic, add a @statisticTemplate property in the NED file, and for each new signal call ev.addResultRecorders(...).
  • Support for programmatically adding result filters and recorders on signals: cResultRecorder has been revised to allow result recorders to be used without a corresponding @statistic attribute, e.g. they can now be added to signals programmatically.
  • Further signals-related changes:
  • added emit(simsignal_t, const cObject*) to cComponent
  • added receiveSignal() overload for bool to cIListener
  • introduced SimsignalType which replaces the older cITimestampedValue::Type
  • added cObjectFactory::isInstance() method that effectively wraps a dynamic_cast
  • added Register_Abstract_Class() macro that allows abstract classes to be used in signal declarations as type.
  • Added cNEDValue::parseQuantity()
  • New result filter: removeRepeats
  • Feature: Just-in-time debugging support.
  • new configuration options: debugger-attach-on-startup, debugger-attach-on-error, debugger-attach-command, debugger-attach-wait-time.
  • the simulation kernel can invoke the debugger on an error (or on startup) using the command-line specified by the debugger-attach-command option.
  • NED:
  • More freedom in NED property syntax: (1) Hyphens, dots and colons are now allowed in property names and indices; and (2) values no longer need to be enclosed in quotes if they contain parens, provided that parens are balanced.
  • Tkenv:
  • Feature: Animation filters (right-click on any message, and select "Exclude messages like … from animation" from the context menu.)
  • Feature: "Debug Next Event" (Ctrl+F9). It causes the simulation program to stop in the debugger just before entering the handleMessage() call.
  • Fixes and workarounds for various issues on Mac OS X (poor animation speed, missing icons on OS X Mavericks, hang on the F5 key, etc.)
  • Fix: the "Filter Window Contents" dialog could lose state
  • Source cleanup (consistent naming style for Tcl procedures)
  • IDE:
  • Use Eclipse 4.3 as base platform
  • Support for project-specific images: icons from the "images/" folder of the project and its dependencies are automatically used by the NED editor, and added to the Tkenv image path when the simulation is launched. (The folder name is currently hardcoded; it will become configurable in future versions.)
  • Sequence Chart: Fixed bug that caused including the same reuses multiple times. Fixed error handling when the error occurs in paint during startup.
  • Improved support for C++11, Mac OS X:
  • The source now compiles without any warning with both gcc and clang, using the "-std=c++11 -Wall" flags (clang is the default compiler on OS X since version 10.9 Mavericks).
  • Added proper support for cross-compilation using ./configure --host=i686-w64-mingw32
  • Updated install instructions for OS X 10.9 Mavericks. Specifically, gdb is no longer distributed with OS X; users are expected to install it themselves from MacPorts, and digitally sign it.
  • IDE: fixed the launcher not to throw error if the toolchain is clang.
  • Updated the source to compile with both Bison 2.3 and 3.0

New in OMNeT++ 4.3.1 (Sep 27, 2013)

  • The focus of this update is to help first-time users get familiar with OMNeT++ by showing them introductory information and offering to install the INET Framework. In addition, the update also contains some bug fixes and smaller improvements to the Simulation IDE; there is no change in the simulation kernel and tools.
  • The IDE was made more friendly to first-time users:
  • When the IDE is started with an empty workspace (e.g. on first-time launch), it offers the user the following options: (1) Import the OMNeT++ sample simulations into the workspace; and (2) Download and install the INET Framework.
  • The latter function is also available via the Help > Install Simulation Models... menu item. The menu item brings up a dialog with the list of simulation models available for automated installation, and lets the user choose. Currently only the INET Framework is listed there, but it is planned to add further models.
  • When the IDE is started for the first time, it now displays some helpful introductory pages in the editor area: "Getting Started" (practical advice for getting past the first 10 minutes spent in the IDE); "At a Glance" (explains the common file types like NED, msg and ini, and their purposes); "OMNeT++ Samples" (describes each example simulation in two sentences, then provides links for opening the project, viewing the README, launching the simulation, etc.) These pages are also available from the Help system (except the last one, which has a dedicated menu item under the Help menu.)
  • Further IDE improvements:
  • IDE launcher script: fixed #670 (vmargs conflict between omnetpp.ini and the launcher script). This bug could cause IDE crashes by PermGenSpace exhaustion.
  • Analysis Tool, Output Vector View: show "Go to" actions in the context menu (instead of the view's pulldown menu)
  • Analysis Tool: fixed #389 (Useless items in the Statistic Name filter): The filter hints of combos is now computed from the result items filtered by the other 2 combos.
  • Analysis Tool: fixed #388 (add '*.host[*].*' variant to module filter hints)
  • Ability to import sample projects even if workspace is different from omnetpp/samples
  • Trying to launch a closed project will now offer opening it
  • NED documentation generator: fixed #672 (Illegal group reference error)
  • Changed default appearance of the main welcome page to be more user friendly
  • Some other bug fixes

New in OMNeT++ 4.2.1 (Jan 23, 2012)

  • Histograms cannot be exported to CVS/Matlab/Octave
  • Can not create project features for MiXiM case
  • IDE cannot load vectors from a vec file greater than 2GB
  • No large file support when compiled with default configuration on Linux
  • Simulation command line: options cannot be specified after an ini file
  • The IDE does not show sca values in the Browse data panel.
  • IDE crashed and exited on closing a sequence chart window.
  • visual studio tools cannot be picked correctly.
  • OMNEST: "embedding2" contains NED errors by default
  • Project Explorer doesn't allow opening multiple NED files in succession (on linux)
  • Content Assist brings up "assertion failed: NedFileElement is not in the resolver" error dialog
  • Can not start any GUI simulation on linux (Tkenv: bad option "iconphoto")
  • Names that occur in multiple packages are not hyperlinked.
  • Model in shared lib is not linked to an other model built as an executable