Compound Module HostLMAC

Package: org.mixim.modules.node
File: modules/node/HostLMAC.ned

Example host module using a LMAC Network interface card.

BaseUtility ArpHost IBaseMobility IBaseApplLayer IBaseNetwLayer NicLMAC BatteryStats SimpleBattery

Usage diagram:

The following diagram shows usage relationships between types. Unresolved types are missing from the diagram. Click here to see the full picture.

Inheritance diagram:

The following diagram shows inheritance relationships for this type. Unresolved types are missing from the diagram. Click here to see the full picture.

Networks:

LMAC (network) (no description)

Parameters:

Name Type Default value Description
applType string

type of the application layer

netwType string

type of the network layer

mobType string

type of the mobility module

Properties:

Name Value Description
display bgb=244,294,white

Gates:

Name Direction Size Description
radioIn input

gate for sendDirect

Unassigned submodule parameters:

Name Type Default value Description
utility.coreDebug bool

debug switch for the base framework

arp.coreDebug bool

debug switch for the core framework

arp.debug bool false

enable debugging for this module

arp.offset int 0

Adds an offset to node addresses

mobility.x double

x coordinate of the nodes' position (-1 = random)

mobility.y double

y coordinate of the nodes' position (-1 = random)

mobility.z double

z coordinate of the nodes' position (-1 = random)

appl.headerLength int

length of the application message header (in bits)

net.stats bool

stats switch

net.headerLength double

length of the network packet header (in bits)

nic.mac.notAffectedByHostState bool false
nic.mac.coreDebug bool

debug switch

nic.mac.headerLength double

length of the MAC packet header (in bits)

nic.mac.debug bool false

enable per module debug

nic.mac.slotDuration double 100ms

how long is a slot?

nic.mac.queueLength double 10

length of MAC header

nic.mac.defaultChannel double 0

default channel

nic.mac.bitrate double 19200bps

bit rate

nic.mac.reservedMobileSlots int 2
nic.mac.numSlots int 64
nic.mac.txPower double 50
nic.phy.coreDebug bool

debug switch for core framework

nic.phy.recordStats bool false

enable/disable tracking of statistics (eg. cOutvectors)

nic.phy.headerLength int 0

defines the length of the phy header (/preamble)

nic.phy.usePropagationDelay bool

Should transmission delay be simulated?

nic.phy.thermalNoise double

the strength of the thermal noise [dBm]

nic.phy.useThermalNoise bool

should thermal noise be considered?

nic.phy.analogueModels xml

Specification of the analogue models to use and their parameters

nic.phy.decider xml

Specification of the decider to use and its parameters

nic.phy.sensitivity double

The sensitivity of the physical layer [dBm]

nic.phy.maxTXPower double

The maximum transimission power of the physical layer [mW]

nic.phy.timeRXToTX double 0

switchTimes [s]:

nic.phy.timeRXToSleep double 0
nic.phy.timeTXToRX double 0
nic.phy.timeTXToSleep double 0
nic.phy.timeSleepToRX double 0
nic.phy.timeSleepToTX double 0
nic.phy.initialRadioState int 0

state the radio is initially in

nic.phy.radioMinAtt double 1.0

radios gain factor (attenuation) while receiving

nic.phy.radioMaxAtt double 0.0

radios gain factor (attenuation) while not receiving

nic.phy.nbRadioChannels int 1

Number of available radio channels. Defaults to single channel radio.

nic.phy.initialRadioChannel int 0

Initial radio channel.

nic.phy.numActivities int 5

the number of different power consuming activities the phy layer has change this parameter if your decider or physical layer uses more than the default 5 activities (sleep, rx, tx, switching, decoding)

batteryStats.debug bool

write per-activity and per-device statistics to omnetpp.sca (if false, only total energy and lifetime are written)

batteryStats.detail bool

subscribe to battery status and record time series data in omnetpp.vec (resolution depends on battery's publishDelta)

batteryStats.timeSeries bool
battery.debug bool
battery.nominal double

nominal battery capacity

battery.capacity double

battery capacity

battery.voltage double

nominal voltage

battery.resolution double

capacity is updated at least every resolution time

battery.publishDelta double

if > 0, capacity is published to the BB each publishTime interval

battery.publishTime double

number of modules that will draw energy from the battery

battery.numDevices int

Source code:

//
// Example host module using a LMAC Network interface card.
//
module HostLMAC
{
    parameters:
        string applType; //type of the application layer
        string netwType; //type of the network layer
        string mobType; //type of the mobility module
        @display("bgb=244,294,white");
    gates:
        input radioIn; // gate for sendDirect
    submodules:
        utility: BaseUtility {
            parameters:
                @display("p=186,38;b=24,24,rect,black;i=block/blackboard");
        }
        arp: ArpHost {
            parameters:
                @display("p=186,101;b=24,24,rect,blue;i=block/process");
        }
        mobility: <mobType> like IBaseMobility {
            parameters:
                @display("p=186,166;i=block/cogwheel");
        }
        appl: <applType> like IBaseApplLayer {
            parameters:
                @display("p=59,38;i=app");
        }
        net: <netwType> like IBaseNetwLayer {
            parameters:
                @display("p=60,101;i=block/layer");
        }
        nic: NicLMAC {
            parameters:
                @display("p=60,166;i=block/ifcard");
        }
        batteryStats: BatteryStats {
            @display("p=136,232");
        }
        battery: SimpleBattery {
            @display("p=212,232");
        }
    connections:
        nic.upperGateOut --> net.lowerGateIn;
        nic.upperGateIn <-- net.lowerGateOut;
        nic.upperControlOut --> { @display("ls=red;m=m,70,0,70,0"); } --> net.lowerControlIn;
        nic.upperControlIn <-- { @display("ls=red;m=m,70,0,70,0"); } <-- net.lowerControlOut;

        net.upperGateOut --> appl.lowerGateIn;
        net.upperGateIn <-- appl.lowerGateOut;
        net.upperControlOut --> { @display("ls=red;m=m,70,0,70,0"); } --> appl.lowerControlIn;
        net.upperControlIn <-- { @display("ls=red;m=m,70,0,70,0"); } <-- appl.lowerControlOut;

        radioIn --> nic.radioIn;

}