The MiXiM team is happy to announce the release of MiXiM 1.2 that uses OMNeT++ 4.1. MiXiM is an OMNeT++ modeling framework created for mobile and fixed wireless networks (wireless sensor networks, body area networks, ad-hoc networks, vehicular networks, etc.). It offers detailed models of radio wave propagation, interference estimation, radio transceiver power consumption and wireless MAC protocols.

The new release contains the IEEE 802.15.4 models developed by Jérôme Rousselot; IDE wizards to create basic MiXiM networks and your own analogue models; extensive documentation update and additions; and many bug fixes and enhancements. An overview of the most important changes is given after the Read more link. Developers should pay special attention to some API changes outlined below! For a complete list of changes, please consult the git log messages. The new MiXiM release can be downloaded from the project's site at SourceForge:

<h3>What’s new</h3>

  • Included 802.15.4 models:
    • A model of the IEEE 802.15.4 non-beacon-enabled mode (CSMA): validated with measurements on a wireless sensor networking platform using the TI CC 2420 transceiver (ported from mf2o4)
    • An enhanced narrow-band PHY layer: Detailed radio models of the Texas Instruments CC1100 and CC2420 (power consumption and timings) and an accumulative signal to noise plus interference ratio (SNIR) interference model (ported from mf2o4)
    • A high-precision pulse-level ultra-wideband impulse radio PHY layer, implementing the IEEE 802.15.4A UWB PHY with Burst Position Modulation (merged from mixim-uwb)
  • Added global blackboard to BaseWorldUtility, providing global blackboard functionality (equivalent to the blackboard functionality of BaseUtility for the host level)
  • Introduced a "csma" module which implements a generic CSMA mac protocol and will replace CSMAMacLayer in the future
  • Added wizards to create a basic MiXiM network and own analogue models; can be found in the OMNeT++ IDE under File -> New -> OMNeT++ Project...
  • Extensive documentation update and additions

Important changes that affect developers using MiXiM

  • For users of HostMove: made members of Move protected, added functions for member access:
    • setDirectionByVector() replaces the direct access to the member direction
    • setDirectionByTarget() replaces the method setDirection()
  • For developers of the MAC and network layer: divided MacControlInfo into MacToNetwControlInfo and NetwToMacControlInfo
  • For developers of AnalogueModel and Decider: added possibility to define discontinuities in mappings. Discontinuities are modeled using two key entries with a "distance" of epsilon (where epsilon corresponds to one int64-step in the time domain by default). This is especially important for simplified signals that use, for example, a rectangular function as transmit power. The simple signal's transmit power (as returned by BaseMacLayer's createSignal() method) now uses these discontinuities to define a rectangular function. The rectangular function is zero at start and end of the signal. From one int64-step after the start until one int64-step before the end the mapping maps to the actual transmit power. For details, please take a look at the API. The implications for decider implementations can be best seen in the SNRThresholdDecider.
  • Changed BaseDecider's handling of ChannelSenseRequests for better support of RSSI-based idle/busy state. These changes are:
    • Renamed handleSenseRequestTimeout() to handleSenseRequestEnd(). Note: this method indicates now that the ChannelSenseRequest can be answered
    • Instead of returning if a ChannelSenseRequest can be answered, canAnswerCSR() now returns the simtime when a ChannelSenseRequest can be answered
  • Removed ModuleAccess and BaseArpAccess and replaced calls to them by using class FindModule
  • SNRThresholdDecider now evaluates the currently received energy level to decide whether the channel is busy or idle. This model is a more intuitive (and more common) definition of the channel's idle state; thanks to Leonardo for calling our attention to this on the omnetpp mailing list

Minor changes and bugfixes

  • Added depth dependent scaled display of hosts when GUI and 3-D is used
  • BaseMobility's host coordinates can be set to random values independently now
  • Gave networks of examples more meaningful and consistent names (same as the example)
  • Renamed executables for examples from "MiXiM" to "<exampleName>"
  • Increased scheduling priority of AirFrames to ensure channel consistency
  • Added the method unregisterNic() to BaseConnectionManager to unregister a NIC; thanks to Christoph Sommer for supplying the implementation of this method
  • Fixed memory leak when propagation delay is simulated; thanks to "ruhoo" for reporting this bug on the omnetpp mailing list
  • Fixed a bug in the calculated receiving power of a signal which caused it to be greater zero before and after its signal in certain cases; thanks to Ralf Zenker for reporting this bug
  • Fixed wrong calculation of position on WRAP border handling in BaseMobility; thanks to Gulsah Bulut for reporting this bug
  • Fixed missing connections when the cells from ConnectionManager do not cover the playground size exactly
  • Fixed increasing heap memory usage while hosts sending AirFrames but weren't receiving any. This was caused by RSAM tracking every radio state although there weren't any signals on the channel to attenuate; thanks to Patrick Wenz for reporting this problem
  • Fixed a bug in the unsubscribe() method of the Blackboard; thanks to "rfpb" from sourceforge for reporting this bug

The MiXiM Team