StationaryMobility

Package: inet.mobility.static

simple module StationaryMobility

Mobility module for stationary nodes.

inet.mobility.static.StationaryMobilityStationaryMobilitysimple

Usage diagram

Inheritance diagram

Used in compound modules

Name

Type

Description

AccessPoint

compound module

A wireless access point device that connects wireless stations (like WirelessHost) to a wired network. Supports multiple wireless radios and multiple Ethernet ports.

Probe

compound module

A minimal wireless network node that consists only of an antenna and mobility model. Designed for monitoring wireless signals without actively participating in network communication.

NoiseSource

compound module

A network node that generates periodic noise transmissions that can interfere with wireless communications. Alternates between sleep and transmission states based on configurable intervals. Uses a NoiseTransmitter to create noise signals with specified duration, frequency, bandwidth, and power parameters. Useful for testing protocol robustness against interference in wireless networks.

Known subclasses

Name

Type

Description

StaticLinearMobility

simple module

Mobility model which places all hosts at constant distances in a line with an orientation

Extends

Name

Type

Description

MobilityBase

simple module

Abstract base module for mobility models.

Parameters

Name

Type

Default value

Description

displayStringTextFormat

string

“p: {position}\nv: {velocity}”

Determines the text that is written on top of the submodule, supports displaying pars, watches, and module-specific information

subjectModule

string

“^”

The module path that determines the subject module, the motion of which this mobility model describes. The default value is the parent module

coordinateSystemModule

string

“”

The module path of the geographic coordinate system module; optional, empty disables geographic conversion (and the {geo_position} directive)

updateDisplayString

bool

true

Enables continuous update of the subject module’s position by modifying its display string

constraintAreaMinX

double

-inf m

The minimum x position of the constraint area. It is unconstrained by default (negative infinity)

constraintAreaMinY

double

-inf m

The minimum y position of the constraint area. It is unconstrained by default (negative infinity)

constraintAreaMinZ

double

-inf m

The minimum z position of the constraint area. It is unconstrained by default (negative infinity)

constraintAreaMaxX

double

inf m

The maximum x position of the constraint area. It is unconstrained by default (positive infinity)

constraintAreaMaxY

double

inf m

The maximum y position of the constraint area. It is unconstrained by default (positive infinity)

constraintAreaMaxZ

double

inf m

The maximum z position of the constraint area. It is unconstrained by default (positive infinity)

initialX

double

uniform(this.constraintAreaMinX, this.constraintAreaMaxX)

initialY

double

uniform(this.constraintAreaMinY, this.constraintAreaMaxY)

initialZ

double

nanToZero(uniform(this.constraintAreaMinZ, this.constraintAreaMaxZ))

initialLatitude

double

nan deg

initialLongitude

double

nan deg

initialAltitude

double

0m

initialHeading

double

0deg

initialElevation

double

0deg

initialBank

double

0deg

initFromDisplayString

bool

true

Enables one-time initialization from the subject module’s display string

updateFromDisplayString

bool

true

Enables continuous update from the subject module’s display string for dragging and rotating it

Properties

Name

Value

Description

class

StationaryMobility

display

i=block/cogwheel

Signals

Name

Type

Unit

Description

mobilityStateChanged

inet::MobilityBase

It works in inet, but not in the extended module in another namespace

Source code

//
// Mobility module for stationary nodes.
//
simple StationaryMobility extends MobilityBase
{
    parameters:
        double initialX @unit(m) = default(uniform(this.constraintAreaMinX, this.constraintAreaMaxX));
        double initialY @unit(m) = default(uniform(this.constraintAreaMinY, this.constraintAreaMaxY));
        double initialZ @unit(m) = default(nanToZero(uniform(this.constraintAreaMinZ, this.constraintAreaMaxZ)));
        double initialLatitude @unit(deg) = default(nan deg);
        double initialLongitude @unit(deg) = default(nan deg);
        double initialAltitude @unit(m) = default(0m);
        double initialHeading @unit(deg) = default(0deg);
        double initialElevation @unit(deg) = default(0deg);
        double initialBank @unit(deg) = default(0deg);
        bool initFromDisplayString = default(true); // Enables one-time initialization from the subject module's display string
        bool updateFromDisplayString = default(true); // Enables continuous update from the subject module's display string for dragging and rotating it
        @class(StationaryMobility);
}

File: src/inet/mobility/static/StationaryMobility.ned