NoiseSource

Package: inet.physicallayer.wireless.noise

compound module NoiseSource

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.

Usage diagram

Inheritance diagram

Extends

Name

Type

Description

Module

compound module

Base module for all INET compound modules.

Parameters

Name

Type

Default value

Description

displayStringTextFormat

string

“”

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

radioMediumModule

string

“radioMedium”

Module path of the medium module where this radio communicates

sleepInterval

double

Properties

Name

Value

Description

class

NoiseSource

display

i=block/wtx

networkNode

Gates

Name

Direction

Size

Description

upperLayerIn

input

upperLayerOut

output

radioIn

input

Unassigned submodule parameters

Name

Type

Default value

Description

mobility.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

mobility.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

mobility.coordinateSystemModule

string

“”

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

mobility.updateDisplayString

bool

true

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

mobility.constraintAreaMinX

double

-inf m

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

mobility.constraintAreaMinY

double

-inf m

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

mobility.constraintAreaMinZ

double

-inf m

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

mobility.constraintAreaMaxX

double

inf m

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

mobility.constraintAreaMaxY

double

inf m

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

mobility.constraintAreaMaxZ

double

inf m

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

mobility.initialX

double

uniform(this.constraintAreaMinX, this.constraintAreaMaxX)

mobility.initialY

double

uniform(this.constraintAreaMinY, this.constraintAreaMaxY)

mobility.initialZ

double

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

mobility.initialLatitude

double

nan deg

mobility.initialLongitude

double

nan deg

mobility.initialAltitude

double

0m

mobility.initialHeading

double

0deg

mobility.initialElevation

double

0deg

mobility.initialBank

double

0deg

mobility.initFromDisplayString

bool

true

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

mobility.updateFromDisplayString

bool

true

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

Source code

//
// 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.
//
module NoiseSource extends Module like IRadio
{
    parameters:
        string radioMediumModule = default("radioMedium"); // Module path of the medium module where this radio communicates
        volatile double sleepInterval @unit(s);
        *.mobilityModule = default(absPath(".mobility"));
        @networkNode;
        @class(NoiseSource);
        @display("i=block/wtx");
    gates:
        input upperLayerIn @labels(ILinkLayerFrame/down) @loose;
        output upperLayerOut @labels(ILinkLayerFrame/up) @loose;
        input radioIn @labels(IWirelessSignal) @loose;
    submodules:
        mobility: <default("StationaryMobility")> like IMobility {
            parameters:
                @display("p=100,100");
        }
        antenna: <default("IsotropicAntenna")> like IAntenna {
            parameters:
                @display("p=100,200");
        }
        transmitter: <default("NoiseTransmitter")> like ITransmitter {
            parameters:
                @display("p=100,300");
        }
}

File: src/inet/physicallayer/wireless/noise/NoiseSource.ned