Compound Module Host802154A

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

This host NED module models a host using an IEEE 802.15.4A correlation receiver.

Author: Jérôme Rousselot

Citation of the following publication is appreciated if you use the MiXiM UWB PHY model for a publication of your own. J. Rousselot, J.-D. Decotignie, An ultra-wideband impulse radio PHY layer model for network simulation. SIMULATION January 2011 vol. 87 no. 1-2 82-112.

For more information, see also:

[1] J. Rousselot, J.-D. Decotignie, An ultra-wideband impulse radio PHY layer model for network simulation. SIMULATION January 2011 vol. 87 no. 1-2 82-112. http://dx.doi.org/10.1177/0037549710377767.

[2] J. Rousselot, Ultra Low Power Communication Protocols for UWB Impulse Radio Wireless Sensor Networks. EPFL Thesis 4720, 2010. http://infoscience.epfl.ch/record/147987.

[3] J. Rousselot, J.-D. Decotignie, A High-Precision Ultra Wideband Impulse Radio Physical Layer Model for Network Simulation. Second International Omnet++ Workshop,Simu'TOOLS, Rome, March 2009. http://portal.acm.org/citation.cfm?id=1537714.

BaseUtility phyPER BatteryStats SimpleBattery BaseMobility Nic802154A DummyRoute ArpHost TestApplication

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:

ieee802154a (network)

This example illustrates the use of the IEEE 802.15.4A UWB-IR simulation model implemented in MiXiM. The omnetpp.ini files comprises two scenarios. Both scenarios involve only two hosts.

Parameters:

Name Type Default value Description
numHosts double

total number of hosts in the network

Properties:

Name Value Description
display bgb=356,318,white;bgp=10,10

Gates:

Name Direction Size Description
radioIn input

Unassigned submodule parameters:

Name Type Default value Description
utility.coreDebug bool

debug switch for the base framework

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

debug switch for the core framework

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)

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

debug switch

nic.mac.stats bool true
nic.mac.trace bool false
nic.mac.RSDecoder bool true
nic.mac.packetsAlwaysValid bool false
nic.mac.PRF int 4

Pulse repetition frequency, either 4 or 16 MHz currently

nic.mac.minBE int 3

min backoff exponent

nic.mac.maxBE int 8

max backoff exponent

net.notAffectedByHostState bool false
net.coreDebug bool

debug switch for core framework

net.stats bool true

stats switch

net.headerLength double 0

length of the network packet header (in bits)

net.trace bool false

debug switch

net.networkID int 0

network ID, allows coexistence tests

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

app.debug bool

debug switch

app.stats bool

stats switch

app.trace bool

trace switch

app.trafficParam double

mean time between packets (poisson arrival rate)

app.nodeAddr double

node address

app.dstAddr double

packet destination node address

app.flood bool

send packets continuously

app.payloadSize double

number of bytes per packet

app.nbPackets double

number of packets to generate

Source code:

//
// This host NED module models a host using an IEEE 802.15.4A correlation receiver.
// 
// @author Jérôme Rousselot
// 
// Citation of the following publication is appreciated if you use the MiXiM UWB PHY model
// for a publication of your own.
// J. Rousselot, J.-D. Decotignie, An ultra-wideband impulse radio PHY
// layer model for network simulation. SIMULATION January 2011 vol. 87 no. 1-2 82-112.
//
// For more information, see also:
//
// [1] J. Rousselot, J.-D. Decotignie, An ultra-wideband impulse radio PHY
// layer model for network simulation. SIMULATION January 2011 vol. 87 no.
// 1-2 82-112. <a href="http://dx.doi.org/10.1177/0037549710377767">http://dx.doi.org/10.1177/0037549710377767</a>.
//
// [2] J. Rousselot, Ultra Low Power Communication Protocols for UWB
// Impulse Radio Wireless Sensor Networks. EPFL Thesis 4720, 2010. 
// <a href="http://infoscience.epfl.ch/record/147987">http://infoscience.epfl.ch/record/147987</a>.
//
// [3] J. Rousselot, J.-D. Decotignie, A High-Precision Ultra Wideband Impulse Radio Physical Layer Model
// for Network Simulation. Second International Omnet++ Workshop,Simu'TOOLS, Rome, March 2009.
// <a href="http://portal.acm.org/citation.cfm?id=1537714">http://portal.acm.org/citation.cfm?id=1537714</a>.
//
module Host802154A
{
    parameters:
        double numHosts; // total number of hosts in the network

        @display("bgb=356,318,white;bgp=10,10");
    gates:
        input radioIn;

    submodules:
        utility: BaseUtility {
            parameters:
                @display("p=292,60;i=block/blackboard");
        }
        stats: phyPER {
            @display("p=202,257");
        }
        batteryStats: BatteryStats {
            @display("p=292,257;i=block/circle");
        }
        battery: SimpleBattery {
            @display("p=292,186;i=block/control");
        }
        mobility: BaseMobility {
            parameters:
                @display("p=292,120;i=block/cogwheel");
        }
        nic: Nic802154A {
            parameters:
                @display("b=32,30;p=86,265;i=block/ifcard");
        }
        net: DummyRoute {
            parameters:
                @display("p=86,159");
        }
        arp: ArpHost {
            parameters:
                @display("p=202,186");
        }
        app: TestApplication {
            parameters:
                @display("p=86,60;i=block/app");

        }

    connections:
        net.lowerGateOut --> nic.upperGateIn;
        net.lowerGateIn <-- nic.upperGateOut;
        net.lowerControlOut --> nic.upperControlIn;
        net.lowerControlIn <-- nic.upperControlOut;

        net.upperGateOut --> app.lowerGateIn;
        net.upperGateIn <-- app.lowerGateOut;
        net.upperControlOut --> app.lowerControlIn;
        net.upperControlIn <-- app.lowerControlOut;


        radioIn --> nic.radioIn;



}